Where Did the Day Go? A Practical Guide to Finding the Hours Your Team Can't Account For
Photo: software developer frustrated waiting computer loading screen office, via thumbs.dreamstime.com
Here's a question worth sitting with: if you asked every engineer on your team where their last 40 hours actually went, how accurate would their answers be?
Not where they intended to spend time. Not where their calendar says they were. Where the hours actually went — including the 11 minutes waiting for a build, the 25 minutes re-establishing context after a Slack ping pulled them out of flow, the hour and a half debugging an environment issue that shouldn't exist in 2024.
Most teams have no idea. Not because they're not paying attention, but because friction is invisible by design. It doesn't show up as a task. It doesn't get logged in Jira. It just quietly eats the day.
The good news: this is findable. And once you find it, fixing the top three sources of friction almost always delivers more velocity than any process improvement, tooling upgrade, or hiring decision you're considering.
Why Friction Compounds Worse Than You Think
Individual friction events feel small. A 15-minute CI run doesn't feel catastrophic. An approval that takes a few hours seems like a normal part of the process. A context switch costs... what, a few minutes?
The actual research on context switching suggests the cost is closer to 20-40 minutes of ramp-up time per interruption. A developer who gets pulled out of deep work three times in a day has lost the equivalent of a full working morning — not to meetings, not to explicit tasks, just to the overhead of re-engaging.
Now multiply that by your team size. Multiply it by five days a week. Multiply it by the fact that these costs are invisible so nobody's trying to fix them.
You're not looking at a minor inefficiency. You're looking at potentially 20-30% of your team's productive capacity being silently consumed by friction that nobody has named.
Step One: Name the Friction
The first phase of a friction audit is purely observational. Before you measure anything, you need a complete inventory of where friction exists. This sounds obvious but most teams skip it — they jump straight to solutions for the friction they already know about and miss the stuff that's become background noise.
Run a simple async exercise with your team. Ask each engineer to track, for one week, every time they have to wait for something, switch context unexpectedly, repeat a step they've done before, or work around something that should be automated. No judgment, no immediate action — just collection.
The categories you're looking for:
Pipeline friction. CI build times, test suite duration, deployment wait times. These are easy to measure and often the most dramatic. A team with a 20-minute CI run that deploys 10 times a day is burning over three hours a day just waiting. Per engineer.
Approval and coordination friction. Code reviews that sit unread, infrastructure requests that need a ticket, access permissions that require a manager's sign-off. These have two costs: the wait time itself, and the context switch required to re-engage when the approval finally comes through.
Environment friction. Local dev setups that drift from production, staging environments that are unreliable, secrets management that requires manual steps. This category is particularly insidious because the cost shows up as debugging time, which engineers attribute to complexity rather than to infrastructure debt.
Tool friction. The number of systems an engineer has to touch to complete a routine task. If shipping a feature requires touching your code editor, your CI dashboard, your deployment tool, your monitoring platform, your feature flag system, and your project tracker — each of those transitions is a micro-context-switch that adds up.
Step Two: Quantify the Actual Cost
Once you have an inventory, you need numbers. Estimates are fine — you're not trying to build a scientific study, you're trying to prioritize.
For each friction category, estimate:
- How often does this happen per engineer per day/week?
- How long does it take each time (including the re-engagement cost, not just the wait)?
- How many engineers are affected?
Multiply those numbers together and you get a rough weekly cost in engineer-hours. For most teams, this exercise produces at least one number that's genuinely shocking — a single friction source consuming 15-20 engineer-hours per week that nobody had explicitly identified as a problem.
A quick example: a CI pipeline that takes 22 minutes, run an average of 8 times per engineer per day, across a team of 6 engineers. That's 17.6 hours per day in wait time — not counting context switch costs. Even if engineers are doing other things during those waits (and context switching, remember), the interruption pattern alone is costing the team meaningful output.
Step Three: Pick Your Top Three
Here's where teams go wrong: they try to fix everything. They run a friction audit, identify twelve problems, and launch twelve parallel improvement initiatives. Six months later, none of them are done and the friction is largely unchanged.
The rule is simple: fix the top three, in order of impact. Nothing else until those are done.
Prioritize by the combination of cost (engineer-hours per week) and fixability (how hard is it to actually solve). A friction source that costs 20 hours per week but requires a platform migration is lower priority than one that costs 12 hours per week and can be fixed with a configuration change.
For most teams, the top three will include at least one CI/CD optimization, one approval process change, and one environment or tooling simplification. These categories recur because they represent structural patterns in how most engineering orgs are set up.
Step Four: Measure Before and After
This is the part that makes the effort compound. If you don't measure the before state explicitly, you can't demonstrate the after — and without the demonstration, friction audits become a one-time exercise instead of a recurring practice.
Before you fix anything, capture your baseline:
- Average CI run time (pull from your pipeline tool)
- Average time from PR open to first review (pull from GitHub/GitLab)
- Average time from merge to production (pull from deployment logs)
- Self-reported engineer friction score (simple 1-10 survey, takes five minutes)
Run the same measurements 30 days after implementing fixes. The delta is your story. A team that drops CI time from 22 minutes to 8 minutes, cuts review wait time in half, and reduces deployment lag by 60% has recovered meaningful capacity — and now has the data to justify doing it again next quarter.
The Compounding Advantage
Here's the real payoff: friction audits get easier and more valuable each time you run them. The first audit finds the biggest, most obvious drains. The second finds the subtler ones that were hidden behind them. Teams that make this a quarterly practice — not a one-time initiative — consistently outpace teams that treat it as a project.
The hours are there. They're just quiet about where they're hiding. Go find them.