Parallels between manufacturing and software development have led many organisations to adopt lean principles for digital product creation and management.
A core feature of lean is reducing waste in production by focusing on value delivery. The idea is that operating more efficiently delivers tangible business benefits, from reduced costs to better employee engagement and customer satisfaction. Ultimately lean methods put customer value at the heart of everything, which corresponds with the project-to-product shift happening in IT today.
Reimagining lean for the digital age
Nevertheless, it’s important to appreciate the differences between manufacturing and software development, not just the similarities.
Software developers solve novel problems whereas physical products are more clearly defined ahead of manufacture. The traditional physical production was rooted in repetition while digital production is all about change.
Without careful management, constant change quickly becomes unscalable and uneconomical. Hence the pressing need to avoid misspent time, the principle waste associated with software development.
The trouble is, time wastage can be nebulous and hard to visualise. Its elimination is far from straightforward.
In Lean Software Development, Mary and Tom Poppendieck adapt the seven wastes of lean manufacturing for digital production processes. When they’re translated in this way, it becomes clear that the seven wastes can be addressed with DevOps ways of working.
The seven types of software waste and how DevOps can help
Partially done work
This can relate to undocumented code, untested code or completed code that’s not been added to a repository.
Partially done work delays value delivery and can lead to quality issues. It also costs the business money in the form of wasted time because jobs take longer and require more management.
DevOps solution: A core principle of DevOps is that work is not ‘done’ until it is in the hands of the customer. Achieving this shift in mindset is part of the solution. But it’s also about ensuring capabilities and team structures are in place to enable people to finish what they’ve started. Reducing dependencies between teams and boosting autonomy within teams is a powerful way to address this.
Extra, unnecessary features
All a digital product needs to do is meet current customer needs. Any functionality beyond this is wasteful. It involves unnecessary use of developer time and overcomplicates the product. This can have a negative impact on the ease of use, harming the customer experience. Plus, unnecessary complexity needs to be supported until the product is retired. All too often this lifetime cost is ignored when new features are added.
DevOps solution: An iterative approach to value delivery is fundamental to success in the digital economy. Release updates and new features on a ‘little and often’ basis, then make further improvements based on customer feedback, as required. This will ensure that product development is closely aligned with actual needs.
Relearning or refactoring
Revisiting decisions that have already been made is a huge time-waster. But this situation often arises during lengthy review and approval processes. Overreliance on electronic communication instead of personal interactions, or ineffective use of ticketing systems can also result in this type of waste.
DevOps solution: Making work visible is a core tenet of DevOps, and one of the most effective ways to reduce relearning waste. Conversations about work become more focused and effective, as do review and approval procedures. Dominica DeGrandis’ Making Work Visible is a great source of guidance for this.
There can be a loss of context and understanding any time work is handed to another team which can result in time wasted and delays introduced. The team may not have all the information needed to take the job forward. And there’s a risk of introducing quality issues if key points are forgotten or misunderstood in handoff communication.
DevOps solution: Small, multiskilled, product-centric teams are central to DevOps ways of working. This eradicates the siloed structure that necessitates multiple handoffs. And it fosters better communication and collaboration between people who are responsible for different parts of the process.
Any time an employee waits for something, time is wasted. This could be linked to the code or information required to start a task, reviews or approvals needed to complete it, or anything in between.
This type of waste triggers others. When one task is put on hold, another is started, resulting in more partially done work. Relearning also increases when a work item is put on hold and picked up again.
DevOps solution: Many organisations have a complex web of interdependencies between different teams and departments. People are reliant on actions or input from others to complete an item of work, so it’s hard to predict – or control – how long any given task will take to complete. Mapping where those dependencies lie, then taking steps to streamline and simplify processes, can deliver significant improvements here.
As mentioned above, delays lead to task switching – another type of waste. Momentum is lost when people turn their attention from one task to another. The time taken to refocus stalls progress. This has a ripple effect, slowing things down throughout the software development and delivery cycle.
DevOps solution: Delays and unplanned work are two of the worst culprits for generating this type of waste. Taking a more sophisticated approach to operations can help here, via developer self-service, automation, reusable templates and InnerSource models. Check out this blog on the topic [link to 5 pillars of modern operations].
From bugs to glitches, anything that threatens the value of software to people who use it is considered a defect. Those people might be customers, or they might be the operations engineers responsible for ongoing performance.
It’s always best to identify and remedy defects at the earliest opportunity. As a digital product or feature moves downstream, defect resolution becomes progressively more expensive and disruptive. Time spent on rework also frustrates efforts to deliver value elsewhere.
DevOps solution: With DevOps ways of working, a known defect is never passed downstream. This is central to the systems thinking ethos advocated by DevOps pioneers such as Gene Kim. All problems are tackled as they arise, they are not hidden or passed to others where they could result in lengthy handoffs, delays and unplanned work.
DevOps can help you win the fight against waste
The seven types of waste are closely interconnected, so addressing them requires an appreciation of the entire system. Focusing on root causes, rather than symptoms, of waste is mission-critical.
Time is a precious resource in the digital economy. It must be used wisely and prudently to add value where it has the greatest commercial benefit. Yet the pace and volume of change means that time is easily wasted. DevOps offers an effective way to keep this in check.