We wrote our own software for a dairy farm

Buying the system was the easy option. It was also the wrong one.

By Sovandarapor (James) Kong · · Ventures

Customers pay in two currencies, sometimes in the same week, at a rate somebody wrote on a whiteboard that morning. Milk leaves the farm before anyone knows how much left. A route driver returns with bottles, some full, some empty, some broken, and the difference between those three categories is money. A supermarket rejects a delivery for a reason nobody records.

No software vendor has ever met those facts. Every consultant who walked through the farm gave the same advice anyway: buy the system, pay the license, let someone else carry the maintenance. It is sensible advice and I ignored it.

Every off-the-shelf system we looked at assumed a business that did not exist here. They assumed the milk was already measured. They assumed the delivery driver had a phone plan. They assumed the person entering the sale and the person counting the stock were two different people who trusted each other. None of that was true on day one.

The choice is to bend the business until it fits the software, or bend the software until it fits the business. Most companies do the first and call it a digital transformation. Then people keep a second set of records in a notebook, because the notebook still works and the system does not. A shadow spreadsheet is a report on the software.

Once our own system was switched on, it started telling us things we would rather not know. The first inventory count produced an argument. The system said one thing, the shelf said another, and both were confidently wrong in different directions. That gap had existed for years. It became visible because something finally wrote it down. People treat that moment as the software failing. The software had finally worked, and what failed was everything the business had been quietly assuming since before it existed.

Everyone wants the dashboard. We built it last, because a dashboard on top of bad data is a machine for making confident mistakes at speed. The order that worked for us:

One. Name things properly. An item code should say what the thing is without opening anything. If a person has to ask which of two similar codes is the 2 litre bottle, that is an hour a week lost, forever.

Two. Make entry faster than the notebook. If entering a sale takes longer than writing it down, the notebook wins and it deserves to.

Three. Show people their own work. The single biggest change in adoption came from a page that showed each person what they had entered that week. It was their page, and people care about their own record.

Four. Only then, the dashboard.

It costs evenings. Owning the system means nobody else carries it. Every process we automate is a process we now maintain. Every report we build becomes a report someone depends on and will call about.

The trade is that the business becomes legible. A question gets an answer the same day instead of the same quarter, in a market where nobody has good data.

The consultants were right that buying it is easier. They were costing the decision over three years, and what we needed was a system that matched a business still changing shape every quarter.