While much of the focus on DevOps concentrates on the core technologies like Kubernetes et al, for many organisations the main challenges will be at the level of their team practices and working models.
A traditional approach to enterprise software development will have encoded fairly rigid departmental models that will prove inhibitive to the goals of a more agile culture. Successfully embracing a new DevOps paradigm will require a transformation of team and workflow patterns as well as technologies.
Algorithms for High Performance
An essential dynamic for managing this transition and ongoing performance is metrics. Establishing the right ones will enable development teams to define and measure what matters, providing a control loop for ensuring their transformation and new working processes deliver the results they want.
To determine the business case for Continuous Deployment practices the key dynamic is 'Business Value Throughput'. Ie. not just speeding up the production of deployed code but of software that adds quantifiable value to the organisation.
Improving the throughput of this capability is how organisations can increase innovation rates, how they can bring more new products to market faster, achieving the improvement to high performance.
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 (TOC), to define their 'DevOps Algorithms'.
Although originating in the manufacturing domain they deal generally with whole system design and the same principles can be applied to any industry workflow; in software engineering terms enabling an equivalent of a ‘software factory’.
It is this level of transformation that will yield the real business improvements that senior executives are hoping Cloud computing will ultimately deliver for them.
A highly recommended paper that explores this in detail is Productivity in Software Metrics by Derick Bailey, describing the application of TOC to software development, such as how they relate 'User Stories' as a unit of work and including a framework for performance metrics based upon its principles:
- Inventory (V), and Quantity: Unit of Production (Q) - How does the software team quantify what is 'work in production'.
- Optimising Lead Time (LT) vs. Production (PR) - Using Workload Management to schedule the most optimum flow of work.
- Investment (I), Operating Expense (OE) and Throughput (T) - Maximising Net Profit (NP) and Return on Investment (ROI) and calculating Average Cost Per Function (ACPF)
The key ingredient is the science of ‘Throughput Accounting’, versus traditional cost accounting. As the name suggests where the latter is concerned with static snapshots of financial reporting, Throughput Accounting focuses on the system dynamics of what actually drives cash flow.
Going with the DevOps Flow
In a previous 2i blog, Principal Consultant Greg McKenna maps this science to software development team practices to optimise the ‘DevOps Flow’.
He explains how key TOC and Lean concepts 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.
Greg also explains that identifying these improvements can be achieved through a process of Value Stream Mapping, analysing the flow of work across teams, literally identifying those activities that add value to customer workflow and those that cause waste build-up.
This can be seen as a keystone foundation for enabling an overall enterprise culture of continuous innovation, a culture adopted by organisations such as Philips, who define it as the framework essential to their enterprise-wide innovation program.
It’s also not just about commercial product development. For example, in this guide, the NHS describe how it is key to their organisational improvement.
Combining this science with the right suite of Continuous Deployment technologies provides organisations with the tools and insights needed to achieve, monitor and optimise a high-performance software development practice, and from that foundation, achieve a culture of continuous innovation that can consistently deliver high-value products and customer excellence.
2i can assist organisations to adopt these techniques to also develop the qualities, practices and approaches that your people need to form high-performing Agile Delivery Teams. As testing experts, we can help your organisation embed best practices throughout your DevOps life-cycle and infrastructure management.
This requires a holistic understanding of a large, complex enterprise environment, including multiple technologies, departments and workflow interactions. 2i specialises in mapping this complexity and from that defining a DevOps blueprint that synthesises them together to achieve faster throughput of successful code deployment.