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?

physical-worldfailure-modeshuman-factorsdegradationlogistics
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.