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 modified 1yr ago