Workshop Diary is an ongoing series about how internal tools actually get built — out of ideas, mistakes and iteration. Part 2.
Not all four tools in this series started from nothing. The project management tool — I call it the Situation Board here — began with a colleague who had already built something genuinely clever: a tool that managed an equipment delivery project’s schedules, stage gates, document deliveries and cost tracking. A single-user tool, one Excel workbook per project.
I took over its development. And here is the first honest confession: reading another person’s code is humbling. Every line is an answer to a question you were not there to hear. Why this intermediate step? Why this special case? I quickly learned that “this is odd” usually means “I don’t yet understand what problem this solves”.
Another person’s code is a letter that was never written to you.
The core of the architecture — and its limit
The original solution was elegant: the workbook was loaded into memory, the logic ran, and saving wrote everything back to Excel. No database server, no installations, no maintenance. For one user, perfect.
But there were three of us, and the projects were shared. A file per project meant the situational picture always lived somewhere else — on someone’s machine, in someone’s email, in someone’s head. The big architectural decision came down to one sentence: one shared database file on the network drive that everyone looks at.
Why not a “proper” server?
Someone will ask: why not a database server — surely that would be the orthodox choice? Because a server is a commitment. It needs a machine that is always on, someone who updates it, and a permission someone has to grant. A file on a network drive needs none of these — and it travels along in the backups like everything else on the drive. I chose the most boring technology that met the requirements, and that choice proved right again and again.
Concurrent use over a network share brought its own, deeply unglamorous problems — locks, timeouts, race conditions. More on those in part 6. Next week, though, we dive into the archive: what happens when a company realises nobody can find anything.