The recent N-Gage fiasco of having to re-purchase your games when you upgrade your phone (Nokia are working on a solution) shows how easy it is to miss or trivialise usecases that should have really been in the requirements specification.
Here are some other things that sometimes get overlooked when developing for mobile…
- The user changing their SIM and hence their data connection or telephone number
- What happens when the user is roaming (e.g. high data costs)
- Diagnosing end-user problems via error logs
- Maintaining or deleting data when a new version is installed
- Defining what happens when the phone runs out of memory or storage
- Defining what happens if the application gets interrupted (e.g. incoming SMS or phone call)
- Defining what happens when only part of a multiple-step operation succeeds (e.g. data atomicity)
- Supporting foreign language variants of the phone (particularly different directory names)
- The user reinstalling from memory to memory card
- The user changing their registration details (email, name, address etc)
- The user opting out of a service (e.g. deleting data)
Does your application or service cater for these?