David Birnie

03shipped7 min

Go watch the thing before you design it

The lesson

The spec I needed was never written down. It was in the room.

The brief for SB Gaming was one sentence. Make a digital online bingo game that works with our hall. That was the whole thing. No spec, no team, no second developer, and a shutdown running in the background.

I could have started building from what I assumed bingo was. Everybody knows bingo. That assumption is exactly the trap.

So I went and watched

I sat with how a session actually runs. The caller. The programs. The patterns. The prize claims. The phone-in calls. Six commercial card sets that all have to validate correctly, live, on stream. The intermission, which matters more than it sounds like it should, because a hall is a room full of people rather than a queue of users.

Nobody writes down the parts everyone already knows. Those are the parts that break the build.

That gave me the product. A caller console for sessions, programs, patterns, prizes and jackpots. Flashboard, prize board and intermission timer as separate windows so OBS could capture them live. Server-side validation resolved while the stream is running. And the operational workflow around all of it, because software that ignores how the hall actually works is just a nice demo.

The part I'd redo

I built the flashboard first, because it was the visible thing. The call system is what the whole product hangs on, and it ended up inheriting constraints from a display layer that should have been downstream of it.

Visible is not the same as foundational. I know that now because I got it backwards once and paid for it in refactors.

In production since 2021. Three halls, every session. The one sentence turned out to be enough, but only because I stopped treating it as the spec.

  • Business