Comparative Analysis between Agile and Waterfall Methodology

Comparative Analysis between Agile and Waterfall Methodology

What is Waterfall Methodology?

  • Waterfall project management methodology was first introduced in 1970, in an article written by Winston W. Royce.
  • It is a sequential development process that flows like a waterfall through all phases of the SDLC.
  • The stages of the Waterfall model are:?

  1. Requirement Analysis and Definition
  2. System & Software Design
  3. Implementation & Unit Testing
  4. Integration & System Testing
  5. Operations & Maintenance?

Waterfall_Methodology

Pros of Traditional/ Waterfall Methodology:

  • Plan/ process driven (build around the paradigm of the process).
  • A well-defined methodology that has been used in every business vertical.
  • Provides a detailed definition of the deliverables, timelines, and milestones from the beginning.
  • Reduces the amount of time developers spend interacting with stakeholders.
  • Team deliverable is predictable.
  • All works are understood before execution.
  • Given a well-defined set of inputs, the same outputs are generated every time.
  • Follow the predefined steps to get known results.

Cons of Traditional/ Waterfall Methodology:

  • Any changes in the requirements are costly.
  • Rigid requirements definitions inhibit creativity.
  • Requirements can be misinterpreted because the developers interact less with stakeholders.
  • Excessive documentation is required to create detailed definitions of the deliverables, timelines, and milestones prior to the beginning of the project.


By the mid-1990s, the Waterfall approach has shown itself to be complex and obligated to cause application delivery lag. On February 11-13, 2001 a group of 17 similar experts met at Snowbird Ski Resort in Utah. The aftereffect of the 3-day brainstorming session was the "Manifesto for Agile Software Development".


12 Principles of “Agile Manifesto”:

  1. Our highest priority is to satisfy the customer through the 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 for a 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 maximizing the amount of work not done--is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.????

(Quoted from the Manifesto for Agile Software Development, https://agilemanifesto.org)


What is Agile?

  • Agile is an iterative software development methodology that delivers software frequently with faster feedback cycles and?the ability to create and respond to change swiftly.
  • In short, it’s a framework for a product or project's iterative and incremental delivery.
  • Agile is based on the values and principles expressed in the?Agile Manifesto and the?12 principles behind it.
  • Agile is:

  1. Doing important things first – It respects urgency.
  2. About People, Values, Principles & Practices.
  3. Focused on Team Communication.
  4. Regularly delivering value through working software.

Agile_Methodology

Pros of Agile Methodology:

  • Iterative + Incremental + Adaptive.
  • Change driven (build around the paradigm of change/ adaption).
  • Priorities and requirements can be easily adjusted throughout the project.
  • The team is empowered to make decisions, define deliverables and milestones, and take responsibility for the delivery.
  • Time to market is significantly decreased.
  • More opportunity for creativity.

Cons of Agile Methodology:

  • Processes are imperfectly defined.
  • Deliverables, timelines, and milestones are less predictable.
  • Stakeholders need to invest a lot of time throughout the project.
  • Documentation is not created, which could be a problem for regulated industries.
  • Since the requirements change all the time, re-work will be inevitable.?

要查看或添加评论,请登录

社区洞察

其他会员也浏览了