Our purpose in ThoughtWorks is to “Create extraordinary impact on the world through our culture and technology excellence”. We also say that “Technology excellence is in everything we do; we’re all technologists!”
When I have conversations about this one question comes up. What does “Technology excellence” mean?
I’m not for one moment have the audacity to define a single version of this term! I would like to share what I discovered as I have gone on this search myself.
The best reference I have found is in Digital Transformation Game Plan. It is mentioned several times in the book and there is an entire chapter dedicated to explaining that Technology Excellence Matters. Whenever the term appears two concepts are consistently repeated: quality and the ability to deliver value at speed.
What sets Technology Excellence apart as a concept is that it acknoweldges the interdependance of these two things. That you cannot have speed without quality. And that delivering quality, without speed, is equally meaningless.
Quality without speed is waterfall and will lead to wasted financial investement. Speed without quality is plain hacking and will lead to technical bankrupcy.
However, as I’ve thought about it more, there is another dimension: cost. For me, Technical Excellence means: highest quality in the shortest lead time at the lowest cost (Jeff Bezos has made no secret of the fact that this is at the heart of Amazon).
In this list, quality comes first, then lead time, then cost. And there’s a reason for that. To understand why, we must understand the relationships between the three.
To start all three are defined by an external lens: that of the external customer, the end user of the product.
When considering quality it is the customer who decides if, what they’ve purchased, meets the requirements of the job they demanded of it. This not only means features but also if it works as intended, without defects, and is sufficiently durable for the job they need it to do. If the product is of the right quality they will stick with you. If it isn’t they will go and look elsewhere in the market.
If there was more quality in the product that an customer believed valuable, not only does this increase cost, but it is wasteful. It is essentially a type of over-processing. For example, there is no point in refactoring defect free code which isn’t going to change.
In software lead time means something different from other industries. For Amazon, it means the time between you searching for an item to when it is delivered into your hands. For software we are primarily focused on delivering new features into users hands. Our lead time is about the speed of change.
Again, the end customer decides what is an acceptable lead time. If your competitors deliver the features they want faster than you they will leave. Yet Quality is still critical. If you deliver faster than your competitors but in a way which riddles the product with defects and breaks its functionality, or breaks the customer’s trust (e.g. leak their personal details), they will leave for your competitors.
The last thing is cost. If delivering these changes whilst mainiting quality and improving speed carries high costs, then your competitors will find a way of doing it cheaper and your customers will leave. If you find a way of lowering costs but in a way which sacrifices quality, or slows you down then, you guessed it, your customers will leave.
Once we understand the value of Technical Excellence from an external lens, we can begin to talk about what it means in an internal lens. Which basically can be quickly summed up under good engineering.
This is no different to any other industry. Good engineering is what enables the delivery of products at high quality, with short lead times at a low cost. There is a reason why Audi’s motto is “Vorsprung durch technik”, why Ford carried the tagline “‘Quality is job one” for seventeen years and Toyota proudly claim “Superior Quality Built In”. The link between external quality and internal quality is causal.
This is even more true in software. And it’s because of that need to change which makes it so. Without investement in high internal quality then products quickly become brittle and expensive to change.
To illustrate this causal link imagine improving an existing feature which requires a change to a critical piece of code. With no investement in technical quality the change carries high risk with multiple side effects hard to predict. Under delivery pressure the team has a tough choice: reduce manual testing to fit into the timelines, or increase manual testing and push back the timelines.
If you sacrifice manual testing, then inevitably you will release defects. You simply have to hope that their impact is small. A lack of good engineering will make these defects hard to diagnose and expensive to fix. Thus a vicious negative-feedback cycle is created. External product quality slowly degrades.
This scenario has immediately broken the link between high quality, short lead time, low cost. One, or more, of them must be sacrificed. The product is moving in the opposite direction to your competitors. The end result is, without a large investement (increasing costs) customers begin to abandon your defect ridden and expensive product to a competitor.
Instead, by investing in internal quality, (e.g. XP practices, Continous Delivery), product quality goes up, lead times become shorter and costs go down.
Whilst the customer decides the external quality, ultimately it is the developer who has to decide the internal quality. This requires management trust the developer’s judgement. Otherwise we end up in the familiar situation where stakeholders who are frustrated with lack of delivery speed, push developers to be “more pragmatic” and avoid “over engineering”. And developers accuse stakeholders of causing high amounts of technical debt due to their pressure to deliver.
A similar situation had occured in the 1970-80s in US manufactoring. In response W. Edwards Deming drew up his 14 Principles of Management which stressed the need for managers to “Remove barriers that rob… people … of their right to pride of workmanship” [Out of the Crisis].
It is also why Deming said “Quality begins in the boardroom”. Technical Excellence is all about quality. Now every company is a software company Technical Excellence begins in the boardroom.