Is Agile or Waterfall the best?
The answer is not binary!
About this White Paper
This paper examines two popular approaches for the
management of software development and asks the
question; “Is there a third way?”
Author
Roger Fance
Principal Consultant
UXC Consulting
History and Characteristics of the Waterfall Model ... 2
History and Characteristics of Agile Software Development ... 3
Advantages and disadvantages of Waterfall and Agile ... 4
Other approaches ... 5
Conclusion ... 5
Is AgIle or WAterfAll the best?
1
exeCuTIve summAry
This paper compares and contrasts two different and popular approaches for managing software development; Waterfall and Agile. People are often polarised in their views about the benefits and limitations of these approaches. In this paper, we look at the history and characteristics of Waterfall and Agile, compare their advantages and disadvantages and pose the question; is there a third way?
2
Figure 1: An example of a Waterfall software process model
InTroduCTIon
All too often in life, people form a strong view on a subject, heavily invest energy and emotion, take up cudgels and fight to the death, sometimes literally, to defend their position or impose their opinion. Reason, logic, facts, situation or circumstance are ineffective at deflecting those from their cause. Religion, politics and “tribalism” are frequently at the forefront of these behaviours. There are countless examples where people hold passionate, faith-based or intransigent views to the detriment of finding creative, practical, quick and cost-effective solutions to specific problems.
Interestingly, we often find evangelistic fervour when it comes to supporting Waterfall or Agile software development methodologies and their associated project management techniques. For some, the Waterfall Model is old-fashioned, inflexible or unrealistic. For others, Agile practices are a passing fad encouraging ill-disciplined cowboys to develop software in an uncontrolled and unaccountable environment.
So, what exactly are these approaches? Why are views so polarised? Are there only two, mutually exclusive choices? Before we answer these questions, let’s have a look at the history of Waterfall and Agile.
HIsTory And CHArACTerIsTICs of THe WATerfAll model
The Waterfall Model was first described in a paper in 1970 by Winston R. Royce, a Lockheed aeronautical engineer. His paper, “Managing the Development of Large Software Systems”, described a stepwise approach starting with system requirements and moving through the phases of software requirements, analysis, program design, coding, testing and operations. These phases have been reordered, renamed and refined over the years, although the basic concept remains the same. Whilst believing in the concept, Royce recognised that the approach was risky and invited failure. He advocated techniques to reduce risk including iterations (a feature of Agile!) between adjoining phases, high-level upfront design before detailed requirements were complete and very detailed and enforced documentation along all steps in the process.
We often find
evangelistic fervour
when it comes to
supporting Waterfall
or Agile
Is AgIle or WAterfAll the best?
3
Through misinterpretation, this model which came to be known as Waterfall due to the illustrations in the paper that showed steps down through the phases was taken up the US Department of Defence in its standard STD 2167 and later the Europeans. Before long, it became the defacto software development standard. A project management body of knowledge, such as PMBOK® and a project management methodology such as PRINCE2® explicitly follow a phased/staged approach and therefore closely support the Waterfall model.
HIsTory And CHArACTerIsTICs of AgIle sofTWAre
develoPmenT
Agile software development has a surprisingly long history too, dating back as far as 1957, even though there is a lingering perception by many that it is new thinking to address the perceived shortcomings of traditional practices. A number of different “agile” practices initially inspired from a variety of sources, including notably, lean manufacturing at Toyota in the 1990s,
coalesced into the Agile Manifesto in 2001 when a group of software developers came together to discuss lightweight development methods such as Scrum, Extreme Programming and Feature Driven Development which had also evolved throughout the 1990s.
The Agile Manifesto describes four themes and twelve underlying principles for software development. Working software, adaptability to change, personal interactions and collaboration are more highly valued than prescriptive processes, documentation, contracts, tools or plans. Incremental delivery of the highest business value first or reduction of the highest risk as quickly as possible through iterative development of software are at the foundation of the Agile concept.
Twelve principles of Agile software development described in the Agile manifesto
1 Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
2 Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage. 3 Deliver working software frequently, from a couple of weeks to a couple of
months, with a preference to the shorter timescale.
4 Business people and developers must work together daily throughout the project.
5 Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6 The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7 Working software is the primary measure of progress.
8 Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9 Continuous attention to technical excellence and good design enhances agility.
10 Simplicity – the art of maximising the amount of work not done – is essential.
Through
misinterpretation,
this model came
to be known as
Waterfall due to the
illustrations in the
paper that showed
steps down through
the phases
4
Agile acknowledges
requirements
uncertainty or rapidly
changing market
conditions by working
in short iterations to
deliver incremental
business value
11 The best architectures, requirements, and designs emerge from self-organising teams.
12 At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
In 2004, the Agile Manifesto was supported by the Declaration of
Interdependence due to growing recognition that there was also a need for a broader statement addressing project management and general leadership. The statement, empathetic to the principles and practices behind Agile thinking, focused on value, customers, individuals, teams, uncertainty and context.
AdvAnTAges And dIsAdvAnTAges of WATerfAll
And AgIle
so, what are the benefits and limitations of each approach?
Well, waterfall is easy to understand and communicate to a range of stakeholders. There is natural appeal in its simple, linear, structured
approach which usually combines formal phase gating; preventing the project progressing until key stakeholders are satisfied the previous phase has been properly completed. Greater time spent in requirements and design is seen to reduce later coding and testing costs. Waterfall planning is predictive and can therefore inform the development of longer term business plans and road maps, although longer time frames also engender greater uncertainty. Waterfall is perceived to be more disciplined than Agile, but this is highly contentious as Agile enforces more discipline than is immediately obvious. On the downside, Waterfall is a less adaptable to changing business
requirements which occur when, at the outset, business people do not know exactly what they need or a changing market compels a change of direction. There is also greater emphasis and effort devoted to following prescriptive process or transient project control documentation which contributes little or no value to the required business goals.
Agile acknowledges requirements uncertainty or rapidly changing market conditions by working in short iterations to deliver incremental business value. Each iteration includes planning, requirements analysis, design, coding, unit testing and acceptance testing to deliver production-ready code representing a sub-set of the overall solution. This is facilitated by small, cross-functional teams that combine the complementary skills and experience of business and IT people. These teams are self-disciplined and self-organised although they take their business priority direction from the key business stakeholder. Project Managers often take on the role of servant-leaders, facilitating information exchange, protecting the team from interference and removing progress blockers rather than directing the team.
Agile has its weaknesses too. There is a heavy reliance on close business involvement, ideally on a daily basis. This places a great burden on business people who have to also juggle their daily operational responsibilities. Teams are more efficient if they are small, co-located and have the right physical working environment which is often hard to achieve in large, geographically-separated organisations. It can be a lot harder to scale up and control Agile teams for larger software development efforts or to integrate them with other areas of a business that do not operate using these techniques. Agile is not very effective in integration projects or particularly valuable where
Is AgIle or WAterfAll the best?
5
Figure 2: An example of an Agile software development approach using the Scrum methodology
It is important to be
agile and not just do
Agile
It is important to be agile and not just do Agile. In other words, the chosen Agile methodology should not be adhered to rigidly if circumstances demand change. Individuals, teams and organisations should be flexible enough to modify their approach to suit changing conditions. In the world of Agile, this principle is known as Inspect and Adapt.
oTHer APProACHes
In recent years, work has been done to combine the best of predictive and phased approaches with adaptive and iterative approaches forming hybrid methodologies such as the Rational Unified Process (RUP) or the lightweight Agile Unified Process (AUP). More detailed examination of these methods will form the basis of a future White Paper.
Applying these methodologies or adapting in-house development methodologies and project management practices to the business circumstances are the third way. The answer to the question “Is Agile or Waterfall the best” is not binary!
ConClusIon
There are a number of approaches for managing software development; two of these have been examined in this Paper. Company culture, individual personalities, the nature of the project and a range of other factors should be taken into account when choosing a software development and associated project management method. Pragmatism should always trump idealism in the pursuit of delivering real business value.
6
AbouT THe AuTHor
roger fance is a Principal Consultant at uxC Consulting.
He has 28 years international experience in Professional Services, Financial Services, Government, Telco and ICT Vendors working on both business and IT programmes and projects using a range of different approaches and methodologies.
As a Certified ScrumMaster, PRINCE2® Practitioner, MSP® Advanced
Practitioner and holding a Diploma of Project Management, he also heads the UXC Consulting Agile Centre of Excellence which supports clients and staff with Agile knowledge and training resources.
PrINCe2® is a registered trade mark of the Cabinet office.
Adelaide office
Level 12, 45 Grenfell Street Adelaide SA 5000
Phone: +61 8 8231 6999
melbourne office
Level 15, 575 Bourke Street Melbourne VIC 3000 Phone: +61 3 8623 1300
malaysian office
Level 20 Menara Standard Chartered No. 30 Jalan Sultan Ismail
50250 Kuala Lumpur Phone: +60 3 2117 5197
brisbane office
Level 5, 196 Wharf Street Spring Hill QLD 4000 Phone: +61 7 3831 2933
Perth office
Level 2, 30 Richardson Street West Perth WA 6005
Phone: +61 8 9321 3166
singapore office
Penthouse Level Suntec Tower Three 8 Temasek Boulevard Singapore 038988 Phone: +65 6866 3632 Canberra office 4a Whyalla Street Fyshwick ACT 2609 Phone: +61 2 6222 6500 sydney office
Level 4, 31 Market Street Sydney NSW 2000 Phone: +61 2 8297 4600
local decision making, national capabilities and global best practice allows uxC Consulting to be flexible in its approach; be relevant to your needs; and
provide highly skilled advisors to deliver best practice service outcomes.
World class brands coming together: gQ-AAs | lucid It | opticon | Planpower
www.uxcconsulting.com.au 1300 678 426 [email protected] @uxCConsulting www.linkedin.com/company/uxc-consulting Version 1.0