Вы находитесь на странице: 1из 9


Differences between Waterfall and Agile Methodologies

Charchit Piya

Regis University


Agile and Waterfall are two of the most prominent software development methodologies that are

widely used in the software industry in the current world. Waterfall methodology is traditional

approach of software development. It is non iterative and its process are well documented. Agile

is comparatively a newer approach to the Waterfall methodology. Agile has raised the bar for

software delivery with faster delivery of working software, better interaction between software

developers & users and improved customer satisfaction. This article will discuss briefly about

Waterfall and Agile methodologies, key differences, advantages and disadvantages of adapting

such methodologies.


Waterfall methodologies is one of the earliest methodology for software development.

Waterfall is traditional approach is often termed as plan driven methodology due to the

sequential, stable and well documented flow. Agile is comparatively newer methodology for

software delivery that is widely used in current software industry. Agile provides competitive

edge to the traditional waterfall methodology by providing higher customer satisfaction, lower

defect rates, faster product delivery and a solution to continuous requirement changes (Boehm &

Turner, 2004). Both of the methodologies have some advantages and disadvantages depending

on the project structure, group size and organizational configuration. The purpose of this paper

is to discuss about the key differences in practicing Waterfall and Agile methodologies.

Waterfall Methodology

Waterfall method of software development is mainly a linear way of structuring project,

schedule, with plans for risk mitigation, resourcing, budget and various other critical functions

(Grech, 2015). Waterfall model is classic method for software development and it is also

simpler to follow and use. Waterfall model is often terms as linear sequential flow as there is no

overlapping between the phases (“Software Development Life Cycle”, n.d.). The end of one

phase signals the beginning of another phase in Waterfall methodology.

The basic list of the phases that are defined in the waterfall methodology can be defined

as below (Hughey, 2010):

- Requirement Gathering: Requirement gathering is the first stage of the software

development life cycle. Most of the requirement is gathered and mostly finalized at

this stage.

- Design: After reviewing the requirements from business analyst, developer or system

analyst will carefully review and do the analysis. After analysis, system design is

defined in terms of logical and physical sub-phases (Hughey, 2010). Hardware and

software specification are specified in physical design. In logical design phase,

system is designed independently of hardware and software system (Hughey, 2010).

- Implementation: In this phase of the software development, the actual code is written

to create the software application.

- Verification: After the software is implementation, it is often tested by the testers or

users to verify the functionality and check if any issues or problems persists.

- Deployment: After the functional testing and fixing of bugs reported by the testers,

the final software product is delivered and made available to the end users

- Maintenance: Maintenance is often done to fix any issues faced by end users that was

not reported in the testing phase. Many times, some form of patch update is provided

to the software application for any issues reported.

Waterfall methodology is well documented and the final product definition is very stable

(“Software Development Life Cycle”, n.d.). Waterfall model is very structured and strictly

follows the above mentioned phases.

Agile Methodology

In the period of 1990s, Agile methodology was created and also become very popular in

the IT industry that overcome many of the disadvantages with following waterfall methodologies

(Walczak & Kuchta, 2013). Agile methodology was developed to address issues like risk

management, faster delivery of working software and better customer satisfaction. According to

the article “Manifesto for Agile Software Development” (2001), Agile methodology tries to

develop software by giving preference to individuals and interactions over process and tools,

working software over comprehensive documentation, customer collaboration over contract

negotiation and responding to change over following a plan. Agile principles value the items on

the left more than the item on the right.

According to the principle behind the Agile Manifesto (“Manifesto for Agile Software

Development”, 2001), the highest priority of Agile methodology is to satisfy customer which can

be done by early, continuous delivery of working software and also welcoming last minute

change requirements. This helps to make the developmental method very competitive. Agile

model requires developers and business people or end users to work together throughout the

project. The primary measure of success in this methodology is working software. Agile

promotes more sustainable development as it requires active participation from different roles

such as users, developers, testers and project manager. In this methodology, at regular intervals,

team reflects on how to become more effective and adjusts accordingly (“Manifesto for Agile

Software Development”, 2001).

Evaluation of Waterfall and Agile Methodologies

Similarities between both methodologies. Traditional Waterfall methodology and

newer Agile methodology share the same goal of delivering the final product with similar

process such as define, gather, analyze, design, code, test, release, maintain (Palmquist, Lapham,

Miller, Chick, & Ozkaya, 2013). Traditional Waterfall method requires to work out completely

before beginning the project, implement multiple reviews, has sequential manner, move forward

once the previous phase is complete and has extensive documentation. Since both of the

principles has same values, Agile model also uses similar sort of principles are parallel but just in

a slightly different manner (Palmquist et al., 2013). Agile world also shares same building plan

compared to the Waterfall approach such as scope, cost and schedule.

Differences between both methodologies. The key differences between Plan

Driven/Waterfall and Agile methodologies can be discussed under following characteristics

(Boehm & Turner, 2004):

- Application Characteristics: Agile methodology primary application characteristics

is to provide rapid value and responsiveness to the changes. Plan driven

methodologies primary goals are predictability, stability, and high assurance. For high

assurance and safety critical projects following a documented set of plans is the key

way to follow as per the Waterfall methodology. Agile works best on smaller projects

or with small to medium teams of people working on relatively small applications.

Waterfall methods work best with large complex projects and teams with larger team

members. Agile is better suited with high-change and turbulent environments

(Boehm & Turner, 2004). Waterfall is better applicable when requirements are

largely determinable in advance and are relatively stable.

- Management Characteristics: Agile methodology rely heavily on dedicated,

collocated team members that helps to keep the project focused in order to add rapid

value to the organization. The main agile stress point is the interface between the

customer representative & the users and for Waterfall stress point is the interface

between the developer and the customer (Boehm & Turner, 2004). Working software

is the key to build customer trust in Agile methodology but for Waterfall, it is

dependent on established process maturity. Agile is more planning driven than the

plan driven (Boehm & Turner, 2004).

- Technical Characteristics: Agile methodologies use informal, user-prioritized stories

as requirements with rapid iteration cycles (Boehm & Turner, 2004). Rapid iterations

also help to determine required changes and fix them quickly. Plan driven

methodology prefer specific, formalized requirements (Boehm & Turner, 2004).

Prioritization has not been widely used in plan driven approaches. Plan driven

methods handle nonfunctional requirements better.

- Personnel Characteristics: Agile methodology strongly emphasize on having

dedicated and collocated customer representatives, while Waterfall/Plan-driven

methods count on a good deal of upfront customer-developer work on contractual

plans and specifications (Boehm & Turner, 2004). Plan driven methods also need

Collaborative, Representative, Authorized, Committed and Knowledgeable

customers. Plan driven methods need fewer highly talented people than agile. Agile

methods have more degree of freedom and Waterfall method driven people need clear

process and roles.


Agile methodology includes group of iterative and incremental methods that are

more effective. Lei Ganjeizadeh, Jayachandran, & Ozcan (2015) analysis on effects

of Scrum and Kanban on software development projects had found that Agile

development tools such as Scrum and Kanban lead to development of successful

projects. Waterfall methodology assumes that the team has nearly every information

on the project to be developed and this sometimes leads to a serious drawback on


following Waterfall model. In waterfall methodology, change in requirements is not

recommended as many times it might take a larger effort to make a simple change. In

Waterfall methodology, users with different roles such as developers and

system/business analyst assuming to have every information on system requirement

and having last minute change in requirement might turn in a bad end user experience

and sometimes might lead a project to fail. Agile outshines Waterfall in this key area.

In the article “5 steps to Agile Project Success” by Tilk (2016), it recommends few

adjustments to dynamic, fast paced Agile software development that are get involved

early, understand the processes, assess risk & control, know how agile teams define

done, assemble the right skills and establish reporting parameters & provide real-time



Based on the analysis of several research articles, Agile is better suited for

medium to small sized team with comparatively smaller project whereas Waterfall

model is better for larger teams and larger projects. Waterfall method is very

structured and sequential, each of the phases needs to get completed before

proceeding to the next phase. Waterfall model requires more effort in requirement

gathering and analysis but the requirements of the Waterfall methodology is

comparatively very stable. Agile tries to overcome the issues with the traditional

Waterfall method by giving priority to individuals and interactions over processes and

tools, working software over comprehensive documentation, customer collaboration

over contract negotiation, responding to change over following a plan.



Boehm, B. W., & Turner, R. (2004). Balancing agility and discipline: A guide for the perplexed.

Boston: Addison-Wesley.

Grech, T. (2015). The intersection of agile and waterfall. Industrial Engineer: IE, 47(8), 47-49

Hughey, D. (2009). The Traditional Waterfall Approach. Retrieved October 30, 2016, from


Lei, H., Ganjeizadeh, F., Jayachandran, P. K., & Ozcan, P. (2015). A statistical analysis of the

effects of Scrum and Kanban on software development projects. Robotics & Computer-

Integrated Manufacturing, 4359-67. doi:10.1016/j.rcim.2015.12.001

Manifesto for Agile Software Development. (2001). Retrieved October 30, 2016, from


Palmquist, M. S., Lapham, M. A., Miller, S., Chick, T., & Ozkaya, I. (2013). Parallel worlds:

Agile and waterfall differences and similarities (No. CMU/SEI-2013-TN-021).


Software Development Life Cycle (SDLC). (n.d.). Retrieved October 30, 2016, from


Tilk, D. (2016). 5 steps to Agile Project Success. Internal Auditor, 73(2), 57-61.



Research & Decisions, 23(4), 75-95. doi:10.5277/ord130406