Software advice usually comes from companies that sell software. So it is a little humbling that some of the clearest lessons I have had came from a very different place: a potato cold storage in Bangladesh, and the job of turning its paper records into a working system.
A cold storage looks simple from the outside. Farmers bring in sacks, the sacks stay cold for months, and the sacks go back out. Then you try to write it down properly, and you discover how much a real business keeps in people’s heads.
Never overwrite the truth
My first instinct as a builder was the obvious one. A pocket holds a number of sacks, so store the number, and change it when something moves.
It is the wrong model. If a number is simply overwritten, nobody can later ask why it says what it says. So the system keeps a ledger instead. Every movement of stock is an entry that is never edited. The current count is what the entries add up to. If someone makes a mistake, the correction becomes another entry, and the mistake stays visible.
Accountants have worked this way for centuries. It took a shed full of potatoes for me to really understand why.
An estimate is not a measurement
Sacks are often reckoned at a standard reference weight, because weighing every one is not always practical. That is a perfectly reasonable shortcut, and a dangerous one if the system forgets it is a shortcut.
So the software treats them as different kinds of fact. An estimated weight can never quietly pass itself off as an actual one. Money depends on the difference, and so does trust. I now look for this everywhere: the places where a guess has been stored in the same column as a fact.
A system earns trust less from what it knows than from being honest about what it does not.
Say what you do not know
When we brought in the old paper records, some rows did not make sense. It would have been easy to tidy them up with a sensible guess so that the reports looked complete.
We did not. Unclear rows were marked for someone to check against the paper, and where a season’s records were missing, the system says the balance is unknown rather than showing a confident wrong number. A blank that admits it is a blank does less harm than a tidy lie, especially when a person’s stock and money are involved.
Respect the language of the work
The people using this system think in Bangla, and they use the terms of their trade rather than the terms a dictionary would offer. Translating a screen word by word produces something technically correct that nobody recognises.
The screens also had to suit the person standing in front of the stack. A storekeeper wants the pocket number and the free space, large and immediate, and not much else. A design that looks clean on my laptop can be useless on a phone in a cold, busy hall.
What I took away
None of this is really about potatoes. It applies to any system that people have to trust: keep the history, separate what you measured from what you assumed, admit what you do not know, and speak the language of the person doing the work.
I went in to teach a business about software. It was mostly the other way around.
Photo: Mihail Verbal, CC BY 4.0, via Wikimedia Commons. A local market, not the storage described here.

No comments yet. Be the first to share a thought.