In this series on the Seven Wastes, we’ll attempt to highlight the 7 wastes in various industries and disciplines. Today, we’ll consider The Seven Wastes of Software Engineering.
If the customer were to peer over your shoulder, what would they have you stop doing?
In Lean Thinking, Waste is activity that adds cost but not value – from the customer’s perspective
Given that, here are the 7 Wastes of Software Engineering:
- Handoffs – Movement of product that does not add value.
- Requirements – Product Requirements Documents (PRD), Story Cards – more material information than the customer needs
- Completed code, but not checked-in
- Completed code, but not documented
- Untested code
- Code in staging environment, but not in production environment
- Code with overwhelming amount of comments /*comments*/
- Task-Switching – Bodily or mental motion that does not add value
- A evil-twin of Task-Switching is Multi-Tasking
- Delay – Idle time when people, material, information, or equipment is not ready
- Waiting for project approval
- Waiting for resources
- Waiting for change approval process
- Waiting for product management or requirements
- Extra Steps or Effort – effort that does not add value from the customer’s perspective
- Having to relearn what a function, class, or piece of code does
- Having to refactor a piece of code when it already meets requirements
- More Stuff – Producing more than the customer needs or wants
- Featuritis or Feature Bloat: more features than the customer needs, wants, or asked for
- Wrong Thing – Building something a customer doesn’t want or does not use
- Bugs – errors, rework, mistakes, or is missing something necessary
It’s Your Turn
What other examples do you have? Do you agree or disagree?