I try to empathize with the users and define the problem at this stage. This is a key step that helps me to deep dive and understand the underlying business requirements. Some of the tools I use at this stage are as follows:
Prototypes are generated to convert ideas into concrete examples. Depending on the project timeline, various levels of prototypes are made. These prototypes goes through couple of iterations with the stakeholders to ensure all the requirements are captured. Some of the key processes and deliverables are:
Before I start actual coding, I prefer to get all the user/job stories defined into small tasks to estimate the time and effort required to achieve the prototyped solution. Once the stories and their priorities are in place, the next step I take is to discuss the API spec and JSON structure with the respective backend developers. Agile methodology is opted in most of the projects I work with. This step results in the following out comes:
Support and maintenance is an on going process to every project. There can be many instances where the stakeholders change their mind once they actually start using the service, this leads to further customizations and enhancements.