When the Floor Rejects the Software
The dock does not read your architecture diagram. It optimises for throughput, and it will route around anything that slows it down.
Every warehouse system is designed twice. Once in a room with a whiteboard, and once again on the floor at six in the morning, by people who have ninety seconds per pallet and no patience for your onboarding flow.
The first design always looks better. The second one is the only one that ships.
The room and the dock
In the room, you optimise for correctness. Every field is validated, every state transition is explicit, every exception has a screen. The system is auditable, which is a word that sounds like a virtue until you watch someone try to use it with gloves on.
On the dock, the operator optimises for one thing: not stopping. A scanner that takes eleven seconds to accept a barcode is not a scanner. It is a queue. And a queue at the inbound gate does not stay a queue for long — it becomes a truck that leaves, a supplier who calls your founder, and a night shift that stays until ten.
The floor does not care what the software knows. It cares what the software costs in seconds.
That is the whole argument, and everything below is detail.
The four enemies
None of them appear in a design review. All of them decide whether the system is used.
Battery. A handheld is a phone with a worse battery and a harder life. If the device dies at hour six, the operator does not charge it and wait. They switch to paper, and paper wins the rest of the shift. Any design that assumes a charged device at all times is a design that assumes a shift ends early.
Hands. Gloves, dust, tape, a box cutter in the other hand. Targets sized for a thumb on a sofa are not targets. The tap has to survive a person who is not looking at the screen.
Light. A dock door opens and the screen becomes a mirror. Contrast ratios chosen on a calibrated monitor mean nothing against noon.
Network. Steel racks, basement storage, a dead zone behind the freezer. If the system requires a round trip to confirm a scan, the system is down whenever the signal is.
Each of these is a hardware problem that becomes a software requirement. And each of them is invisible in a demo, because demos happen in the room.
Workarounds are requirements
The floor never files a bug. It invents a workaround, and the workaround is the most honest product feedback you will ever receive.
A sticky note taped over part of the screen means: this part is noise.
A second, unofficial spreadsheet that everyone trusts more than the system means: your reconciliation is not believed.
A "super user" who everyone asks instead of the software means: your interface is a person now.
The instinct is to treat these as compliance problems. They are not. They are the organisation telling you, in the only language it has, exactly where the system fails the work.
What survives contact
Four things, in my experience, and none of them are features.
Fewer steps, always. The winning change is almost never a better screen. It is deleting a screen. One scan instead of three taps. A default instead of a choice. The floor rewards subtraction and punishes configuration.
Offline as the default state. Not "offline mode" — offline as the assumption, with sync as the exception handler. A device that works in a basement and reconciles later is trusted. A device that needs a signal is a rumour.
Recovery over prevention. Preventing every error produces a system that stops to ask questions. On a dock, stopping is the error. Let the wrong scan happen, make it one tap to undo, and keep the line moving.
Physical feedback. A beep, a buzz, a green light. Something the operator perceives without looking. Every glance at a screen is a second not spent moving a box.
The floor is the spec
The uncomfortable conclusion is that warehouse software is not really an information product. It is a timing product. Its job is to keep a physical process inside its takt time, and every byte of interface it adds has to pay for itself in seconds saved.
This is why so much elegant enterprise software dies on contact. It was designed to be understood. It needed to be survived.
I have never seen a system succeed because it was well architected. I have seen several succeed because a person with wet hands, in the dark, at the end of a twelve-hour shift, could use it without thinking.
Design for that person. They are the only user who matters, and they will never tell you what they think — they will just stop using it.
Written by Tanutejas Saraswat. Co-founder and CEO of ShopKirana, acquired by udaan in 2025.
Next The Credit Trap in Tier-2 Retail