Professional Documents
Culture Documents
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.
Lack of automated testing means that “potentially shippable ”could translate into “potentially a
big buggy mess”
Cowboy coding
No documentation whatsoever
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.
Requirements must be validated and exit criteria must be met before proceeding to next phase
Oversights and flawed design don’t become apparent until the end
“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 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.
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.