Many tasks must be completed in an application development project before you start writing code. The first task is to gather the business and technical requirements. In agile methodologies this consists of a high-level project overview that helps you define the application's size and scope. Agile methodologies steer away from the concept of a big up-front design and just seek to get the broad picture. Detailed design is deferred until the user story or feature is scheduled.
After the high-level requirements have been gathered, a target environment must be defined. This environment will help shape the type of application you develop and can help drive out many of the nonfunctional technical requirements. After this environment has been defined, the various application technologies must be selected.
The business requirements are used to create the user stories, which define where the application's business value comes from. User stories should be technology-agnostic and testable. Otherwise, the requirements might be bent to fit the technology, which is the opposite of what your goal should be. These user stories are broken into features that are added to a product backlog and assigned to developers during development project iterations.
When you develop an application using an agile process, your iterations should be short and end with a deliverable to the business. Make sure that the business understands that this is not a complete system, and get feedback on what has been ...