When it comes to properly mapping out your new website project, it’s essential to choose a project methodology that fits the bill within your development process, sort of like the one we have here at MVMG. In this article we will discuss the waterfall vs agile methodology in website development and how you can properly incorporate these methods whether you’re tackling a brand new client project, or creating a website for your business. All too often teams adopt one way of doing things and carry it throughout all of their projects until the end of time. Don’t make that mistake! So sit back, relax, and learn how you can benefit from these great frameworks to build the best websites possible!
What is development methodology?
Let’s have a quick history lesson here! Between the 1950s to the early 1990s when computer technology was accelerating faster than any other industry in human history, we had to develop practices to handle the development of custom software for said technology. The earliest methodologies can be traced back to the late 1950s where we first see the usage of incremental and iterative practices.
Fast forwarding to the early 1990s, computer technology has advanced incredibly. Everything was smaller, faster, and more advanced. One thing that hasn’t changed much was our methods of developing software… until now. Lightweight software development methods were introduced such as rapid application development and Scrum. This was the beginning of agile development as we know it.
Comparing both Waterfall and Agile Methods
The two most popular methods in web development today are the Waterfall method, or “traditional” method, and the Agile method, also known as “growth driven design”. It’s worth mentioning that although these two approaches are vastly different, they all share one simple foundation: organizing and managing your project workload. Let’s explain each one in detail:
Waterfall Methodology
The Waterfall method is a very linear approach to development, not to mention tried and true! To put it simply, there are multiple stages and each stage is completed before the next, usually with approvals in between each one of those stages. Below is an example of a sequence of stages you could expect using this method:
- Gathering information: This includes documentation, requirements from the client, and other information that would be needed to get the gist of the project.
- Wireframing: Also known as the mock-up or design stage. Here is where you would visually create the interface. This is great because it not only shows the client how they can expect the final product to look, but it also encourages feedback and is very easy to incorporate revisions at this point.
- Development: This involves the coding process, going through code reviews with your team members, and testing your code until your final product is solid.
- Bug Fixes: I’m one that firmly believes that bug fixes deserve their very own stage. There are always bugs and it’s best to dedicate a window of testing your product during alpha or beta testing to discover these. Once every nook and cranny of your project has been looked over and you’re confident, you can move on to the next stage which is…
- Delivery: Congratulations, you have successfully followed the waterfall sequence accordingly and are ready to deliver your final product with confidence.
Agile Methodology
Agile development is the new kid on the block. Not only is it hip and cool, but it’s extremely effective. Agile, or growth driven design, is a team based approach which emphasizes on rapid delivery of an application in a series of functional components. In other words, you’re delivering the application as quickly as possible in a simple, but functional form and adding new features over time during regularly scheduled updates.
The agile method doesn’t rely on simply scheduling and creating tasks. That isn’t good enough. What we have instead is something called Sprints.
Sprints are essentially phases of the entire process which are groups of time that contain the deliverables for that sprint. These deliverables are based on priority and are usually set in place by the client. As each sprint is completed, the client can review with the team and after approval, move onto the next sprint.
As you can probably see here, the agile methodology really makes the client the center focus. They heavily influence and have a great involvement in the project from start to finish.
Which method is right for your website project?
Here at MVMG, we love both methods for our web projects. Each one has their place in the sun and depending on the project we face, we incorporate both quite often. When choosing which method is right for you, there are a few things to consider:
- What is the overall availability for the client? Do they have lots of time to dedicate to the project, or not so much at all? Clients come in all forms, and some would be a great fit for agile, others would work better with waterfall.
- Take a look at the project scope. Does your client prefer to have everything laid out in advance and written in stone? Or do they welcome changes as they are needed?
- What does the feature prioritization look like? Do they not have an order of importance and just want the entire project over and done with as agreed upon? Or do they have a set group of features that take priority that should be out as soon as possible?
- How is the funding? Some clients are on a fixed budget and there is very little to no wiggle room. Others may be more flexible with their funds and have the ability to take advantage of the longer duration the agile method offers.
Waterfall vs Agile: A Recap!
In this article, we covered a brief history of where development methodologies came from and focused on the two most popular in web development today: the waterfall methodology, and the agile methodology. These two frameworks will handle 99% of any web project you come across and will help you do the most important thing: delivering an awesome, solid product that you and your client can appreciate!
Questions, comments, or just want to know more? Comment below and let’s talk!