II. CHARACTERISTICS OF AGILE AND WATERFALL
PROJECTS
A. Waterfall, or Plan-based projects
The traditional (i.e. old) software development model
follows a modified version of the waterfall development
model, which has its origins in the manufacturing and
construction industries. In the classic waterfall model, each
process phase (requirements, design, implementation,
verification and maintenance) flows sequentially and
cascades downward to the next phase. Unlike manufacturing
projects, the typical software project does not have sufficient
requirements specified early on in the project to follow this
model. As a result, the requirements phase not only takes
longer than expected, but it also is typically rushed to an
early, unfinished end, which then negatively impacts the
remainder of the project.
73560678
With a Plan-Based Method, the focus is on the plan: the
deliverables, the dates and the end date. The main problem
with a plan-based project schedule is that it does not handle
variables and contingency well. Unfortunately, variability is
at the heart of almost every software project. Therefore,
issues often arise in the requirements phase, then that triggers
problems in the design phase, which then result in conflicts
and defects in the implementation phase. The schedule slips,
confidence lowers, moral suffers and the project becomes a
death march [7] . There are obvious flaws in using a planbased
schedule for most software development, and yet the
practice continues [1], [8].
B. The Agile Software Development Process
Agile development methods differ from plan-based
development methods in one fundamental way: whereas
plan-based methods make the plan itself central figure, agile
methods focus on the customer. Introduced in 2001, the
Manifesto for Agile Software Development [4] has the
following values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The authors note that while there is value in the items on
the right, they value the items on the left more.
As shown in Figure 2.2, Agile Software Development
includes the notion of iterative cycles, where all of the
phases are interconnected, each phase being a feedback
mechanism for the others [9]. Essentially, it is accepted that
no phase is ever finished; all phases keep evolving. This is
in stark contrast to the plan-based schedule, which assumes
that each phase reaches a logical conclusion before the next