In today’s fast-paced development environment, the need for a usable, working product at the end of every iteration cannot be overstated. As Scrum and Agile practitioners, we often discuss the importance of technical excellence, but it’s more than just a concept—it’s the cornerstone of risk mitigation and successful product delivery. Let’s dive into why technical excellence is essential, how it mitigates risks, and the profound impact it can have on your product and team.
One of the key principles in Scrum and Agile is ensuring that we have a usable working product at the end of each iteration. This isn’t just a nice-to-have—it’s a necessity. In traditional, linear project management models, where we know most of the details upfront, risk is mitigated through extensive planning. However, in a high-variance environment, this approach simply doesn’t work.
Low-Variance: When variance is low, we mitigate risk by creating detailed plans, lists of potential risks, and corresponding mitigation strategies. This works because the environment is relatively stable.
High-Variance: In contrast, in high-variance environments, where conditions change frequently, detailed upfront planning falls apart. Here, risk is mitigated by delivering a usable, working product regularly, allowing for continuous feedback and adaptation.
A common myth in the software industry is that it’s acceptable to sacrifice some quality to meet market demands faster. However, this trade-off is not only flawed but can be detrimental in the long run. Sacrificing quality often leads to increased technical debt and a product that is harder to maintain, less reliable, and ultimately less valuable to customers.
Real-World Example: The Azure DevOps Transformation
One of the most compelling examples of the power of technical excellence comes from the Azure DevOps team at Microsoft. In 2012, this team transitioned from a waterfall model, delivering to production every two years, to a more Agile approach with three-week iterations. The results were astounding.
2012: Initially, with 650 people, the team delivered about 24 features per year. This low number was due to the significant technical debt and the complexity of adding new features to a codebase burdened by poor quality.
2018: By focusing on technical excellence, the team reduced their technical debt and improved their processes. By 2018, they were delivering 280 features per year with the same number of people.
The Azure DevOps team didn’t achieve this transformation by cutting corners. Instead, they focused on paying back technical debt and building technical excellence into their processes. This allowed them to deliver more value to customers, faster, and with higher quality.
A crucial aspect of technical excellence is having a well-defined “Definition of Done” (DoD). The DoD is not just a checklist; it’s the foundation upon which technical excellence is built. It ensures that every increment of work meets a minimum standard of quality, reducing the risk of delivering a subpar product.
Quality Requirements: Ensure that your DoD includes the level of quality required to meet compliance, testing standards, and any necessary telemetry.
Engineering Standards: Focus on how you’re building the product, not just what you’re building. Your DoD should enforce technical excellence in every aspect of development.
Real Users: The DoD should ensure that each iteration delivers something usable by real users, not just in a test environment.
If your organization doesn’t have a DoD, it’s up to the Scrum team, particularly the developers, to create one. This DoD should be relevant to your product and stringent enough to ensure that you’re delivering a usable working product every Sprint.
By focusing on technical excellence and delivering a working product at the end of every iteration, you significantly reduce the risks associated with development. Continuous delivery allows for regular feedback, early detection of issues, and the ability to pivot when necessary.
Technical excellence enables teams to deliver more features, faster, and with higher quality. As seen with the Azure DevOps team, this focus can lead to a dramatic increase in the number of features delivered, enhancing the product’s value to customers.
When technical debt is low and quality is high, teams can shift their focus from firefighting to innovation. Instead of struggling to maintain a poorly built product, teams can explore new possibilities, experiment with new features, and deliver real value to customers.
In today’s competitive market, technical excellence is not just an option—it’s a necessity. Whether you’re delivering software or building houses, the principles remain the same. Focus on quality, establish a solid Definition of Done, and deliver a usable working product every iteration.
Final Recommendations
Avoid the Quality vs. Speed Trade-off: Remember, sacrificing quality for speed is a losing proposition. Focus on building a high-quality product from the start.
Establish a Strong Definition of Done: Ensure your team has a clear, well-defined DoD that enforces technical excellence in every iteration.
Continuously Improve: Like the Azure DevOps team, make technical excellence a priority and continuously work to improve your processes and product quality.
🚀 Build the best product you can, mitigate risks effectively, and maximize value for your customers.
If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.
We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.
CR2