Most agile teams do not skip the design phase because they think design is unimportant. They skip it because the process makes starting to build feel more valuable than thinking about what to build.
Sprint planning rewards velocity. Velocity is measured in shipped features. A sprint full of completed tickets looks like a productive team. A sprint where the team spent two days working through interaction flows and edge cases before writing a line of code looks, in the metrics, like a slower one. The incentive structure does not distinguish between building the right thing carefully and building the wrong thing quickly. Both produce tickets. Only one produces rework.
The rework is where the hidden cost lives. Not in the original decision to skip design, which in the moment feels like a reasonable trade-off between speed and thoroughness. In the sprint two months later that is spent rebuilding a feature that was built correctly the first time, against requirements that a two-hour design session would have clarified before any code was written.
That sprint looks identical in the metrics to a sprint that built something new. Nobody flags it as the cost of skipping design. It gets absorbed as normal velocity and the team never connects the effect to the cause. The misattribution is not carelessness. It is a structural consequence of measuring output rather than outcome, and it makes the problem very difficult to see clearly from inside the process that produces it.
The rework sprint looks identical in the metrics to a productive one. Nobody connects it to the design session that did not happen two months earlier. That invisibility is the actual problem.
WHAT SKIPPING DESIGN ACTUALLY LOOKS LIKE
It rarely looks like a deliberate decision. It looks like a series of small compressions, each one individually reasonable, that together produce a feature built on uncertain foundations.
The designer gets pulled into a higher-priority ticket before the interaction states are fully resolved. The product manager writes the acceptance criteria from a rough wireframe rather than a considered design. The engineering estimate is given before the edge cases have been identified, which means the estimate does not include the time to figure them out. Development starts, the edge cases surface during implementation, and each one is resolved locally by the engineer making the best decision available under the pressure of a sprint deadline.
The result is a feature that works. It passes the acceptance criteria. It ships. And it carries a set of micro-decisions made under pressure, in isolation, without the context that a proper design process would have provided. Those decisions are invisible in the code until a user finds them, or until the team tries to extend the feature and discovers that the foundations it was built on do not support the direction the product needs to go.
This is the pattern that produces what teams call technical debt but is more precisely design debt: architectural and interaction decisions made implicitly, without deliberate design, that constrain future work in ways that are expensive to undo.
WHY AGILE MAKES THIS WORSE BEFORE IT MAKES IT BETTER
Agile was designed to reduce the cost of being wrong by building in short feedback loops. Ship something small, learn from it, adjust. The underlying logic is sound. The application is frequently counterproductive, because the feedback loops only work if what gets shipped is the right thing to test.
A feature built without sufficient design does not produce clean feedback. It produces feedback that conflates the quality of the idea with the quality of the implementation, which makes it very difficult to know whether a feature underperforms because the concept was wrong or because the implementation was unclear. Teams that ship fast and learn fast are only genuinely learning if what they shipped was clear enough to generate interpretable signal.
The deeper problem is that agile ceremonies create an illusion of thoroughness that can substitute for actual design thinking. A ticket with acceptance criteria feels designed. A backlog with user stories feels considered. A sprint review with a demo feels like validation. None of these are substitutes for the work of understanding what a user needs at each moment, how the interface should communicate it, and what happens in every state the feature can be in.
Acceptance criteria are not a design. User stories are not interaction design. A passing demo is not user validation. Agile ceremonies can create the feeling of thoroughness without the substance of it.
THE COST IS CUMULATIVE, NOT LINEAR
A single skipped design session has a small cost. The feature ships with rough edges. The edge cases are handled inconsistently. The interaction is slightly unclear. These are tolerable imperfections on a single feature.
Across ten features, built over six months, the costs compound. The inconsistencies accumulate into an interface that feels incoherent. The locally made decisions conflict with each other because they were made without a shared design foundation. The rework required to bring the product into alignment is no longer about fixing individual features. It is about reconciling a set of implicit decisions that were never meant to form a system but have become one.
This is the point at which teams typically bring in a designer to fix the UI, discover that the UI problems are actually architecture problems, and find themselves in a refactor conversation that traces back to design decisions that were never made explicitly.
The cumulative nature of design debt is what makes it so expensive. Each individual decision seemed reasonable in context. The aggregate was never visible until it became a crisis.
WHAT TO DO ABOUT IT WITHIN A SPRINT STRUCTURE
The solution is not to abandon agile or to institute a lengthy design phase before every sprint. It is to create a structural home for design thinking within the existing process, so that the decisions that need to happen before development begins actually happen before development begins.
Design one sprint ahead
The most practical intervention is to establish a discipline where design work for sprint N plus one happens during sprint N. While engineers are building the current sprint, the designer and product manager are resolving the designs for the next one. By the time a feature enters the sprint as a development ticket, the design is settled: interactions are resolved, edge cases are documented, and the engineer is implementing a clear specification rather than making design decisions under delivery pressure.
This does not require a separate design sprint or a waterfall phase. It requires a deliberate agreement that development tickets do not enter sprint planning until the design is done, and that design work is treated as a first-class deliverable in the sprint that precedes the development sprint.
Define done for design before defining done for development
Most agile teams have a definition of done for development: the code passes tests, the feature meets acceptance criteria, it has been reviewed and merged. Very few teams have an equivalent definition for design.
A definition of done for design before a ticket enters development might include: the primary flow is designed and reviewed, all error states are accounted for, the empty state is designed, the mobile layout is resolved, and the interaction has been tested against the design system for consistency. This list is not exhaustive and the right list varies by team and product. The point is that without an explicit definition, done for design defaults to whenever the designer had to move on to something else, which is not a quality bar.
Make design decisions visible in the ticket
One of the reasons design debt accumulates invisibly is that the decisions made during development, the ones that substitute for the design work that did not happen, are not recorded anywhere. They live in the code, undocumented, until someone has to change the feature and discovers that the behaviour they are trying to modify was a local decision made by an engineer two months ago.
Making design decisions visible means linking the design file to the ticket, documenting the edge cases that were considered and how they were resolved, and flagging explicitly when a development decision was made in the absence of a design decision. That flag is not a criticism. It is information that the team can use in a future sprint to address the gap before it compounds.
Treat the design review as a technical review
Engineering teams conduct code reviews as a standard practice. The equivalent for design, a review of the interaction before development begins, is treated in most agile teams as optional, a nice-to-have that gets skipped under time pressure.
Elevating the design review to the same status as the code review changes its weight in the process. A feature that has not passed design review does not enter development, for the same reason that code that has not been reviewed does not merge. This is not a bureaucratic addition to the process. It is the insertion of a quality gate at the point in the process where the cost of finding problems is lowest.
THE REFRAME THAT CHANGES THE CONVERSATION
The teams that make this change successfully are the ones that stop treating design as a phase that produces artefacts and start treating it as a process that produces decisions. The Figma file is not the output. The resolved set of questions about what the feature needs to do, in every state it can be in, for every user who will encounter it, is the output.
When design is understood as decision-making rather than artefact production, its value in an agile process becomes easier to articulate. The sprint that includes design decisions is not slower than the sprint that skips them. It is faster than the two sprints that would otherwise be required: one to build the feature and one to rebuild it correctly.
The cost of skipping design is not paid in the sprint where the decision is made. It is paid, with interest, in every sprint that inherits the consequences of that decision. Making it visible, as a cost rather than a saving, is the first step toward building a process that accounts for it honestly.
CLOSING THOUGHT
Agile is a delivery discipline. Design is a thinking discipline. They are not in conflict, but they require deliberate integration to coexist productively. The teams that manage that integration well ship faster over time, not because they slow down to design but because they stop paying the compounding cost of building things that need to be rebuilt. That is not a soft argument for better process. It is an economic argument for where the time actually goes.
