Thirteen Systems Have My Name On Them

by Serguey Shinder

In 2011 I worked on one application. I could hold it in my head on the walk to the office, and when something broke I usually knew where before I opened anything. Last month I went through the ownership spreadsheet and counted thirteen services listed against my name. I visit most of them two or three times a year.

I sat with the list one afternoon and sorted it honestly. Four of the thirteen I understand in the sense I would have meant by that word in 2011. Six I could work on safely after a day of reading. Three I would be guessing, and I know this because in May I opened one of those three to change how a currency was formatted. The change took forty minutes. Establishing whether it was safe took two days. I got it wrong anyway, because a report elsewhere parsed the formatted string rather than the underlying number, and nothing in the service I was editing had any way of telling me that.

Nobody planned this. Services became cheap to create, almost nothing is ever switched off, teams shrink and reform around whatever the year demands, and ownership spreads out behind them like a tide going out. I do not think that reverses. My honest expectation for the next decade is that the number of systems each of us is responsible for keeps rising, and that the amount any of us can genuinely hold in mind stays exactly where it has always been.

The instinctive answer is more documentation, and we tried that, and it decayed in the usual way because it is written by the person who understands, in the vocabulary of the week they understood it.

What we do now is different in a way that took me a while to accept. We judge a system by how long it takes a competent stranger to make a safe change in it, and we measure that rather than imagining it. A new joiner is handed a genuinely small change in a service nobody expects them to know, and we time it and, more usefully, we watch where they get stuck. The stuck points are the design defects, and they are never the ones we would have guessed. And we reduce the count. Last year we deleted two services and merged three others, which felt like walking backwards and is the only intervention that has actually helped.

The question I ask about my own code has changed shape. It used to be whether I understand this, which is a fact about my past. It is now how long it would take me to be safe here, which is the only one of the two that predicts anything at all. I build for the visitor who arrives twice a year and has forgotten everything, because within about eighteen months that visitor is me.

– Serguey Asael Shinder

Leave a Reply