Software Development Waste
From https://neverworkintheory.org/2021/08/29/software-development-waste.html
These findings may not generalize, but the taxonomy is still a valuable checklist for any team that's trying to figure out how to be more efficient.
Waste | Description | Observed Causes |
Building the wrong feature or product | The cost of building a feature or product that does not address user or business needs. | User desiderata (not doing user research, validation, or testing; ignoring user feedback; working on low user value features) Business desiderata (not involving a business stakeholder; slow stakeholder feedback; unclear product priorities) |
Mismanaging the backlog | The cost of duplicating work, expediting lower value user features, or delaying necessary bug fixes. | Backlog inversion Working on too many features simultaneously Duplicated work Not enough ready stories Imbalance of feature work and bug fixing Delaying testing or critical bug fixing Capricious thrashing |
Rework | The cost of altering delivered work that should have been done correctly but was not. | Technical debt Rejected stories (e.g. product manager rejects story implementation) No clear definition of done (ambiguous stories; second-guessing design mocks) Defects (poor testing strategy; no root-cause analysis on bugs) |
Unnecessarily complex solutions | The cost of creating a more complicated solution than necessary, a missed opportunity to simplify features, user interface, or code. | Unnecessary feature complexity from the user’s perspective Unnecessary technical complexity (duplicating code, lack of interaction design reuse, an overly complex technical design created up-front) |
Extraneous cognitive load | The costs of unneeded expenditure of mental energy. | Suffering from technical debt Complex or large stories Inefficient tools and problematic APIs, libraries, and frameworks Unnecessary context switching Inefficient development flow Poorly organized code |
Psychological distress | The costs of burdening the team with unhelpful stress. | Low team morale Rush mode Interpersonal or team conflict |
Waiting/multitasking | The cost of idle time, often hidden by multi-tasking. | Slow tests or unreliable tests Unreliable acceptance environment Missing information, people, or equipment Context switching from delayed feedback |
Knowledge loss | The cost of re-acquiring information that the team once knew. | Team churn Knowledge silos |
Ineffective communication | The cost of incomplete, incorrect, misleading, inefficient, or absent communication. | The team size is too large Asynchronous communication (distributed teams; distributed stakeholders; dependency on another team; opaque processes outside the team) Imbalance (dominating the conversation; not listening) Inefficient meetings (lack of focus; skipping retros; not discussing blockers each day; meetings running over (e.g. long stand-ups)) |
Last updated