惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
量子位
罗磊的独立博客
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
小众软件
小众软件
C
Cybersecurity and Infrastructure Security Agency CISA
Cyberwarzone
Cyberwarzone
大猫的无限游戏
大猫的无限游戏
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
Simon Willison's Weblog
Simon Willison's Weblog
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园_首页
博客园 - 叶小钗
V
Vulnerabilities – Threatpost
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
IT之家
IT之家
博客园 - 聂微东
Spread Privacy
Spread Privacy
V2EX - 技术
V2EX - 技术
S
Security Affairs
宝玉的分享
宝玉的分享
V
V2EX
C
Cisco Blogs
博客园 - Franky
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
S
Securelist
J
Java Code Geeks
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
P
Proofpoint News Feed
Last Week in AI
Last Week in AI
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
WordPress大学
WordPress大学
W
WeLiveSecurity
T
Threatpost
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens Prisoner's Dilemma Climbing No More The Weekly Win Mevlana Candy Brewing Turkish Tea Onboarding Your Engineering Manager Technical Deep Dives Yapay Zekâ Çağında Bilgisayar Mühendisliği Building Remote Teams From Idea to Launch in 2 Weeks Reflecting on Software Engineering Handbook Representing the Business New Manager Survival Guide Take Self Reviews Seriously Chasing Real Respect The Invisible Difference Learning the Johari Window Management is a Lonely Place Simple Task Management AI Balance in Work PIP Manager Insights Engineering Manager Interview Preparation Work-Life Balance as a Manager Bridging the Management Disconnect Tech Hiring Bubble Bursts Traits for EMs Simple Acts of Recognition Matter The Question I Ask Every New Report The Reality of an Employer's Market Bridging Ideals and Reality Hiring Red Flags Why The Godfather Is So Damn Good Subteam Tenets No Fluff Please Losing a Top Performer Balancing Act of Reliability Building Trust in Engineering Teams Ideal Number of Direct Reports Overriding a People Leader’s Decision From Misperception to Promotion Perception vs Perspective Setting Goals From Engineer to Manager Getting Delegation Right Interviewing Your Future Boss Celebrating Our Book in Iceland Operational Skills Needed On Writing Software Engineering Handbook Charlie Munger Quotes Working with Dependencies From Las Vegas to Canyons Navigating Layoffs Handling Competitive Dynamics A Weekend Getaway to Malta Engineering Health Essentials Should Dev Managers Code? Confronting the Life on Pause Winning Eleven Kindness is A Choice Bireysel Katılımcılar ve Yöneticiler Leading from Where You Are The Subtle Art of Listening Coding in Leadership The Power of Consistency The Making of a Leader The Path to Leadership Embracing TikTok Talent Sourcing Journey Leading Self Managing Teams Cracking Coding Bottlenecks Quick Reflexes in Decision Making
Capacity Is the Roadmap
Yusuf Aytas · 2026-03-16 · via Yusuf Aytas

Published · 8 min read

When I was young, I worked in carpentry during the summers. Summer was busy. New buildings had to go up. Stables needed repairs. Barns needed extensions. Sheds had to be built out in the fields. Demand was high. Our bottleneck was capacity.

We had one saw, and one person could run it at a time. Yes, we could extend the hours, and often we did. We could push harder for a while. But the real limit was still the machinery and the people around it. You cannot create skilled carpenters on the spot. You also cannot pretend you have three saws when you only have one.

The saw itself was never fully available, either. It needed oiling, adjusting, and occasional repairs. Blades wore down. Breakdowns happened when hidden nails turned up in the timber. Everyone swore their timber had no nails in it. Changing operators also slowed things down. In the end, part of the saw’s capacity always had to be spent just to keep it usable.

Roadmap planning is not very different. People like to talk about priorities as if the main problem is choosing what matters. In practice, the deterministic factor is capacity. Team capacity. System capacity. The share you lose to maintenance, interruptions, coordination, and keeping the machine fit to run. Ignoring these physical limits turns an ambitious roadmap into a collective illusion.

Old rustic carpentry workshopOld rustic carpentry workshop

Make the Work Clear

In carpentry, even if you are mostly processing standard timber sizes, the work still has to become specific before anyone can plan around it. Someone has to decide what runs next, which job it is for, and what waits while the saw is busy. Roadmaps have the same problem. Work should not enter as raw demand. It has to become clear enough to compete for real capacity.

A Request is not a Case

One of the easiest ways to ruin a roadmap is to let raw demand enter as if it were already shaped work.

  • “The customer asked for this.”
  • “Sales says this is urgent.”
  • “We should probably do this.”

These are signals. A roadmap-worthy item needs more structure than that. It needs a problem statement, evidence that the problem is real, an expected outcome, a dependency view, and at least some sense of what it will displace. Until then, it is just a demand. It may be a valid demand, even an important one, but it is not ready to compete for capacity. 

Shape Before you Prioritize

Big ideas should become negotiable before anyone debates where they rank. That is what shaping is for. Not a perfect prediction. Not fake certainty. Just enough definition to stop a large idea from arriving fully inflated. Good shaping exposes assumptions, narrows the idea, breaks it into smaller increments, and separates must-have from luxury. The goal is to stop six-month projects from entering the roadmap without boundaries.

Before something competes for roadmap space, it should survive four questions. Is it valuable? Is it usable? Is it feasible? Is it viable for the business? If those questions are still open, the item is not ready for prioritization. It is still in a discovery period.

Displacement Cost

Sales requests are where roadmap honesty usually breaks first. The fix is not to ignore them, but to force them into the same economic shape as everything else: what deal, what revenue, what deadline, what broader market pattern, and what exactly gets displaced if we take it on?

If something enters, something moves. Most roadmap dishonesty starts when teams discuss additions without naming displacement. A new customer request appears. Leadership wants a visible bet. Sales needs something for a deal. Everyone talks about importance. Almost nobody says what gets pushed out. That is the real decision. They have only added pressure and left the team to absorb the contradiction later. 

Estimates are for Trade-offs

Estimates matter here, but not because they make the future knowable. Their real value is that they introduce friction. They force EMs/PMs to stop pretending everything fits. They give work a boundary. They make smaller versions possible. They turn vague enthusiasm into something discussable. That is why time-boxing matters too. Once the team has a bounded appetite for the work, trade-offs become real.

Without that friction, the conversation stays political. With it, people finally have to answer the real question: how much of our limited capacity is this problem worth? A month, a quarter, or a year.

Allocate Capacity Explicitly

Once the work is clear, our next question is not “what do we like most?” It is “where will the time actually go?” The saw could only run one job at a time, and some of its time was lost to oiling, adjustments, blade changes, and repairs. Software teams hide that constraint better, but they do not escape it. 

Capacity is the Real Roadmap

If capacity stays invisible, it still gets allocated, usually by the loudest stakeholder, the nearest escalation, or the latest surprise. That is why feature lists create false confidence. A list can look coherent long after hidden promises, side work, and unplanned interrupts have already broken the allocation. The real question is simpler: how much engineering, product, and design time are we willing to fund here, and what will not happen because of it?

Use Visible Investment Buckets

You do not need a perfect formula, but you do need named buckets. Customer-facing work. Reliability. Engineering health. Platform or enablement work. Partner or compliance obligations. Interrupt budget. The point is not precision here. It is to make the investment mix visible enough that people can see the trade-offs they are asking for.

Visible buckets expose the zero-sum nature of the plan. If one bucket grows, another shrinks. Once the mix is visible, the argument becomes more honest. People stop pretending every category can expand at the same time.

Note that buying a vendor solution does not remove roadmap cost. It changes its shape. Integration, version drift, and dependency management still consume capacity.

Visible investment bucketsVisible investment buckets

Technical debt belongs Inside the Roadmap

Technical debt belongs inside normal delivery, but larger engineering health work still needs explicit room. Otherwise the organization is not choosing against it consciously. It is neglecting it by default.

Technical debt is too broad to budget well. Some work is hygiene, the regular maintenance required to keep the machine healthy. Some is leverage, investment that makes future delivery faster. Some is time-bomb work, deferred failure that will eventually stop the roadmap altogether.

Interrupts Count

A roadmap that assumes perfect stability is not a roadmap. It is a wish. Broken mainline, urgent upgrades, incident follow-up, forced migrations, partner changes, and dependency fallout are part of the operating environment. They should not arrive every quarter as if they were acts of God. They should be assumed and budgeted up front.

They allocate one hundred percent of visible capacity to planned work, then act surprised when operations consume the missing share. Reserve capacity for interrupts before the quarter begins including oncall, postmortems, and operational side quests.

Capacity is also a Leadership Signal

What gets a protected slice of capacity is what the organization truly values. If reliability is always described as critical but never appears visibly in the mix, the message is already clear. It reveals what will still be defended when pressure arrives.

Teams should be able to see where leadership is putting real money, and where the company is willing to bet the house. If those strategic bets are serious, they should show up as protected capacity. Or, put differently, if they are truly serious, the company should hire for that initiative and provide the necessary headcount.

Reallocation is not Free

When people talk about moving work around, they often speak as if capacity were liquid. It is not. Capacity does not slide from one priority to another without loss. Every shift has a restart cost: context reload, broken sequencing, half-finished work, re-briefing, new coordination, and delayed follow-through on the work that was already in motion.

That is why “just switch to this” is usually more expensive than it sounds. Work already underway becomes slower, messier, and harder to finish well. In practice, many roadmap changes do not only fund the new item. They also waste part of the capacity that had already been invested elsewhere.

In carpentry, timber had to be moved. Measurements had to be rechecked. Tools had to be adjusted. Software has its own version of the same friction. The more often capacity is reallocated midstream, the less of it remains for actual delivery.

In Consequence

Just like the carpenter’s saw, capacity is a physical limit, not a theoretical backdrop. Work has to arrive in a shape that can be sized, discussed, and displaced. Team time has to be allocated deliberately, not discovered afterwards through escalation and drift.

That is the difference between a plan and a wish. A real plan says what will happen, what will not, and why. Anything less is paperwork pretending to be planning.