Process Is a Tool, Not a Virtue – Puppies, Flowers, Rainbows and Kittens
Skip to content
Tokyo, Japan – Photo by Kevin Goldsmith – December 2025
Process is one of those topics that reliably creates tension in growing engineering organizations. Too little of it and everything feels chaotic. Too much of it and nothing moves. Most teams I work with aren’t confused about whether process matters. They’re struggling with when to add it, how much to add, and how to tell when it’s gone too far.
Process is almost always introduced as a solution to a problem. What’s less obvious is that process also creates its own problems. Every new rule, gate, or ceremony adds coordination overhead. Sometimes that overhead is worth it. Sometimes it quietly becomes the thing slowing you down.
The hard part isn’t deciding whether you need a new process. It’s understanding what problem you’re actually trying to solve.
Why Process Exists (and Why It Backfires)
At its core, process exists to solve coordination problems.
When there’s too little process, you see the same patterns repeat:
Teams duplicate work.
Ownership is unclear.
Quality varies wildly.
Decisions get revisited because there’s no shared understanding.
Production systems break in ways no one anticipated.
In small teams, this can be survivable. People talk. They improvise. They find and fix problems quickly. But as the organization grows, informal coordination stops scaling. You can’t rely on hallway conversations once dozens of teams are working in parallel.
That’s where process starts to help.
The failure mode comes when a process is copied wholesale from larger organizations or added reflexively in response to a single incident. What speeds up a 10,000-person company will slow a 500-person company to a crawl, and it can completely stall a 100-person startup.
A process that doesn’t match your size, culture, or problems doesn’t just fail to help; it actually harms. It actively makes things worse.
The Real Question Leaders Should Ask
The question isn’t “Do we need more process?”
The real question is: What coordination problem are we trying to solve, and what is the lightest-weight way to solve it?
Leaders tend to get this wrong in two predictable ways.
Some avoid adding process entirely, trying to preserve a sense of scrappiness long after the organization has outgrown it. Things that used to work stop working, but no one wants to acknowledge that the context has changed.
Others swing too far in the opposite direction, importing big-company processes because “that’s how it’s done at scale.” The result is unnecessary gates, approvals, and bottlenecks that strip teams of autonomy without actually improving outcomes.
Both paths lead to frustration, just for different reasons.
Process Is a Choice About Autonomy
Every process decision is a decision about autonomy.
Good processes increase autonomy by clarifying boundaries, reducing surprises, and preventing rework. Bad processes reduce autonomy by adding gatekeepers, slowing decision-making, and centralizing control.
A simple test helps here: Does this process let teams move faster, or does it make them wait on someone else?
Code review is a good example. Lightweight reviews prevent production issues and enable teams to move faster with confidence. Mandatory review meetings that require everyone to wait for a calendar slot are a very different thing. Same intent. Very different outcome.
A Simple Process Evolution Cycle
Over time, I’ve found it helpful to think about process in three phases.
First: chaos signals.
You don’t add process because it feels right. You add it because you’re seeing repeated friction—across teams, not just in one place. Rework, unclear ownership, inconsistent quality, inter-team conflict, and recurring bottlenecks are all signals worth paying attention to.
Be careful here. A disagreement between two people is not a process problem. Solving a people issue with an organization-wide process is one of the fastest ways to create unnecessary drag. Similarly, repeated friction between the same two teams may be more indicative of an organizational structure issue rather than a lack of process.
Second: deliberate addition.
Add the minimum process required to solve the specific coordination problem you’ve identified. Design it to enable autonomy, not replace it. And treat it as an experiment, not a permanent fixture.
Every bit of process takes away some autonomy by design. The goal is to take away as little as possible while still solving the problem.
Feel free to learn from other companies’ processes, but ensure the components you implement are scaled to your organization’s size and the problem you are trying to address, and aligned with your culture.
Third: monitoring and pruning.
Process ages. What helped at 50 people often slows you down at 200. What worked at 200 creates friction at 500.
If you aren’t actively removing processes, you’re accumulating them. Regular...