Software Development Waste

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))

results matching ""

    No results matching ""