On Wednesday, in conjunction with Skills Matter, Paddy Power are hosting a talk by Bob Martin on ‘Components and Architecture’ (if you are in Dublin drop in!). This prompted a colleague to read some of Bob’s recent ramblings which brought him to a company called 8th Light. He forwarded a very interesting post on ‘The Principles of Craftsmanship.
During its conception, the founders of 8th Light ‘wanted to build a community of professionals who believed in their core that the best way to build software was to build it well.’ This led them to declare that they are principled and subsequently identify what those principles were. I’ve repeated them below:
Well-Crafted Software
We humbly demonstrate our expertise by delivering quality software.
We do not inflate our abilities or claim expertise where we have none.
We continually master a variety of technologies and techniques.
We do not let unfamiliarity dissuade us from using the best tools.
We take responsibility for the correctness of our code by testing it thoroughly.
We do not tolerate preventable defects.
Steadily Adding Value
We estimate with diligence.
We do not let fear or pressure make us promise what we can’t deliver.
We always apply our best efforts to complete our work.
We do not make excuses.
We work at a sustainable pace.
We do not burn out.
A Community of Professionals
We embrace differences of opinion and personality.
We do not allow our current practice to impede improvement.
We prefer open source tools that we can inspect, evaluate, and improve.
We avoid proprietary products that lack transparency.
We teach anyone with a willingness to learn.
We do not hoard our knowledge or practices.
Productive Partnerships
We show respect for our customers and fellow craftsmen.
We do not act unprofessionally or unethically.
We communicate our progress honestly and openly with our customers.
We do not conceal or embellish.
We partner with our customers to understand their business.
We do not propose solutions until we are sure we have found the right problem.
I can see these principles emanate from other companies with ThoughtWorks being one that immediately came to mind. One of the things that struck me was that all of the companies and organisations that I considered to be principled were independent technology led organisations as opposed to being technology enabled.
What I mean by this is that from inception, those technology organisations were founded by technologists and run as technology organisations. Sure, they needed financial backing, marketing, sales and of course customers but their DNA differentiated them as technology companies. It is this type of organisation that I consider technology led.
A technology enabled organisation is an organisation that was founded with little consideration for technology other than it will be required at some point in time, for some purpose. Technology is a service that will be consumed rather that being part of who we are.
I believe that it is very difficult for a technology enabled organisation to adopt and adhere to principles such as those adopted by 8th Light. They do not understand or appreciate the inherent value of technology but instead engage with technology as a service (be it internally or externally provided). This type of organisation values vendor management processes and techniques that often conflict with creating well crafted software, steadily adding value, communities of professionals and yes, productive partnerships.
In this context, what might prove more useful is for technology service consumers (i.e. the customer) to provide a complementary set of principles. They might go something like this:
Well-Crafted Software
We know what we don’t know and engage with professionals to fill the void.
We do not inflate our abilities or claim expertise where we have none.
We continually master a variety of technologies and techniques.
We do not let unfamiliarity dissuade us from using the best tools.
We take responsibility for our deficiencies and adopt new tools, technologies and techniques to improve our capability.
We do not blame others for our own inadequacies.
Steadily Adding Value
We engage with technology to produce realistic estimates with diligence.
We do not abdicate ownership of unrealistic estimates that we insisted were achievable.
We always appreciate your best efforts to complete our work.