Lean Software describes a set of principles and practices that are used to deliver software in a simple and intelligent way. DevOps, on the other hand, is a methodology that integrates and automates software development (Dev) and IT operations (Ops) to improve and shorten the system development life cycle.
DevOps and Lean Software are actually complementary approaches, which aim to develop software in the most agile and efficient way possible. This book explores how software development teams can use Lean Software and DevOps methodologies to measure their performance, and how this affects a company’s overall performance.
When companies deliver software and software components more quickly, it also allows them to deliver functionality faster, to make changes when needed, to respond to compliance changes, and to use feedback from existing customers, in order to attract new ones.
The first important thing to remember is that, in today’s world, speed is paramount, so we have to move quickly and keep our foot on the accelerator. We live in a world where success is often driven by technological innovation, so we need to create the right culture, approach, and speed in our company, which is able to support rapid customer value creation and will allow us to keep our competitive edge.
Businesses in general are under a lot of pressure to adapt to the changing world, and need to harness technology and innovation, in order to compete in this new era of change. To ensure effective change nowadays, we first have to understand exactly which factors we need to measure and which are less important, because if we want to find a solution, we need to do the right analysis, and if we want the right analysis, we need the relevant raw data.
It is important to focus on capability-based models rather than maturity-based models. A maturity model is used to measure the maturity of an organisation, in other words, its ability to continuously improve in a particular field. These models, however, assume that we can achieve a ‘finished’ state, rather than establishing mechanisms for continuous improvement. Maturity models are often too prescriptive, and do not adapt effectively to the organisation’s evolving needs, because they tend to define static technological processes and capabilities, which are unable to keep up with today’s ever-changing technical landscape.
A capability model, on the other hand, is an integrated and comprehensive set of all the company’s capabilities, a kind of breakdown of what an organisation does and is able to do, which is expressed in a logical and granular grouping. It is the result of the company’s architecture and is a fundamental basis for business transformation. Capability models help identify what an organisation does, and describe the potential outcomes and impacts linked to these capabilities. They are based on measurable outcomes that leave much less room for interpretation and uncertainty.