Development Methodologies Summarised
The Waterfall Model is the oldest and probably most commonly
understood development methodology. The phases within this model
are variously described, but fundamentally follow a progression of
separate, consecutive phases:
- Requirements
- Design
- Coding and implementation
- Test
- Use
The main criticisim of this model is that it is not iterative
or, in other words, each phase is conducted only once per component
with feedback only to the preceeding step. In practical terms it
means that there is no means of managing change to the requirements
within the model itself. It also requires a highly disciplined
approach to each phase, as a mistake or oversight in an early phase
is usually costly to correct in a later phase. To mitigate these
risks it is common to follow arelease early, release
often approach to build confidence within the team and
with the client.
The General V Model is a derivative of the waterfall model, but
with project definition phases in the left arm and the relative
equivalent test phases opposite in the right arm and coding forming
the apex of the V.
Business
requirements
Operation & maintenance
System
requirements
System testing
Technical
Design
Unit testing
Coding and implementation
Spiral Model
The Spiral Model was intended for is in large, complex projects
where iterations were greater than six months in duration. The
steps can be generalised as:
- Define system requirements by interviewing a representation of
all users
- A preliminary design is created for the new system. This phase
is the most important part of "Spiral Model". In this phase all
possible (and available) alternatives which can help in developing
a cost effective project are analyzed and strategies to use them
are decided. This phase has been added specially in order to
identify and resolve all the possible risks in the project
development. If risks indicate any kind of uncertainty in
requirements, prototyping may be used to proceed with the available
data and find out possible solution in order to deal with the
potential changes in the requirements.
- A prototype is created. This is usually a scaled down
approximation of the final product.
- A second prototype is evolved by a four step process:
- evaluate strengths and weaknesses of the first prototype
- define the requirements of the second prototype
- planning and design
- construction and testing
Agile
The Agile Manifesto (2001) reads as follows:
We are uncovering better ways of developing software by doing it
and helping others do it. Through this work we have come to
value:
- Individuals and interactions over
processes and tools
- Working software over comprehensive
documentation
- Customer collaboration over contract
negotiation
- Responding to change over following a
plan
That is, while there is value in the items on the right, we
value the items on the left more.