In my series Customer Value Add I went over the list of wastes as identified in lean six sigma. I would now like to connect this to software development and identify where there can be best and how it can be eliminated or reduced.
- Incomplete or partially completed work – if there is untested code. This is waste if customer find defects in areas that are not tested. Its best not to send or work on code that will not be tested completely. Running some code coverage reports might help identify areas that are not tested.
- Not commonly used features – There are studies that show only 20% of features is used by customers. Identify those features and work on enhancing them. At the same time try to reduce features that are not used. Create separate licensing and make it available on request.
- Extra Features – There could be features that feel like a good idea in the beginning but by the time its built it doesn’t add the same value that you thought it would. For new features try to create a prototype or create a portion of it and get feedback before investing a lot of time and money.
- Re-learning – If there are large gaps between releases or updates there could be some time lost learning tools, features, etc. This is more applicable when the releases are far apart or team is spread across multiple projects.
- Hand-offs and Handover – Especially if the project is on waterfall methodology and teams depend on others to complete their work before they can start theirs, there could be a significant amount of waste. Sometimes there is specialization work that once has to depend on. Plan for these so that other team members are not waiting on.
- Multitasking and task switches – When we multitask or switch between tasks we are wasting a lot of time. Switching our mind from one work to another or trying to focus on a few things at the same time creates more defects than focusing on one and completing it before moving on to another.
- Delays – delays between tasks, delays between deliverable’s, etc can causes waste in the development process. There are also chances of more defects when there are delays between tasks.
- Defects – defects in general is waste. It cause rework and we end up wasting more time on tasks that were unplanned.
These are some of the wastes that we see in software development. The goal should be to identify these on a regular basis and then spend time to put process improvements in place that can reduce waste. Reducing waste will give team more time to do tasks that add value for the customer. Value that they will pay for. Hence reducing waste is better for customer and your organization.