DevOps – Lean thinking Applied to the Software Development Industry
Software Industry Overview
In a world where the only constant is change, software delivery organisations capable of adapting to change have a distinct advantage. Lean thinking plays a major part in enabling organisations to adapt and evolve and remain competitive.
DevOps draws heavily from Lean Thinking and in particular from five fundamental Lean principles:
Fig. 1 – Lean Thinking Main Influences on DevOps
Value
By Value, we mean Value to the Customer. If what we deliver has no value, then it’s going to be pretty difficult to convince any potential customer to pay for it! When we deliver software, we are delivering something that does a particular job for a customer or that solves a problem for them. We attempt to get the solution “right” by putting the customer first at all times.
Value Stream
The Value Stream identifies the steps required to deliver high quality software to the customer / production environment not just once but in a repeatable manner.
Fast Flow
Fast Flow attempts to get the software to the customer as quickly as possible while minimising unplanned re-work. In many software delivery environments, this is a challenge. If we deliver software infrequently to production, the cost of delivery remains high hence the phrase “if it hurts, do it more often”. Speeding up delivery requires understanding the steps associated with getting the software into production, optimising them and automating them. But, to increase the rate of delivery, a few things need to happen – reducing the size of the changes being deployed and reducing the deployment effort.
Pull
‘Pull’ has also been adopted as a fundamental principle of DevOps regardless of the flow management framework; typically a flavour of agile software development such as Scrum or Kanban. The ‘Pull’ principle mandates that tasks are managed in such a way as to respect capacity constraints (WIP limit), promote flow and ultimately avoid task bottlenecks – basically don’t bite off more than you can chew!
Perfection
Continuous and evolutionary improvement, i.e. Kaizen, is baked into DevOps culture. It is achieved by creating an organisation wide culture of trust, by overt encouragement of shared responsibility, by coaching and learning, by encouraging experimentation and by keeping feedback loops short. Continuous improvement opportunities are regularly identified through measurement and reporting, also an integral aspect of DevOps.
3WestStreet Client Application of Lean Thinking
When we work with our clients, we try to base our approach on these 5 Lean Principles. We promote a culture of trust, learning, problem-solving and transparency because without this, the chance of a successful outcome is reduced.
Our approach is outcome-based to address each client’s priorities at a particular point in time.
We believe that having an appropriate toolset helps but our approach is to evolve capabilities over time striving for effective simplicity over ineffective complexity.
DevOps implementation is an evolutionary journey and one that the 3WestStreet team would be happy to travel with you.