Transformation

DevOps Flow – Accelerating Developer Velocity Through Software Factory Best Practices

DevOps Flow is a methodology for implementing high performance, Cloud-centric software development, based on a science developed by pioneers like Toyoto to optimize factory lines and apply this to software engineering.

In the Cloud era senior executives are investing into key capabilities like DevOps with the expectation this will accelerate innovation and bring new digital products to market faster.

To deliver on these goals enterprise organizations seek to deploy high quality code, faster and more frequently, but they face a complexity of organization, process and technology that can hinder this objective, slowing throughput and incurring high error rates.

Often when DevOps is discussed the focus is concentrated on the technology layer, particularly the latest tools like Kubernetes, and also when considering performance it zooms in on the productivity of each individual developer.

However for many organisations the main challenges will be at the level of their team practices and organizational models.

Writing for DevOps.com Mike Vizard highlights the reality of DevOps uptake, that most adoption issues are related to organisational challenges, not technology. The top two barriers to adoption are slow processes and speed of adaptation (29%), followed by budget and funding (21%). Only 18% identified technology limitations as an issue.

As Mike writes it is the broader organisational transformation that is more challenging. ‘Addressing bottlenecks’ might be a function of confronting the situation of a department manager who zealously guards their turf and acts politically to resist any changes required.

Implementing DevOps for one team is a relatively straight forward exercise, but for enterprise organisations, they face a much larger magnitude of complexity, as they typically have multiple teams, spanning multiple geographies and suppliers, with hundreds of developers all contributing to the same software development process.

Therefore a DevOps methodology that also addresses the organizational level is required, one that maps processes end-to-end and identifies the improvements needed to speed production across this entire life-cycle.

Software Factories

Transformation leaders are turning to a ‘Digital Factory‘ approach to streamline this complexity into a production line model that yields consistently high throughput and quality, using Lean principles derived from the world of manufacturing.

In their in-depth article, McKinsey explores the dynamics and successes of the Digital Factory model, a new approach to organising digital teams, a self-organising structure vs rigid departmental hierarchies, and they describe the KPI improvements the Digital Factory enables:

“We see reductions in management overhead of 50 percent for technology teams in the DF, 70 percent in the number of business analysts needed to write technology requirements, and, as test automation becomes the norm, a drop of 90 percent in the number of testers. Finally, we see top engineering talent performing at eight times the level of their peers, as measured with metrics such as code commits.”

In short McKinsey describe an improving development team that improves quality and finds efficiencies is a direct by-product of one that leverages the latest tools and team methods to produce better digital products, faster.

The concept of a ‘software factory’ is a very powerful metaphor because much of the insights are drawn literally from the world of manufacturing, where over many decades they have perfected the science of optimizing the efficiency of a production line.

To close the loop and map these development improvements to Business Value, management can leverage organisational performance practices notably Six Sigma and the Theory of Constraints to define their ‘DevOps Algorithms’, a systematic formula for quantifying and improving the rate of software development throughput.

DevOps Flow

DevOps Flow is a methodology for implementing high performance, Cloud-centric software development, based on a science developed by pioneers like Toyoto to optimize factory lines and apply this to software engineering.

Organisations need the ability to measure the entire system end-to-end to understand how value flows and where it is constrained, and most importantly, to correlate those metrics with desired business outcomes. This approach allows for continuous optimization in the pursuit of delivering greater and greater value to the organisation, faster.

It can be applied to speed the deployment of new software releases, notably identifying and removing constraints, reducing batch sizes and eliminating waste. These are all steps taken within manufacturing to increase production throughput and are improvements that software teams can adopt to achieve equivalent benefits.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button