advanced
2 min answer
A logistics platform's software is correct and the operation still fails regularly. What failure modes does software architecture usually ignore?
Show the full answer Hide the answer
The failures that are not software failures
- Sensors lie. GPS drifts in urban canyons, scanners misread, temperature sensors fail toward plausible values. Sensor input is untrusted input and needs validation, plausibility checks and cross-referencing — a reading that is well-formed and wrong is far more damaging than one that is missing.
- Humans deviate from the process because the process does not fit reality: the barcode is damaged, the address is wrong, the recipient is absent. A system with no path for the real situation gets worked around, and the workaround becomes invisible to the platform.
- The physical world is not transactional. A package physically handed over cannot be rolled back because the transaction failed. Software state must be reconcilable with physical state, not authoritative over it.
- Connectivity fails exactly where the work happens — basements, warehouses, rural routes.
- Devices are dropped, run out of battery, and are shared between people.
What the architecture must do
- Degrade to a usable mode rather than blocking. If the system cannot verify something, the work still has to happen — capture what is known, mark it provisional, reconcile later.
- Record what was observed separately from what was concluded, so a later correction does not destroy the evidence.
- Make exceptions first-class. Every real operation has a long tail of unusual cases, and a system handling only the happy path pushes all of them into phone calls and spreadsheets where the platform cannot see them.
- Reconcile continuously against physical checks, since drift between recorded and actual state is guaranteed rather than exceptional.
- Design for the worst realistic conditions, not the demo ones — a cracked screen, one hand free, bright sunlight, a poor network, and time pressure.
The framing
The software is a model of the operation, and the model is always somewhat wrong. Systems that assume their state is the truth fail in the physical world; systems designed to detect and reconcile divergence survive it.