Software that stays inside the browser can make a lot of convenient assumptions. It can assume things respond quickly, fail clearly, and behave the same way tomorrow. Software that talks to physical equipment cannot assume any of those.
Devices fail in ways APIs do not
- Powered off, or powered on but not ready
- Responding slowly rather than failing
- Returning a result for the previous operation
- Physically disconnected and reconnected mid-session
- Firmware updated overnight with slightly different behaviour
Each of these needs an explicit decision about what the system does. The default of "retry and hope" produces duplicate records — a printer that printed but did not acknowledge, an analyser result attributed to the wrong sample.
Manufacturer SDKs are the real interface
Working against a manufacturer SDK is a different discipline from consuming a web API. Documentation is often thin, behaviour is discovered empirically, and the abstraction leaks. It takes time that estimates routinely underestimate, and it is not work that can be parallelised by adding people.
Our practical rule is that device integration is scheduled as core engineering work with its own risk allowance, never as a task at the end of the plan.
The environment is not a data centre
Queue displays sit in public spaces. Ticket printers run out of paper. Imaging equipment is on a hospital network with its own constraints. The software has to be operable by whoever is physically present, which usually means someone with no technical background and no time.
If recovering from a device fault requires an engineer to attend, the design has already failed.
Why we do it anyway
Because the alternative is a person transcribing. Wherever equipment output is manually re-entered into a system — a laboratory result, an imaging study reference, a measurement — that transcription is the highest-risk operation in the entire process, and it is completely avoidable.
Device integration is unglamorous, slow, and difficult to estimate. It is also the point where software stops being an administrative layer and starts genuinely removing work.