Your organization is going into a big software development project. The development work you’re doing is crucial to your company’s mission. Maybe you’re doing mobile application development for your customers to use or maybe you’re developing custom software that will be used internally.
Whatever your software development project is, you now have an important question to answer: How do you manage the development process? Do you use a traditional software development method like Waterfall or do you use Agile methodology?
This is where a standard blog post about software development methodologies would list the pros and cons of each before ultimately making a strong case for Agile. This post won’t do that. Instead we’re going to suggest that your project will probably use a little bit of both Waterfall and Agile.
Why? Because when it comes to Agile and Waterfall in real life, most organizations don’t choose one or the other. Instead, software development methodologies are more of a spectrum, with Agile on one side and Waterfall on the other.
So where are you on the project management spectrum? To figure it out, you need to understand both Agile and Waterfall, as well as how they are being used together.
What is Waterfall methodology?
Waterfall is the traditional method of designing and building software — it’s been around since the 1950s. However, if you base your assumptions about Waterfall on what you read online, you might think it’s on the decline. After all, Stack Overflow’s 2018 developer survey found that 86 percent of their respondents use Agile at work, while a Hewlett Packard report called Agile “the new normal.”
That’s not entirely the case. Contemporary versions of Waterfall are often used by large companies. Big organizations like hospitals or manufacturers often use Waterfall project management because it’s able to bring together multiple groups to work on a big project. Your team might be vast but they’re not exclusive to your project — they come in and do their work and then leave, as needed. And many Waterfall projects use some aspect of Agile methodology — the pure, old-fashioned Waterfall project management of the ‘90s has gone the way of the dinosaurs.
Waterfall methodology is a linear, sequential approach to software development. It’s called “Waterfall” because the process flows in just one direction, through clearly-defined phases: requirements, design, implementation, verification and maintenance, for example.
Waterfall projects tend to take a longer period of time — you might spend two months setting up your team and documentations, fighting for resources that will be available for the next six months, your communication processes and your what-if scenarios. And once the Waterfall gets stared, it goes through a rigid set of steps.
What is Agile methodology?
Agile methodology, as its name suggests, encourages a quick and adaptable approach to changes or problems during the software development process. It was first laid out in a 68-word manifesto in 2001 by a group of developers who called themselves the Agile Alliance. You can read their 12 underlying principles here. There are also several methodologies that fall under the Agile umbrella.
Simply put, Agile is an approach to software development that values adaptive planning, iteration, continuous improvement and collaboration between developers, clients and ideally the end user of a project. It’s an ideal approach for a small organization or for an organization that can allocate a small group of people — eight or fewer — to work on a self-contained team and focus on one project which is not limited to software design. Last year, for example, Omni completely rebuilt its website using an Agile approach. The great thing about Agile is that if a problem arises, the team can shift directions, reprioritize and leap into action, hence the name.
Photo by Lennart kcotsttiw from Pexels
Here’s the thing about Agile though — you almost never see a true Agile team in the wild. A pure Agile team is a beautiful, mythical creature: a self-governing team, focused only on producing the best work possible, unencumbered by a budget or a deadline, or interference from people outside the team. They focus on their work in two-week sprints, pushing out regular updates — which have been developed, tested, and pushed to production — quickly and cleanly. Then they move on to the next priority.
But that’s not how life works. There’s always a budget. There’s always a schedule. Most Agile development projects use the elements of Agile methodology that work for them and incorporate elements of traditional software development.... and that’s as it should be.
Where do you fall on the software development spectrum?
Where you are on the Waterfall-to-Agile range will depend on your specific circumstances. To determine exactly how much of each approach you’ll need, you should consider the following:
- Your project
- Your team
- Your organization
Your project: Do you have a project that lends itself to one approach or the other? If it’s a giant project that needs to be released all at once after a year of work, you probably want to lean towards Waterfall. If it can be done a little at a time, you’ll lean more towards Agile.
Your team: Do you have a small group of people who can be permanently organized into an Agile team and assigned to your project? If so, go Agile. If you need to pull together a big team, you’re going to tend more toward Waterfall.
Your organization: Got a small to mid-sized company running on lean methodology? If you need to produce a minimum viable product (MVP) and release updates quickly, you’re going to lean towards Agile. If you’re part of a huge organization and your project needs input from several teams or departments, you’ll be more on the Waterfall end of the spectrum.
In any case, you’ll probably be pulling a little from each method, depending on what works for you.
Still need some help with project management?
Still not sure how much of each method you need? It may be time to call in an expert.
Omni is a Wisconsin-based technology consulting company with experience in project management — both traditional and Agile. Our IT consultants can take a look at your project, give you advice on how to manage it and help you set up a custom software development process that will get your project developed and out the door.
Still wondering if Agile or Waterfall is right for your next IT project? Watch our on-demand webinar on Agile vs. Waterfall to find out.
Ready to find out where you are on the Agile-Waterfall Spectrum?