← Back to Blog

Why Your Most Productive Teams Look Like They're Doing Nothing

literallyshane··10 min read
Loading the Elevenlabs Text to Speech AudioNative Player...

When I first started managing developers, I made the same mistake everyone makes. I thought my job was to keep everyone busy.

I'd walk past someone's desk and see them reading Hacker News or chatting about last night's game, and I'd feel that familiar managerial anxiety. Shouldn't they be coding? We have deadlines. We have a burn-down chart that's barely burning down. Every moment not spent typing seemed like waste.

Then something interesting happened. The team I was most worried about-the one that seemed to have the most "downtime"-shipped the best product we'd ever built. Meanwhile, the team I'd optimized to 100% utilization was constantly firefighting, missing deadlines, and their code looked like it had been written during an earthquake.

It took me years to understand what I was seeing. The "lazy" team wasn't lazy at all. They had something the busy team didn't: slack.

The Factory Floor Fallacy

Here's what nobody tells you about managing software teams: almost everything we think we know about management comes from factories. Frederick Taylor watched men shovel coal and figured out how to make them shovel faster. Henry Ford perfected the assembly line. MBA programs still teach these lessons as if writing software is just a fancier kind of shoveling.

But software isn't coal. When you're shoveling coal, working twice as hard means moving twice as much coal. When you're writing software, working twice as hard often means moving backwards.

I learned this the hard way at my first startup. We had a developer, let's call him Marcus, who was incredible. The kind of programmer who could hold an entire system in his head. One quarter, we pushed him to 100% utilization. Every sprint, fully loaded. Every standup, a list of tasks that would keep him busy until the next standup.

You know what happened? He burned out, but not in the dramatic, quit-in-a-rage way. He just started writing bad code. Bugs that would have taken him minutes to prevent took days to fix. Architecture decisions that would have been obvious with a clear head became monuments to shortsightedness. We saved six weeks of "slack time" and lost six months to technical debt.

The Prussian Mystery

In the 1870s, the Prussian army did something strange. While everyone else was trying to squeeze maximum efficiency from their forces, the Prussians built in something they called "Auftragstaktik"-a system where commanders were given goals but not specific instructions. They had slack to figure things out.

Everyone thought they were insane. Why would you waste all that potential productivity? Then the Prussians crushed the French in the Franco-Prussian War, and suddenly everyone wanted to know their secret.

Software teams work the same way. When you give developers slack-time that's not allocated to specific tasks-magic happens. They refactor that nasty module that's been slowing everyone down. They write documentation. They help the junior developer who's been stuck for two days. They think about the architecture instead of just grinding out features.

At Y Combinator, we saw this pattern repeatedly. The startups that built slack into their development process moved faster than the ones that ran at 100%. Not eventually faster-immediately faster.

What Slack Actually Looks Like

Let me be specific about what I mean by slack, because it's not ping-pong tables and beer fridges.

Slack is when your senior engineer spends an afternoon teaching the junior developer about database indexing. That afternoon shows up on no sprint. It delivers no story points. It moves no tickets from "In Progress" to "Done." But three months later, your application is faster and your junior developer is solving problems independently.

Slack is when your team spends a day arguing about the architecture of a new feature before writing a single line of code. These arguments look like waste. They sound like waste. If you track "productivity" by lines of code or tickets closed, they are waste. But they're the difference between building something once and building it three times.

Slack is when someone reads the source code of the library you're using instead of just following the Stack Overflow answer. It's when they set up better monitoring before the system fails, not after. It's when they automate something that only takes five minutes because they know it's actually five minutes times forever.

Here's a concrete example. We had two teams building similar features. Team A was scheduled at 85% capacity-meaning 85% of their time was allocated to planned work. Team B was at 100%.

Team A shipped two weeks early. Team B shipped three weeks late.

Why? When Team A hit unexpected problems (and software always has unexpected problems), they had capacity to deal with them. When someone got sick, others could cover. When they discovered a performance issue, they had time to fix it properly instead of adding another hack.

Team B had no slack. Every surprise became a crisis. Every bug fix pushed something else back. They started cutting corners, which created more bugs, which created more emergencies. It's a death spiral I've seen dozens of times.

The DeMarco Paradox

Tom DeMarco figured something out that sounds like nonsense until you've lived it: efficiency is the enemy of effectiveness.

Think about a highway. At 100% capacity, a highway is a parking lot. Traffic moves fastest at about 70% capacity. Software teams are the same. At 100% utilization, everything takes forever because there's no room to maneuver.

But here's the part that really messes with people's heads: slack time often produces more actual work than scheduled time. When developers have slack, they fix the things that are bothering them. And the things that bother developers are usually the things that slow everything down.

That weird build process that adds two minutes to every compile? During "productive" sprint time, everyone just lives with it. During slack time, someone fixes it. Two minutes times fifty compiles a day times five developers times 250 working days equals... well, you just got back 208 hours. From "wasted" time.

The Office Problem

Want to know why your developers want to work from home? It's not because they want to slack off. It's because they want to work.

The modern office is designed to eliminate slack. Open floor plans so managers can see who's "working." Calendars so packed with meetings that actual work has to happen at night. Instant messaging so every question gets an immediate answer, interrupting whatever deep work was happening.

We did an experiment once. We gave a team a "meeting-free Thursday"-no meetings, no standups, no "quick syncs." Just one day a week of actual slack. Productivity went up 40%. Not on Thursday-for the entire week.

Why? Because when developers know they have uninterrupted time coming, they can plan for it. They save the hard problems for Thursday. They batch the easy stuff for the meeting-heavy days. They actually think about what they're building instead of just reacting to the next urgent request.

The Zombie Startup

I see a specific pattern in failing startups. They start fast and nimble, building quickly, iterating based on feedback. Then they get some traction, maybe some funding, and someone says those fatal words: "We need to be more professional."

So they adopt Scrum. They implement story points. They track velocity. They optimize for 100% utilization. They eliminate slack.

Six months later, they're moving at half the speed with twice the people. The good developers have left for companies that still let them think. The remaining team is so busy fighting fires they can't see that the whole building is burning down.

These zombie startups look productive. The metrics all point up and to the right. Everyone's busy. The burn-down charts are burning down. But they're not building anything worthwhile. They're just busy.

Building In Slack

So how do you actually build slack into a team? First, you have to stop measuring the wrong things.

Lines of code is a terrible metric. Story points are theater. Even velocity is misleading if you're not building the right things. The only metric that matters is whether you're solving real problems for real users.

Here's what works:

The 20% Buffer Rule: Never plan more than 80% of your team's capacity. That 20% isn't waste-it's insurance. When (not if) something unexpected happens, you have room to handle it without derailing everything else.

Hack Days That Aren't Hackathons: Give developers regular time to fix what's bothering them. Not competitive hackathons with prizes and presentations-just time to make things better. The ROI on this is absurd. We once had a developer save the company $100,000 a year in AWS costs during a hack day. That was just one of twelve things that got fixed that day.

Office Hours Instead of Interruptions: Senior developers should have scheduled times when they're available for questions. The rest of the time, they should be left alone to think. This sounds antisocial but actually creates better mentorship because the senior developer can prepare and context-switch intentionally.

Kill Regular Meetings: That weekly status meeting? Kill it. The daily standup that takes 45 minutes? Kill it. Most meetings exist because nobody has the courage to kill them. Be courageous.

Make Space for Arguments: The best teams I've seen argue constantly-about architecture, about approaches, about tradeoffs. These arguments aren't waste. They're the sound of people caring about building things right. The teams that don't argue are the ones that have given up.

The Paradox of Productivity

Here's the thing that took me the longest to understand: the teams that look most productive are often the least productive.

They're typing constantly because they're fixing bugs from code they wrote too quickly. They're in meetings constantly because nothing was built right the first time. They're "crunching" because they have no slack to handle the unexpected.

Meanwhile, the best team I ever worked with looked lazy half the time. They'd spend hours at a whiteboard. They'd go for walks to think through problems. They'd sit in the kitchen arguing about database design. They shipped more quality software than any team I've seen before or since.

The difference? They had slack. Time to think. Time to fix things properly. Time to help each other. Time to prevent problems instead of just reacting to them.

The Manager's Real Job

If you're managing software teams, your job isn't to maximize utilization. Your job isn't to ensure everyone looks busy. Your job isn't even to meet deadlines-not if meeting them means destroying your team's ability to meet the next one.

Your real job is to create the conditions where good work can happen. That means fighting for slack, even when it looks like waste. Especially when it looks like waste.

Because here's the secret that the best engineering managers know: the team that has time to think will always beat the team that only has time to type.

The Prussians figured this out 150 years ago. DeMarco wrote about it 40 years ago. Yet most software companies still manage like it's a factory floor and developers are very expensive typists.

Don't be most companies. Build in slack. Let your team think. Watch them build things you didn't even know were possible.

The alternative isn't just burning out your team. It's building bad software slowly. And in a world where software is eating everything, that's not just inefficient.

It's fatal.


P.S. Next time you see a developer staring out the window or doodling on a whiteboard, resist the urge to give them a task. They might be solving next month's crisis before it happens. That's not slack-that's the highest leverage work they could possibly be doing.

EngineeringManagementTeamsProductivityLeadership

ABOUT THE AUTHOR

Shane Davis is a software engineering team lead who writes on philosophy, society, living an excellent life (Arete - Greek for excellence), and leadership.

RELATED POSTS