The magic of fast software delivery
When it comes to software delivery, three things matter most: Speed, quality and development costs. The decisive success factor, however, is and remains speed. Companies today must react swiftly to innovations and changes in their markets, otherwise they will quickly fall behind. Unpredictable events, such as the pandemic, can require rapid market launches and short-term adjustments to a company's product to meet new market conditions and customer needs. So why isn't every company optimising for speed? Looking at the statistics, most companies do. But when it comes to accelerating deployment speed, there is often still a significant gap between wishful thinking and the hard reality. Projects still take twice as long and become three times as expensive as initially expected, despite thorough planning and agile methodologies in place. Software only reaches market readiness after months of development - while still riddled with bugs. Sounds familiar?
So how does your competition manage to fly at warp speed, adapting to market changes, customer feedback, whilst developing and deploying features in super short cycles - without bugs? And why isn't your own company able to speedboat ahead despite the availability of cloud technologies and agile practices? Is it because your own developers are not good enough? Because you don’t have 10x rock star ninja developers on your team? Or are there too few people working on the project? Is the legacy system that bad?
Is there is a way to minimise risks and costs and still achieve the desired development speed that doesn't include wands and black magic? There is! And rest assured: It's not your developers, nor is it the legacy systems. In the vast majority of cases, it simply comes down to the wrong approach to development processes, or oftentimes the literal application of agile methods.
Almost every company today uses agile methods for software development. However, these methods are not always truly understood. We observe time and again that Scrum is applied rigidly - almost biblically - adhering to the rule set, without appreciating the underlying mindset. This leads to ceremony becoming more important than results. In other cases Scrum methods like stand-ups are combined with traditional waterfall models: Large projects are planned and executed in phases, with each individual phase building on each other and proceeding in a fixed sequence. Particularly larger, traditional companies with strong hierarchies tend to follow the waterfall model.
Yet the method is not the goal; it is a resource to achieve the goal. Sprints and stand-ups alone do not magically turn your organisations agile. Companies must evolve their team and communication structures in ways that enable agile processes in the first place. Conway's law states: "the communication structure of an organisation is always structurally reflected in the systems it develops". This relationship between the characteristics of an organisation and the architecture of the product they create has been proven in numerous studies. In order to achieve true agility and develop and deploy products as quickly and bug-free as possible, companies must design their team and organisational structures in a way that allows the development team fast feedback loops and the greatest possible scope for action.
The secret word to achieving true agility is: DevOps.
Depending on the industry, there are certainly fixed points that the team must take into account during the development process, such as compliance and security aspects. Apart from that, however, the team must be able to independently decide, according to the best-practice approach, which elements of a product are built in which way and in which order. You imperatively want to avoid situations in which teams spend their time battling against rigid architecture, organisational constraints and baked-in specifications rather than finding practical solutions for a desired feature. The engineering team must further be empowered to organise itself - with all skills and roles included to develop (dev) and run (ops) the product. Every development team 's mantra should be “you build it, you run it”.
The second pillar of software development following the DevOps principle is rapid feedback as well as continuous, test-driven deployment. Code being delivered constantly and in incrementally small steps. Deployments to production are being performed every hour or even every minute, unlike with traditional methods, in which code is only deployed after weeks or months of development. The prerequisite to achieve third magic is a stable and automated development and testing infrastructure that allows the team to continuously test the product and directly implement the feedback gained into the development process. This method not only increases the speed at which software can be delivered, but also has a significant impact on its quality and the cost-efficiency. Through test-driven development, the smallest errors in the code can be immediately detected and corrected by the team. Software products and features developed in this way not only reach market readiness much faster, they are also significantly more stable, reliable and safe.
Companies that reach this pinnacle of agility inevitably become the top-performers of the industry. Yet, looking at the data from the Slash Data’s Developer Nation global survey, only 11% of the companies stated that they deliver software several times a day while another 23% deploy software once an hour to once a week in In the first quarter of 2022. But especially large companies are catching up: In this group, "the percentage of low performers for lead time for code changes has dropped significantly from 34% to 24% in the last six months, while the proportion of top performers has increased from 13% to 21%".
If you want to keep pace with rapid market changes and stay one step ahead of the competition, there's no getting around the DevOps mindset. No surprise that this approach has gained such enormous popularity in recent years. Stand-ups and sprints alone are not enough to enable fast flow delivery from development to deployment. It also requires the right organisational structure that enables the development team to self-organise, respond quickly to feedback, and deliver software updates in frequent and small increments.
The good news is that any company and any team can be organised and trained to leverage the full potential of the DevOps approach and cloud technologies. But as challenging as this may sound, it also means rethinking and saying goodbye to old familiar methods.