You are on page 1of 3

Agile vs.

Waterfall Development Process


Adrien Abbasi

Description 1
Agile methods break tasks into small increments with minimal planning, and do not directly involve long-
term planning. Iterations are short time frames that typically last from one to four weeks. Each iteration
involves a team working through a full software development cycle including planning, requirements
analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to
stakeholders. This minimizes overall risk and allows the project to adapt to changes quickly.
Stakeholders produce documentation as required. Iteration may not add enough functionality to
warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of
each iteration. Multiple iterations may be required to release a product or new features.

Some of the advantages are:

 Continuous delivery and feedback cycles

 Changing requirements are welcome

 Early testing and continuous integration

 Customer collaboration and acceptance of each feature as it’s developed

Some of the disadvantages are:

 Death marches to meet iteration commitments

 Lack of automated testing means that “potentially shippable ”could translate into “potentially a
big buggy mess”

 Cowboy coding

 No documentation whatsoever

 You’ll get it when you get it. – the Team

 You’re self-organizing—you figure it out.”–the Project Manager

The waterfall model is a sequential design process, often used in software development processes, in
which progress is seen as flowing steadily downwards (like a waterfall) through the phases of
Conception, Initiation, Analysis, Design, Construction, Testing and Maintenance. The waterfall
development model originates in the manufacturing and construction industries; highly structured
physical environments in which after-the-fact changes are prohibitively costly, if not impossible. Since no
formal software development methodologies existed at the time, this hardware-oriented model was
simply adapted for software development. The waterfall model proceeds from one phase to the next in
Agile vs. Waterfall Development Process
Adrien Abbasi

a sequential manner. For example, one first completes requirements specification, which after sign-off is
considered "set in stone." When requirements are completed, one proceeds to design. The software in
question is designed and a blueprint is drawn for implementers (coders) to follow—this design should be
a plan for implementing the requirements given. When the design is complete, an implementation of
that design is made by coders. Towards the later stages of this implementation phase, separate software
components produced are combined to introduce new functionality and reduced risk through the
removal of errors.

Some of the advantages are:

 Sets expectations up front for cost, schedule

 Requirements must be validated and exit criteria must be met before proceeding to next phase

 Customer can focus on other things in the meantime

 “ Measure twice, cut once ”means less potential for rework

Some of the disadvantages are:

 Oversights and flawed design don’t become apparent until the end

 Testing at the end introduces more risk

 “The basic framework described in the waterfall model is risky and invites failure

 “Just document a work-around. I’m already on another project and don’t have time to fix this.”–
the Developers

 “This is what I asked for, but it’s not really what I want.”–the Customer

Description 2

Waterfall Model Vs Agile Model: Conceptual

Waterfall model of software development, as the name itself signifies, is a sequential process of
software development. Like in a waterfall, the water progressively falls from one altitude to the lower, in
a similar way, the production cycle progresses sequentially, from one stage to the other. The waterfall
model phases of software development are as follows: requirement specification, conception, analysis,
design, coding, testing & debugging, installation and finally maintenance. In this sequentially structured
approach, the development team goes ahead to the next stage of development only after the first is
fully accomplished. Software development companies adopting this model spend considerable amount
of time in each stage of development, till all doubts are cleared and all requirements are met. The belief
Agile vs. Waterfall Development Process
Adrien Abbasi

that drives this kind of software development model is that considerable time spent in initial design
effort corrects bugs in advance. Once the design stage is over, it is implemented exactly in the coding
stage, with no changes later. Often the analysis, design and coding teams are separated and work on
small parts in the whole developmental process. Emphasis is placed on documentation of every stage of
software development.

Compared to the 'set-in-stone' approach of waterfall development models, the agile models, as the title
suggest, focuses on 'agility' and 'adaptability' in development. Instead of one time consuming and rigid
development schedule, agile models involve multiple iterative development schedules that seek to
improve the output with each iteration. Each iteration goes through all the steps of design, coding and
testing. The design is not set in stone and is kept open to last minute changes due to iterative
implementation. The team structure is cross functional, closely knit and self-organizing. The design idea
is never totally frozen or set in stone but is allowed to evolve as new ideas come in with each releases.
Less importance is given to documentation than speed of delivering a working program.

Waterfall Model Vs Agile Model: Efficiency


Agile model is more efficient than the waterfall model, due to its adaptability to the real world. The
“One Phase”' and “Rigid” development cycle makes it difficult to make last minute changes in
requirements or design. While the agile methods, due to their iterative and adaptable nature, can
incorporate changes and release a product in lesser time. Of course, agile models are not perfect either,
but they are certainly more widely applicable than the waterfall model.

Waterfall Model Vs Agile Model: Suitability


The water fall model is suited for development of programs that are already stable. That is, their design
does not need a major makeover. In situations where the designers of software can accurately predict
the flaws that may arise can be developed through a waterfall model. Despite all its flaws, a waterfall
model design is easier to manage and the development costs can be ascertained beforehand.

Agile models are applicable in every area of software development. It depends a lot more on the team
effort of above average programmers, than relying on a few expert programmers. It is best suited for
web based applications where its iterative nature helps in incorporating and correcting the various bugs
that arise over time.

You might also like