👇 (This is the same intro for all the lean waste posts. If you have read it already, scroll down for 4 paragraphs) 👇
We waste time all the time. Small unimportant tasks. Procrastination. Looking at nothing (this one is not really a time waster if it clears your head). The world is filled with traps that make us waste our time, and some of them we already know how to detect and adapt to them.
Lean Manufacturing talks about the 7 lean wastes, these wastes can also be mapped to software development.
During these next 7 days, I will pick up one of the wastes and investigate the following questions
- Why does it impact our work?
- What could be the causes of this?
- How can we measure it?
- How can we avoid it?
For today, the focus is Delays. This is the most important metric you should be tracking because it impacts everything else.
Delays, or waiting time, impact all the other lean wastes. For example:
If you have to wait, you will pick something else to do. This causes context/task-switching.
On the other hand, what blocked you is still not done. This causes partially done work.
If by any chance your work is done, but you are waiting for feedback, there is a high chance you will pick another part of that project. This can cause extra work that the customer won’t need. But we don’t know because we don’t have the feedback yet.
It is like one thing fuels the other and enters a never-ending spiral of wasted time.
Why does it impact our work?
- Keep our customers from having value.
- Trigger task-switching and partially done work.
- Extra features, if the feedback loop time is the source of the delay.
- Bugs go unnoticed if the delay is between dev and test.
What could be the causes of this?
- Extra work.
- Bad communication.
- Not properly refining what needs to be done by having a DoR.
- Unhealthy backlog.
- Too much work in progress.
How can we measure it?
- Age of the backlog. Old tasks that are there waiting for a long time.
- The amount of time an item is flagged.
- Gates in the process. I.E time waiting for UAT, waiting for release approval.
- Gap between development ended and test starting.
- Gap between work DONE and releasing it to production.
How can we avoid it?
- Shorten your feedback loops with your stakeholders.
- Get cross-functional teams that can develop and test.
- Use tools to facilitate communication that is not in a written form.
- Use short time-boxed iterations, like Sprints.