Sometimes also called the "Waterfall Model", this development process:
follows a set of steps in a specific order
allows iteration
If a development team choose to make use of an iterative methodology, they will repeat stages like design, implementation and testing regularly.
Iteration can take place:
between stages
within stages
We spend a lot of time collecting the complete requirements. Then working out the main steps to then refine these down into smaller problems. Only then designing and coding a piece of software.
The Agile model is a further evolution of the software development process.
The main difference is in the amount of client/developer interaction. And that the requirements are constantly being gathered in Agile development as opposed to the traditional method of gathering them all at the beginning.
Features:
have a strong emphasis on communication and team work
draw on some principles of rapid application development, namely prototyping and regular communication with the client
have a strong emphasis on leadership and project management within the software development team
have face-to-face communication as a key principle
Agile methods draw on the waterfall method in relation to sprints. A sprint is a planned delivery schedule for an aspect of the system.
Within a sprint the principles of analysis, design, implementation and testing are used.
Prototyping is also likely, particularly during the early phase of a sprint.
Sprints are carried out for each area of development.
Rather than following a rigid set of steps for the development of the entire system, several steps are repeated in one sprint and then carried out again in the next sprint.
Client is heavily involved at the start and end points of development.
They will sign off the specification.
Specification is fixed for the remainder of the project
At the end of development they will evaluate that it is fit for purpose and meets the specification.
This feedback can then be used redesign any aspects not met (very time heavy).
Client is involved throughout the entire process.
They will give feedback on each prototype as it is produced to meet requirements at that stage.
Feedback is acted upon at that stage to improve the software
Goals can be changed throughout the project.
Independent specialist teams work in isolation on each phase of the project
Teams consisting of a range of specialists collaborate and communicate.
Comprehensive documentation produced throughout the project.
Concise documentation kept to a minimum.
Progress measured against milestones set out during analysis.
Progress measured by work completed in each sprint, or by time taken to produce prototypes or working components.
Predictive methodology - the analysis phase used to predict the development pathway.
Adaptive methodology - allows for ongoing changes to be made as the project requires.
Testing is carried out when the implementation phase of the project is complete.
Ongoing testing - carried out during each development sprint.