by Serguey Shinder
We had a reporting problem in 2018 that needed a real decision, and a meeting in the diary to make it. On the Saturday before, because I wanted to and because it was more enjoyable than arguing, I built a working version. A small service, a few screens, real data in it. By the Sunday night it did the thing.
I opened the meeting by demonstrating it for six minutes.
Nobody spoke against it. We shipped it, roughly as it stood, six weeks later, and I remember thinking the meeting had gone well because it had been so short.
Two people had come with something else. One had a page of notes proposing we extend the scheduler we already ran rather than stand up anything new. He mentioned it, briefly, after the demonstration, in the tone of a man who knows the room has moved. The other said nothing at all and told me about it eighteen months afterwards. I had not asked either of them a single question.
That service ran for two years. Its own scheduling, its own deployment, its own alerting that nobody but me understood, and a database connection that was wrong in a way I had not noticed on the Saturday and woke people up four times. We replaced it in 2020 with three jobs in the existing scheduler, which is approximately what the page of notes had proposed, and the replacement took one engineer a fortnight.
What I got wrong was not the design. Designs are wrong all the time and it is survivable. What I got wrong was arriving with the only object in the room that anybody could touch. A working version is not a proposal. It is an established fact that other people are then invited to attack, and there is no fair way to do that, because the alternatives exist only as sentences and cannot be demonstrated in a meeting by somebody who has had no weekend to build theirs. Speaking against it makes you the person delaying something that already works.
I did not know I was doing it. The weekend was partly a way of winning without having to be persuasive, which I would have denied at the time with complete sincerity.
So there are two rules I keep now. For a decision with genuine alternatives, I arrive with the constraints written down and nothing built, and the first person to speak is somebody other than me. And when I have built something anyway, which happens, I say so before I show it, and I state in advance what I would need to see to throw it away, because that is the only sentence that reopens a room.
Turning up with something that works does not win the argument. It prevents it, and you find out what it cost you about two years later.
– Serguey Asael Shinder
Leave a Reply