The development of quality software applications is not attainable without the development process model. A process model guides the project procedures and activities and represents the lifespan of a project. It ensures that the application meets the customer’s requirements and that its development adheres to budget and time schedule. Several process models have developed over the last twenty-plus years. Historically, some process models are static and others do not allow checkpoints. Two process models, the waterfall model and the spiral model, offer different approaches to the project life cycle.
The waterfall model is one of the most commonly known development process models. This model runs on the presumption a series of tasks can be compressed in a single stage and that each stage flows logically to the next stage. In this model one stage must be finished before moving on to the next stage. Project milestones are used as transition and assessment points of each stage. Each following stage could require modifications to only the preceding stage in the model. Therefore, developers don’t have to go back several stages. If modification is required, the stage has not been officially completed. The modifications must be done and the project milestone met before the stage is officially recognized as completed. Stages of the waterfall model include:
- System feasibility
- Software plans and requirements
- Product design
- Detailed design
- Code Integration Implementation
- Operations and maintenance
This model is optimal for projects where the requirements can be clearly outlined and are not likely to be changed in the future. Benefits of the waterfall model are it establishes a fixed order and is easily documented. However, it’s not practical for more complex projects.
The spiral model is based on the ongoing need to refine the requirements and estimates for a project. This model is useful for rapid application development of small projects. Each stage of the model opens with design goals and is completed after client review. This affords a collaborative approach and fosters synergy between the development team and the client because the client has direct input in all stages by providing feedback and approval. Each stage also requires a risk assessment where estimated costs to complete the project are discussed, and schedules are revised. At this point decisions can be made about moving forward or aborting the project. The spiral model does not incorporate clear checkpoints which may create confusion during the process.