By Rajiv Ramnath

To understand how to design processes, you must understand design stages for iOS apps. Software development steps are ordered in time by stages, starting from a stage of little understanding and moving to stages of progressively increased knowledge and predictability, with the activities starting with the sponsors or the visionaries and moving to the development team and then to the customer. There are four stages:

  • Inception: The inception stage is where things are being figured out — an approximate vision; a business case; scope; a high-level, potential architecture; and high-level estimates of efforts and cost. You might do some domain and problem analysis here.

  • Elaboration: This is the stage where you refine the vision, validate the core architecture, and resolve risks. In fact, you might say that elaboration is all about the resolution of the risks. This is where most of the requirements identification is done and (with hope) realistic project management estimates are created.

    User demos intended to better understand requirements may also done here. The core architecture is designed here — that is, the elements that have to work. Design and implementation of the critical features are done here.

  • Construction: The stage where you iteratively implement any remaining features and prepare for deployment. The construction stage is where the tasks are steadily adding more and more features. Plenty of detailed OO design, implementation, and testing takes place here.

    After elaboration is done, you have a good idea about how much the software will cost to build and how it will work. You can then proceed to more or less repeatable, cookie-cutter tasks that take place in the construction stage. Object-oriented activities take place in detailed problem and solution analysis and in the OO design and implementation of the core features.

  • Transition: This is the stage where you deploy a finished released. Here, the software is turned over to users. Incidentally, you might also beta test a system in this stage. Activities from the deployment, testing, and maintenance phases take place here.

    A chart of all the departments and activities involved in the development of an app.

Note that project management cuts across all the stages.

You might think that activities from most phases are done in most of the stages. You would be right; however, the degree or the proportion of time consumed in a stage by activities of a phase is different.

Inception is heavy on analysis and somewhat on requirements, with only a little bit of prototype implementation thrown in. Elaboration is heavy on solution analysis, architecture, design, implementation, and testing. Construction is heavy on implementation and testing, whereas transition focuses on deployment and maintenance.