Agile vs. Waterfall Development Process

Embed Size (px)

Citation preview

  • 8/8/2019 Agile vs. Waterfall Development Process

    1/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:

    y Continuous delivery and feedback cycles

    y Changing requirements are welcomey Early testing and continuous integrationy Customer collaboration and acceptance of each feature as its developed

    Some of the disadvantages are:

    y Death marches to meet iteration commitmentsy Lack of automated testing means that potentially shippable could translate into potentially a

    big buggy mess

    y Cowboy codingy No documentation whatsoevery Youll get it when you get it. the Teamy Youre self-organizingyou 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

    a sequential manner. For example, one first completes requirements specification, which after sign-off isconsidered "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 followthis 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.

  • 8/8/2019 Agile vs. Waterfall Development Process

    2/3

    Agile vs. Waterfall Development Process

    Adrien Abbasi

    Some of the advantages are:

    y Sets expectations up front for cost, scheduley Requirements must be validated and exit criteria must be met before proceeding to next phasey Customer can focus on other things in the meantimey Measure twice, cut once means less potential for rework

    Some of the disadvantages are:

    y Oversights and flawed design dont become apparent until the endy Testing at the end introduces more risky The basic framework described in the waterfall model is risky and invites failurey Just document a work-around. Im already on another project and dont have time to fix this.

    the Developers

    y This is what I asked for, but its 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 structuredapproach, 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

    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 rigiddevelopment 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.

  • 8/8/2019 Agile vs. Waterfall Development Process

    3/3

    Agile vs. Waterfall Development Process

    Adrien Abbasi

    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.