HomeWriting

How to find the real constraint in a software team

7 min read
BottlenecksTechnical Leadership

Short answer

Start from outcomes that hurt: late rework, production surprises, slipping commitments. Walk backward through architecture, workflow, and ownership until one constraint explains most of the drag. Verify by asking what would change if you could only fix one thing next week.

The constraint is rarely the biggest ticket in the tracker. It is the place where work queues, where decisions stall, or where each change touches more surface area than the team can reason about before ship.

Start from pain that has a cost

Pick incidents that hit revenue, compliance, or customer trust. Pick rework that repeats across squads. Those trails age better than internal debates about priority.

Walk upstream one layer at a time

Ask what had to be true for this failure mode to exist: boundary design, test seams, who signs off at seams between product and ops, what was assumed in API contracts, how releases decide risk. Document the chain in plain language so leaders can see the same picture.

Name one constraint you could test

If you cannot state the constraint in one sentence, keep tracing. When you can, design the smallest change that would loosen it without widening blast radius. That is your next decision, not the next feature.

FAQ

Do you need full architecture documentation first?
No. You need enough of the path to explain repeated failure. Depth follows the trail of rework.
What if every area looks broken?
Rank by commercial or regulatory exposure and repeatability. Fix the class of failures that will come back if you ignore them.

If your team is stuck, send me the messy version.

If something here sounds familiar, tell me what's unstable.