Various types of wasteful processes slow down software delivery efficiency and effectiveness. Eliminate waste from Agile and Waterfall delivery.
On a scale of 1 to 10, how efficiently do you believe your company delivers software? Now, on that same scale, how efficiently do your customers think you deliver software?
In a three-part series, I’ll focus on the elimination of waste from our software development efforts.
Waste elimination traces back to the mid-1900s, the birth of lean manufacturing, and the Toyota Production System (TPS). The main objectives of the TPS are to design out overburden (muri), inconsistency (mura), and eliminate waste (muda). TPS has been so successful that it has been widely adopted by Toyota’s competitors as well as outside of the auto manufacturing industry.
You may wonder, why I am talking about TPS in a software delivery blog and why now?
Having played different roles in the Application Development and Delivery process (software developer, tester, product manager, scrum master, manager, architect) for nine years and then stepping into a management consulting role for the next seven years (strategic planning, business-technology consultant), I have encountered numerous companies that struggle with their ability to deliver software efficiently.
I have found that companies produce much waste in their software delivery processes – whether they’re growing aggressively through innovation or acquisitions, undergoing cross-functional transformations, or relying heavily on custom-built legacy software. This “waste debt” continually hampers the nimbleness of the company’s ability to respond to business needs until they eliminate the root of the waste.
An Agnostic of Agile
The word “Lean” has recently moved into our everyday life. In the past few years, I have started challenging myself to adopt a lean mindset.
On a personal level, “Lean” means getting in better physical shape. To accomplish this goal requires a systematic plan – eat healthily, eat smaller portions, and hit the gym at least three times a week. The improvement does not stop there, and for sustained results, I need to execute, maintain and tweak the plan. You may agree that it takes months before you see the change you desire.
Likewise, during my consulting career, I found almost every company has initiatives on their strategic agenda to streamline operations, reduce technical debt, improve IT and Business processes and adopt a continuous improvement/delivery mindset. “Lean,” “Agile,” and “Digital” are terms slowly integrating into businesses as they look for ways to deliver products cheaper, faster, and better.
Software delivery processes require increased efficiency as well to enable these improvements. Adopting an Agile framework might provide some critical foundational work to move the needle in this area. However, to raise-the-bar, there is a growing need to “trim the extra fat” from even agile software delivery processes. To follow my analogy, to take the lean fit body to the next level we need to develop six-pack abs, which require extra work!
We have found that by innovatively applying Lean Six Sigma principles to the context of software development and delivery, we can take enterprise agility to the next level.
Types of Wastes in the Software Delivery Process
Agility comes by removing the inefficiencies from Application Development and Delivery processes. Here are types of waste within delivery processes and a few representative reasons for these inefficiencies:
High wait times:
- There is a cumbersome approval process to make decisions.
- There is a lot of back and forth between IT and Business due to unclear expectations and lack of preparedness.
- Lack of clarity in business specifications and change requests force the team to schedule additional meetings to rework requirements.
- Misinterpretation of requirements and inadequate data in the testing environment to prove success causes testing phase failure.
- QA and UAT timelines overlap, leading to duplicated testing efforts and rework loops.
Over-delivery of low-priority work:
- Multiple avenues for work intake create inconsistent and time-consuming processes and documentation.
- The team spends significant time checking emails, attending meetings, status reports, training, and other low priority tasks.
- The SDLC process results in canceled or re-prioritized projects, causing an unexpected realignment of resources.
- Project resources work on multiple projects at the same time resulting in switching between tasks.
- In-scope initiatives and timelines constantly change to meet a set deadline.
Lack of automation:
- Testing processes still primarily rely on manual processes.
- The team deploys code manually, and manually updates change logs.
- Absence of component level testing done earlier in the delivery process results in defects later in the delivery process.
- Vertical IT delivery organizations monopolize resources with limited sharing between silos despite common technologies in use.
- In-demand resources, such as subject matter experts, are not available when needed.
Reevaluate Your Software Delivery Process
Now let’s revisit our 1 to 10 scale. Is your level of efficiency the same, or did you recognize some areas of inefficiency previously overlooked? Which areas are the top three in which your business struggles most?
In part two of our blog series, we take a look at how you can leverage our proven process improvement techniques to address these inefficiencies.