Perhaps one of the most shocking examples of software waste and cost overruns in history occurred back in 2013 with the release of Healthcare.gov. The website was the cornerstone of “Obamacare,” allowing people to compare and purchase private health insurance. As the software rolled out, excitement quickly turned to panic as users began experiencing serious technical glitches. By some estimates only 1 percent of people managed to successfully sign up in the first week and even President Obama admitted, “Nobody’s madder than me about the website not working.” Overall costs for the build reached $500 million ahead of the rollout, and eventually cost American taxpayers $1.7 billion.
Thankfully, not all I.T. projects are doomed to failure. In fact, experts have developed processes and methodologies to greatly improve how software gets built. It’s time that we all started listening.
One of the most important methods out there to improve how software gets built is Lean Software Development (LSD). LSD focuses on the elimination of any work that adds no value to a product or service. LSD refers to this kind of work as “waste.” Lean Software Development thinkers believe that “wringing out the waste” in software development directly improves customer service, product quality, and increases profit margins.
Types of Software “Waste”
The first step in solving any problem is recognizing it exists. If an activity can be bypassed or eliminated and there is no consequence to the end product, then the activity is waste. Completing extra paperwork might seem necessary at the time, but often adds little value to the customer. Lean Software Development says it should be minimized or even eliminated. It’s a pretty radical way of thinking when you consider all the groups and processes that would be impacted. What was once seen as an important function is now considered wasteful and harmful to the project overall.
Lean Software Development defines different types of waste:
1. Unnecessary functionality
Sometimes called “Gold Plating.” Building features that sound good, but that nobody actually asked for, can create major headaches over time. Not to mention it costs extra to develop those features.
2. Partially done work
Having code that doesn’t have a purpose can lead to major confusion, slower development, and outsized estimates of future work.
3. Delay in beginning the software development process
Without a sense of urgency, software projects can languish with teams “spiking” sprint after sprint. This often causes delays in projections, with business and sales stakeholders NOT being able to monetize the software that is created.
4. Management overhead
Some level of management oversight is a necessity of any business. After all, if projects are to receive the resources they need, an organization needs to be able to plan well ahead of a sprint planning session. The flip side is that frequent management updates and pushing too hard for quarterly estimates slows down development and doesn’t directly improve user experience.
5. Slow and ineffective communication
It is often said that life is made up of moments, and not being able to get answers to your questions or communicate key details can lead to poorly implemented software and refactoring.
Focusing on quality is perhaps the most important principle of a Lean mindset. For those who practice Lean Development, ensuring the software is released virtually bug free is the most important thing a team can focus on.
7. Task switching
There is a lot of research that says switching tasks or juggling many tasks at once actually leads to a reduction in productivity overall. Constantly switching gears causes our brains to work harder and to do things at a lower level of quality.
Adopting a Lean Software Development mindset is not easy, because it’s less of an ABC approach of processes, and more of a mindset by which you approach conditions that are particular to your software development organization. If you’re interested in learning more about how to bring Lean Software Development into your team check out: “Implementing Lean Software Development: From Concept to Cash.”