Your company may have the best products, and reputable customers; you may have the best profitability and market position right now. Your company may have great marketing and sales teams, great customer service. Your company is really successful - now. But will it be successful in the future? Let's assume you have the best Product Managers, best Product Owners, best Sales Representatives - great product vision, a high value product, and really satisfied customers right now.
Let's assume that engineering teams do not yet have a culture of Technical Excellence, instead it is up to specific individuals to implement best practices, but nothing company-wide. Without Technical Excellence - for example, without solving challenges of test automation and code quality - this is what's going to happen over time:
Your delivery is going to get slower and slower, and adding additional developers won't help either because they will further slow down delivery rather than speed it up
Your product is going to be shipped with more and more bugs over time, there will be more and more customer complaints and customers will start losing trust in your products
Your development teams will be under constant pressure and stress regarding delivery and production problems, you will have high turnover costs and high onboarding costs
Without Technical Excellence, any current delivery speed is an illusion, it is not sustainable. Technical Excellence is crucial for sustainable success of software product delivery.
In the lifetime of an organization, the only constant thing is the organization itself - the organizational values, the organizational culture, the organizational systems and processes, and the organizational knowledge assets. Over time, the product will change based on customer needs, as you learn more about your customers and what is high business value to them. Over time, different people will enter your organization, over time you want to be able to grow your organization to be able to increase delivery capacity, but at the same time, you want to grow in a scalable effective way. The culture, systems and collective knowledge comprise the unique DNA of your organization. It is something that your competitors can't just replicate. Those are also aspects that enable you to have replicable, systematic success, it means you can expand your teams and maintain success.
What happens when the systematic approach is missing:
Your delivery success will be sprodaic because it will be completely dependent on individuals since there is no company-wide system to ensure success
Any delivery success will not be able to be replicated because it was achieved by very few individuals, without knowledge transfer to the wider organization
For this reason, we should focus on building strong systems so that we can scale and replicate success.
You might be successful right now, but if you're not continuously improving, then you'll fall behind. The only way to stay ahead is to continuously improve your systems and your people. The trouble that many companies are facing is that they're busy fighting fires every day, just trying to survive, just trying to making the next deployment without critical production bugs. Development teams are spending most of their time chasing sprint goals and fixing regression bugs. The larger the products, the larger the teams, the worse it is!
In this fire-fighting survival mode, there is zero opportunity for any improvement- no individual improvement, no team improvement, no organizational improvement
Systems and processes are left to gather dust; there is no systematic improvement - any successes are accidental ad hoc, and not captured through systems improvement
We lose our market position over time, because our competitors are improving and we're not - not improving doesn't mean staying in place, but rather falling behind
Therefore, in order to have sustainable competitive advantage we must go beyond operational fire-fighting and incorporate continuous improvement.