The DRAINS Framework
"Spot the Drain, Stop the Pain"
Did I finish what matters, without waiting or wandering?
Every drain causes pain for you, your team and your customers. Spot it. Stop it. Ship value.
| Drain | Name | Tagline |
|---|---|---|
| D | Delays | "Waiting is wasting" |
| R | Relearning | "Knowledge lost is time lost" |
| A | Abandoned Work | "Unfinished = Undelivered" |
| I | Interruptions | "Context switching kills focus" |
| N | Needless Features | "If they won't use it, don't build it" |
| S | Slip-ups & Handoffs | "Every pass is a chance to drop the ball" |
Delays
"Waiting is wasting"
What It Is
Delays occur whenever work stops moving forward. This includes waiting for approvals, answers, environments, other teams or decisions. Every minute of waiting is a minute of value not delivered.
Why It Hurts
- Extends lead time and delays value delivery to customers
- Creates inventory of partially completed work
- Forces context switching when work finally unblocks
- Increases risk of requirements changing while waiting
How to Fix It
- Make blockers visible: Track and surface delays in standups
- Set SLAs for reviews: Code reviews within 24 hours
- Empower decisions: Push authority to the lowest appropriate level
- Automate environments: Self-service infrastructure
Relearning
"Knowledge lost is time lost"
What It Is
Relearning happens when knowledge is not captured or shared effectively. Someone figures something out, but that knowledge stays locked in their head. When others need the same information, they have to rediscover it from scratch.
Why It Hurts
- Multiplies effort across the team
- Creates single points of failure
- Slows onboarding of new team members
- Leads to inconsistent approaches across the codebase
How to Fix It
- Document decisions, not just code: Use ADRs
- Pair and mob programming: Spread knowledge in real-time
- Runbooks for operations: If you figured it out, write it down
- Rotate ownership: Prevent knowledge silos
Abandoned Work
"Unfinished = Undelivered"
What It Is
Abandoned work is any work in progress that is not usable by customers yet. This includes feature branches that have not been merged, PRs sitting in review, half-built features and code that is "90% done."
Why It Hurts
- Ties up effort that could be delivering value
- May become obsolete as requirements change
- Creates merge conflicts and integration headaches
- Hides risk because you do not know if it works until it is done
How to Fix It
- Limit WIP: Finish things before starting new things
- Slice smaller: Break features into pieces that ship independently
- Trunk-based development: Integrate frequently
- Make WIP visible: If your board is cluttered, you have a problem
Interruptions
"Context switching kills focus"
What It Is
Interruptions are the productivity loss that happens when people juggle multiple tasks, projects or requests simultaneously. Every time you switch context, you pay a tax. It takes time to get back into flow.
Why It Hurts
- Studies show it takes 23 minutes to refocus after an interruption
- Reduces quality of work on all tasks
- Increases stress and burnout
- Creates the illusion of progress without actual completion
How to Fix It
- Dedicated focus time: Block calendars for uninterrupted work
- Batch similar work: Handle all code reviews at once
- Protect your makers: Shield developers from ad-hoc requests
- One project at a time: Fight the urge to "utilise" people across initiatives
Needless Features
"If they won't use it, don't build it"
What It Is
Needless features are capabilities built that users do not actually need or use. This is classic feature creep: building things because they seem like good ideas, not because they solve validated problems.
Why It Hurts
- Consumes development time that could deliver real value
- Adds complexity to the codebase (more code = more bugs)
- Increases maintenance burden forever
- Creates opportunity cost. What did you not build instead?
How to Fix It
- Validate before building: Talk to users, run experiments
- Say no more often: The best feature is the one you do not build
- Measure usage: Track what is actually used, kill what is not
- MVP mindset: Ship the smallest thing that delivers value
Slip-ups & Handoffs
"Every pass is a chance to drop the ball"
What It Is
This drain combines two related wastes: defects (slip-ups) and handoffs. Defects are bugs and quality issues requiring rework. Handoffs are transitions between people or teams where information gets lost.
Why It Hurts
- Defects disrupt flow and force context-switching to old work
- Each handoff loses information and adds delay
- Customer trust erodes with every bug encountered
- The cost of fixing defects increases exponentially over time
How to Fix It
- Build quality in: TDD, pair programming, code review
- Cross-functional teams: Bring all skills needed into one team
- "You build it, you run it": End-to-end ownership
- Automate testing: Catch defects early and consistently
Using the Framework
Daily Reflection
"Did I finish what matters, without waiting or wandering?"
Ask yourself this question at the end of each day. If the answer is no, identify which drain was responsible and take action.
Team Retrospectives
Use DRAINS as a lens for retrospectives. Instead of asking "what went wrong?", ask "which drains affected us this sprint?" This reframes problems as systemic issues rather than individual failures.
Remember
Protect the 10%. It's where breakthroughs hide.
The 10% of uninterrupted deep work is where real innovation happens. Protect it fiercely.
Stay in the Loop
Ready to Stop the Drains?
Join the mailing list for actionable insights, guides and tips for engineering leaders.
No spam. Unsubscribe anytime.