Most of us in the software world remember projects we’ve worked on that went remarkably well, and just as many that missed the mark. It can be difficult to pinpoint what really helped the projects that succeeded and what caused the others to fail. Let’s explore two common development processes, their ideal states, and how I often see them approached in real-world projects.
Waterfall and Agile
Traditionally there’ve been two common approaches to software development, Waterfall and Agile. While they each look to accomplish the same thing, building useful quality software, they both have strengths and weaknesses, although Agile is widely considered the better of the two approaches. As a refresher let’s quickly look at each of them before we investigate a way they are frequently blended together.
Waterfall is a traditional approach (Hughey, 2009) which sets out all the goals, features, and designs of an application right at the beginning. Armed with all this documentation the team builds according to the detailed plan. This approach can be helpful in sticking to a project timeline and budget, but it often brings in a lot of risk by not allowing the team to easily adapt to new information and changes as they arise.
Agile on the other hand is a set of principles (AgileManifesto.org, 2001) about adaptation and collaboration. Instead of flushing out a full set of features and designs right at the beginning, Agile sets out some looser high-level goals and the team goes about designing and building those features as the project is underway. This process then repeats on a regular cadence often in a Scrum framework (Sutherland & Schwaber, 2010) as the project timeline or budget allows and can be very helpful in adapting to needed changes as they come up, however when Agile is used incorrectly, it can often cause the timeline and budget to overrun, especially if a team is inexperienced with Agile, lacks mentorship, or doesn’t start with a clear vision.
A Hybrid Approach
Since there are strengths and weaknesses to both Waterfall and Agile development, teams frequently combine them to make use of both in a hybrid software development approach (Kuhrmann, 2017). They put more time and effort into an initial preparation phase that sets out main goals and light but detailed documentation, followed by a series of repeating Agile-like sprints on a determined timeline.
In the Wild
With a hybrid approach like the one above, many teams are trying to find a middle ground where predictability and adaptability meet. Let’s take a look at what an approach like this might look like in a real world example, below is a framework I recently worked on with a large government organization. These government teams often come from a Waterfall background and are working towards incorporating a more Agile approach.
With the above framework, both design and development work together in two week sprints following a healthy initial discovery and planning phase. Designers work with developers to flush out ideas and mockups one week ahead of development, then turn those new mock-ups into development tasks for the next sprint. This approach follows some of the process outlined in Dual Track Agile (Denham, 2020).
With elements of established software development methods a process like this can work to a team's advantage when planning and executing a project, especially in teams that are familiar with outdated development methods. Realistically there is no perfect system for every project, but with a well-prepared team and with good communication, we can give ourselves the highest chance of success.
If you'd like to talk to us about how we can tailor and approach to deliver a great product and a great experience for your company, please get in touch!
About the author
Nolan Smits is one of our Senior User Experience Consultants in Edmonton, Alberta. He is experienced in most phases of the Software Development Life Cycle, with a background in UI design, front-end development and UX research. Born and raised in Edmonton, Nolan graduated with honors from the Northern Alberta Institute of Technology. When he’s not swimming competitively, he loves being in nature, listening to or playing good music, and spending quality time with friends and family. You can follow him on Linkedin.
About the artist
Gwen Tsui is an Edmonton-based illustrator with a passion for visual storytelling. She is constantly dreaming up different ways to express herself creatively. That’s why if she is not drawing, you will find her crocheting or playing around with calligraphy.
She writes "After reading this article, the idea of the web/software developers’ task board came to mind, as well as the illuminating writing boards. I wanted to capture the idea of the illumination of ideas during the planning stage."
Principles behind the Agile Manifesto
AgileManifesto.org. (2001). Retrieved from Manifesto for Agile Software Development
Dual Track Agile: the secret sauce to outcome-based development
Denham, D. (2020). Retrieved from Dual Track Agile: the secret sauce to outcome-based development
The Traditional Waterfall Approach
Hughey, D. (2009). Retrieved from Comparing Traditional Systems Analysis and Design with Agile Methodologies
Hybrid software and system development in practice: waterfall, scrum, and beyond
Kuhrmann, M. (2017). Retrieved from ACM Digital Library
Sutherland, J., & Schwaber, K. (2010). Retrieved from What is Scrum?