Every software development process, whether it is highly formalized and structured, post-it notes and napkin diagrams, or anything between, always leads to the same questions. Are we providing the most value we can? Can our team be more efficient? The Lean manufacturing process has spent considerable time identifying causes of and solutions to waste of time and resources. This same analysis can be applied to the software development process to remove wasted work and increase throughput, independent of the actual process.
At Imaginet, we have worked with hundreds of customers around the globe helping them optimize their software development processes and reduce waste so that their teams can deliver faster while doing less work. As a result of our vast experience, we will share with you in this series of articles the most common types of waste, how they relate to building software, and more importantly, how to identify them and fix them. Today, in Part 1, we will explore Over Production and Inventory.
Over production occurs when software development work continues beyond when it should have stopped. This results in features being produced that do more than what they are required to do, or when features are developed earlier than when they are needed. Resources, effort, and money spent on these features are wasted because they provide no business value to the customer or user.
Engaging a user experience (UX) expert early in the development process helps to eliminate over production by identifying what the exact needs of the application are for the user. Using Scrum, it is possible to further reduce over production by having a Product Owner prioritize work based on business value. Moving to a pull-based system to only build features as they are required by the user streamlines things even more.
Inventory in software development refers to any work that is still in progress. Work that is in progress has not been released for production use and, as long as it remains in that state, it is waste.
There are many ways in which this can manifest itself. For example, a user story might be prioritized for development but have insufficient detail for work to begin. A feature may not be adequately unit/integration tested for release. In Scrum, a story that is in progress might be removed from a sprint in favor of a different story.
Eliminating inventory waste in software development requires planning. Every feature needs to be fully understood and properly prioritized before work begins. This means it is necessary to understand any dependencies that exist. Communication and collaboration between team members is vital to reducing inventory. Inventory tends to be easier to identify, but can be more difficult to eliminate. Any tool that tracks work in progress can give you an indication of how much inventory you have. The problem is that inventory can be caused by or a symptom of other types of waste. It can also hide other types of waste. As we go through the other types of waste, it will help dig down to any potential root causes.
Both of these can impact how efficiently you can deliver software, but each of these can proliferate other types of waste. In the next article, we will address two more types of waste: Extra Processing and Defects, and we will see how those can tie into the ones we have already addressed.
Click here to find out how Imaginet can help you reduce waste and optimize your software development processes so that your teams can deliver faster while doing less work.
Imaginet is your trusted technology partner who turns your business innovation ideas into reality. 18+ years | 1100+ satisfied customers | 2500+ successful engagements. Located in Dallas (Irving), Winnipeg, and Calgary. Services offered worldwide. Contact us today at firstname.lastname@example.org or 1-800-989-6022.