The Seven Wastes of Software Engineering
Friday, May 14th, 2010
Transportation
- Handoffs – Movement of product that does not add value.
Inventory
- 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 codeCode in staging environment, but not in production environment
- Code with overwhelming amount of comments /*comments*/
Motion
- Task-Switching – Bodily or mental motion that does not add value
- An evil-twin of Task-Switching is Multi-Tasking
Waiting
- 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
Overprocessing
- 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
Overproduction
- 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
Defects
- Bugs – errors, rework, mistakes, or is missing something necessary
How about :
- No automation of recurring, low-value, low-skill tasks (data extracts, etc) & automated tests
- Spending on hardware to fix design/code issues (”servers & storage are cheaper than good developers”)
- Inertia (not quite the same as “Waiting”) : “things are different here”, “we’ve always worked like this”, etc.- Death by meetings…
via shmula.com
Not commented yet.