A field officer has an Android phone three generations old, a data bundle they pay for themselves, and intermittent coverage. Any system that assumes otherwise will be used once.
Offline first, genuinely
Not a cache that degrades politely, but a local store that is the primary store, with synchronisation as a background concern. The officer completes the day's work with no connection at all and the data reconciles when the phone next finds signal.
That choice forces an early decision about conflict resolution, which is the part teams usually defer. Two officers editing the same record offline is not an edge case here; it is Tuesday. Deciding the rule up front, in the open, with the client, is far cheaper than discovering it in production.
Payload discipline
Every request costs the user money. We budget bytes the way a desktop team budgets milliseconds: lean payloads, aggressive compression, images sized for the screen that will show them, and no analytics chatter.
Power
Servers in the region need to tolerate interruption without corrupting state, and client applications need to survive the phone dying mid-operation. Both are ordinary engineering, and both get skipped when the architecture was drawn somewhere with reliable mains.
The device estate that exists
Procurement documents describe a fleet of current devices. The actual estate is heterogeneous, old, and shared between people. Testing on the oldest device anybody actually holds is more informative than testing on the newest one the budget could buy.