Agile Vs Waterfall Debate
Agile Vs Waterfall Debate
Agile Vs Waterfall Debate
2
the needs of the users. We have all seen developers who can cobble together a system very quickly
where the bug list seems to go on forever.
The summary of all of this is that to simply say that an agile approach will work and a waterfall
ĂƉƉƌŽĂĐŚǁŽŶ͛ƚǁŽƌŬŽƌ vice-‐versa is just not true. We can all find examples of success and failures.
The key itself is to recognize the strengths and weaknesses of an approach on an individual project
and choose the right approach for the given project.
However, we should also recognize that there is a considerable amount of value in a lot of the
principles that an agile approach brings (we cover this in more detail later). Indeed, whilst some
Agile evangelists (or indeed some Waterfall evangelists) might not want to admit to this, it is clearly
the case that a lot of the principles behind an agile approach have come from the experience of
successful waterfall projects.
For example, one of the key principles of an agile approach is to create automated tests to check the
functionality of the code. On many waterfall projects, we have all experienced problems when the
lengthy, large-‐scale testing that is needed identifies a number of bugs. We then pass the results back
to the development team who fix them and, given we are all human, introduce a few more. We then
go through another lengthy testing phase and so on. Successful waterfall projects often create
automated unit tests so that we can quickly and repeatedly check that code works and that we
hĂǀĞŶ͛ƚďƌŽŬĞŶŝƚǁŚĞŶǁĞĐŚĂŶŐĞŝƚ͘
Whilst there are a number of subtly different methodologies that fall under the Agile banner, the
Agile Alliance identified four key principles that underpin all agile projects. It is perhaps easy to look
at these and draw the conclusion that Agile is a high risk, uncontrolled, informal methodology but
this is not the case. Under each of the key principles, we have set out how these principles are
applied on successful agile projects in the real world. We go into this in more detail when we
describe our agile approach.
3
will have in excess of 7 years development experience and are normally accredited Microsoft
designers and developers. All of our consultants who work on an agile project have strong
communication and analysis skills. Whilst it is sometimes possible for developers to work without
having much interaction with the key users, it is common sense that a greater level of understanding
will be obtained if the developer interacts directly with the user.
However (and this is often ignored by people who wish to disprove the viability of an agile
approach), all Agile methodologies (whether they be SCRUM, Test Driven Development, XP etc)
make use of processes and tools to help ensure the success of a project. The key difference between
processes on a waterfall project and an agile project is that the processes on an agile project are
totally geared towards helping the project members deliver the solution ʹ i.e. to help good people
build a good system. On a waterfall project there is a stronger emphasis on using processes to better
manage and understand the status of a project ʹ i.e. not all of the processes actual help the team
create a good system.
4
DB Consulting
Thames Court
1 Victoria Street
Windsor
SL4 1YB
T: +44 (0)1753 626625
E: [email protected]
www.dbconsulting.co.uk
5