← Ayo Osunjuyigbe

· Building

I called it standards. I was the bottleneck.

For a long time, nothing went out unless I had looked at it.

A pull request sat until I opened it. A sentence on a page waited until I rewrote it. Someone asked if they could change a default, then waited until I answered. I said I was keeping the standard. What I was really doing was keeping control. I did not trust a decision I had not made.

I thought that was how you run a serious product. In practice, it meant the team moved at the speed of my inbox.

What I was actually reviewing

Some of that review was real. If money leaves the product, if a user cannot undo the click, if a bad change can empty an account — that should not be one person merging at midnight. That is a real standard. You can write it down. Someone else can apply it.

Most of what I sat on was not that.

It was the heading. The order of two buttons. Whether the confirmation said “done” or “complete.” None of that needed me. It needed someone who would still be there on Tuesday if the wording was wrong.

I reviewed those the same way I reviewed a change that moved money. Same thread. Same delay. So the money change waited behind the heading. The important work did not get a better review. It just went out later.

The first page I did not own

I picked one page and gave it to someone else. I wrote down what they could not break: the action that moved money, and the states a user had to see if it failed. The rest was theirs — copy, layout, when to ship a fix.

The first week they shipped a success screen I would not have written. A few people finished the action and were not sure they were done. Support got the same question twice.

I wanted the page back. I did not take it.

We changed the sentence. We added one line that said what had happened and what to do next. The page stayed theirs.

People still finished the path. The product did not fall over because the wording was not mine. It was unclear for two days, then it was clear, and I had not been in the middle.

The quieter damage had been happening before that. Work piled up behind me. People stopped deciding. They drafted, and waited.

What I do now

A few rules can block a merge. Money out. Anything a user cannot undo. Anything that can empty an account. If I cannot say why this needs my yes, it does not need my yes.

Everything else has a person on it. I can read it after it ships. I do not get to hold it because I would have picked a different word.

I still care how it reads. Caring is not the same as being the only person allowed to ship.

If your team is waiting on you before they can ship, you are not maintaining quality. You are the bottleneck.