Agile vs. Waterfall: Which approach to take in web development?

One of the biggest concerns of every company on the journey to make a website is to decide on the development methodology to use. Development Methodology is the way of organising the work of software development. On one hand you go the traditional route where everything is laid out for you, or you can go the free way, where you take the iterative approach, a more flexible way to work on a project. One is called the Waterfall method and the other is Agile.

Waterfall method

Waterfall method has been around for a very long time, hence it is the traditional approach to software development. The project is divided into distinct stages and then completed in sequences. The exact number of stages in a Waterfall method may vary from company to company and project to project, but here is the general approach:

  • Conception of project – As the name suggests, this is where the projects baby steps starts. It is where the seed of an idea is germinated, and the first in the Software Development Life Cycle (SDCL).
  • Initiation – Finding the right people to do the job and expanding the project scope, complete with objectives, purpose and delivery date. Analysis – There will be requirement specification document, and feasibility analysis of the project is done.
  • Design – The project assumes a definitive shape through mockups, wireframes and storyboards. Coding – Following the design chart (flowcharts, designs mockups) created in the previous step, the team starts work on the actual app.
  • Testing – A critical stage where all the efforts of the previous stages are tested.
  • Production/Implementation – Once the testing stages are all completed and okayed, the product will enter the market.
  • Maintenance – The development team will perform continuous upgrades and bug fixes of the product. New features are also added to ensure the product remains competitive.

Agile

The Agile method, based on the Agile Manifesto is a more recent form used by developers in their software development cycle. This method focuses on being lean and developing MVPs or Minimum Viable Products over each iterations rather than handling all the planning beforehand.

The Agile Methodology abide by the Agile manifesto established on February 2017, and places great emphasis on team work, continuous iteration, improvement, user feedback and adaptability to client requirements.

In Agile, the different phases of the project development happens in parallel, while a backlog tracks the features and improvements that has been added. Some of the most popular implementations of Agile include Scrum, Kanban, FDD or Feature Driven Development, ASD or Adaptive System Development and XP or Extreme Programming.

Choosing one for your project

Both Waterfall and Agile project development methodologies are viable and would help you build high-quality products. Both are flexible and stable, helping you to be organised while planning a project.

You can use Waterfall when:

The client is not likely to change his requirements during the course of the project. This is thus more suitable for simple projects with predictable outcomes, & for clients who come with defined requirements. The stability feature of Waterfall and the linear and structured development path makes it easier for project development teams.

Agile development follows a more evolutionary style of development.

You can use Agile when:

When the market before you is a bit uncertain, and you have to create a new product quickly, then Agile would be a feasible solution.

Agile would also be a good solution if you cannot afford to make any costly mistakes down the line, and especially if you don’t have a lot of information regarding the project. It would also be good if you cannot afford to have any strict requirements.

If you don’t want to make any changes, especially when the requirements keep changing, would like to reduce costs, fix errors as and when they occur, and do away with uncertainty during the project development cycle, then Agile would be a good choice. This would probably be the reason why startups are so in favour of Agile.

In Agile development, testers and developers work together, and at the end of each intention, the product will be shipped and delivered to the client. The features changed and updated will
start functioning right away.

The differences at a glance:

Waterfall processes are tested after the work is done, mistakes will be difficult to correct.

Agile allows for tons of flexibility, and the constantly changing requirements doesn’t demand precision in record keeping.

However, it is important to move forward with caution, because such projects are likely to flounder. This method is more apt with very experienced developers and a client who has invested enough in the project. Waterfall doesn’t allow for any wiggles, because it moves in a clear cut path with meticulous record keeping. The developers can easily predict how the end product will look like. Once, one step of the project is finished, it is not easy to retrun, and make changes. All the elements of project are in their place, right from project’s size to its timeline and
budget.

Agile moves in an incremental design process that gives plenty of space for improvement. This is because the project is divided into various models which are tested and evaluated extensively.

The process of Waterfall’s linear approach:

  • Collect document requirements
  • Make the design
  • Code & unit test
  • System testing
  • Perform UAT User Acceptance Testing
  • Fix issues
  • Deliver finished product to client
  • Ideal for all sorts of projects

The process of Agile’s sprint approach

  • Incremental approach to software design
  • Product is tested in 2-4 weeks iteration
  • The client gets to see the product & suggest changes
  • Ideal for small projects

Conclusion

Going through both Agile and Waterfall makes it obvious that if you are looking for a project with clear cut goals and definitive progression, Waterfall would be a good choice. Take the Agile path if you want your project to evolve as it moves down the path towards completion. It might even turn out into something more you had planned in the initial stages.

Flikr : //visualpun.ch, mandaruby, Lena Ellis


About the author: Reema works as Thought Leader at PHPBabu.

Share with other PHPBabus and Webexperts!Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
1 Comment
  1. Most people when they think of website development picture the traditional ‘waterfall’ methodology. But waterfall is not the only development process used today. Agile web development has been making inroads to become the most popular methodology.

Leave a Reply