All notes

Migration, backup, shift start: operations are part of the product

A close that only works in the demo will not hold on the floor. The shared clock and the ability to repeat the close belong in the application.

In many projects operations come afterwards. Screens first, then a backup at some point, a migration at some point, and eventually the question why shift start differs on every machine. In container-glass production that is not aftercare. The day has a clock. Stock has a file. The close must be repeatable if someone presses the same control again at six.

Shift start as a shared instant sounds small. It is not. Without it one station writes to yesterday, another to today, the log to a third variant. Alarms, tickets and handover then refer to different days while everyone stands in the same room. The clock belongs in the system, not in the browser’s local timezone and not in a form field someone set once.

The same holds for the day close. A CSV export is not a close. A close is a state: which batches hold, where the silo stands, what handover the next shift will find. If that state only appears under lab conditions because three fields happened to be filled, it is worthless on the floor. You must be able to produce the same close the next day, with the same rules.

Migrations are the quiet part. A recipe version, a booking type, a new field on the silo: that changes what was already booked yesterday. A migration that rewrites old batches softens history. A migration that applies forwards and leaves the past alone keeps the day explainable. It is slower to write. It saves the night in which nobody can say which figure belongs to the furnace.

Backup is related. A SQLite file that carries stock is not an accessory. It is the stock. If you do not back it up regularly and in a way you can check, you have tied operations to one machine’s disk. Restore has to be practised, not only documented. A restart at shift start is the test, not a restore on Sunday afternoon.

For technical decision-makers: put migration, backup and the shared clock into the product scope before the first screen is locked. What is bolted on later sits beside the flow and will be bypassed when it matters.