Stay up to date with
news on business
and innovation
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Software Development Methodologies: Waterfall vs. Design Thinking, Lean Startup, and Agile

Maja Nowak
Brand Advocate
Product Design & Development
Productivity

Today’s software development utilizes many methodologies to facilitate building applications and software solutions. We have Waterfall, Agile, Design Thinking, or Lean Startup as well as their combinations and variations. What are the principles of these methodologies? How do they support software development? Let’s explore the differences between the Waterfall methodology and a combined approach that includes Design Thinking, Lean Startup, and Agile.

Waterfall

The Waterfall approach to software development describes a sequential process for building software—i.e., one step has to be completed before the next can begin.

In the Waterfall methodology, the project scope, outcome, and requirements are documented fully before any development begins. The documents, among many other aspects, include functional specifics, user interfaces, architecture, data structure.

The traditional Waterfall project structure is split into six phases:

  1. Requirements and analysis. Collect client requirements pertaining to the product. The information collected during this phase should be enough to validate the product idea and let developers grasp the client’s intended vision of the product. The following is established: budget, risks, completion date, dependencies, and success metrics.
  2. Design. Agree on a programming language, specific design elements, system design. Documents produced during this phase will be the framework for the implementation (coding) phase.
  3. Implementation. Turn client requirements and design documents into the software. 
  4. Testing. Test the software for bugs and check if the goals from the requirements document are met.
  5. Deployment. Release the software to the client.
  6. Maintenance. Fix any problems found once the software has been released to the customers.
waterfall_illustration


Benefits

Drawbacks

Use Cases for Waterfall

Taking into consideration the principles of Waterfall and its resulting pros and cons, this methodology is best for building projects with clear specifications and client requirements. We can think of using Waterfall with projects that are simple, predictable, and well-defined.

For example, the Waterfall approach can be used when adjusting an application to meet specific regulations (e.g., when developing medical systems), or when integrating software with existing infrastructure—e.g., banking systems. In both cases, clear and detailed documentation and specifications are critical to successful project completion.

Here are specific project features that determine if the Waterfall approach is a good fit:

The Need for Different Software Development Methods

The Waterfall methodology has been around for decades, initially serving as an essential and structured approach to software development. In the 1990s, however, the Internet technology began evolving rapidly — the Waterfall approach proved inefficient in the increasingly dynamic and complex environment.

There was a pressing need for software development methods that could address the inefficiencies of Waterfall’s linear approach to building software. As a result of that need and through years of refinement, a combined approach for the entire product development life cycle was created.

The combined approach includes methods and processes that come from different backgrounds to together form a mindset for the adaptive building of products, as opposed to following a rigid project plan.

Below is a brief description of each and a summary of how they complement one another in the software development paradigm.

Design Thinking

Design Thinking is a human-centered approach to ideating products that address and solve real user problems. Design Thinking can be used as a first step in developing products using the combined approach with Design Thinking, Lean Startup, and Agile.

Design Thinking allows for a better and deeper understanding of human needs and problems. The approach helps find out solutions to a variety of customer pain points through qualitative research.

The key objectives of Design Thinking are:

Design Thinking process is based on five stages that can either be followed sequentially or randomly. The goal is to gain a deep understanding of the target audience and all possible solutions to its problems. 

The five core assumptions of Design Thinking:

You can consider Design Thinking as an initial step in software development (either in the Waterfall methodology or the combined approach) where you identify and understand user problems, and only then come up with solutions. Understanding user problems and delivering solutions that address these problems is key to building meaningful and sustainable businesses.

Lean Startup

Lean Startup is a data-based approach to validating product ideas. The Lean Startup methodology is rooted in startup development and aims to decrease risks inherent in creating innovative ventures. The approach can be applied in many different contexts, including software development.

As per the Lean Startup approach, releasing the product as fast as possible is the best way to obtain insight necessary to improve it. The methodology helps validate core assumptions through user feedback loops. In the combined approach, it’s where the solutions from Design Thinking are put to test. 

The goal of Lean Startup is to collect user data and iteratively refine the product. Based on the insight, the product and business strategy should be adjusted accordingly and continuously.

The key assumptions of the Lean Startup methodology:

The Lean Startup methodology lets business owners learn where to go with the product or service based on real user data and feedback. In the combined approach, you can think of this phase as the time where you sift out the working elements of your product and abandon features that don’t yield results and can potentially incur costs and increase risk.

Agile Software Development

Agile development describes the process of producing software. The Agile methodology was created to make software development more efficient and flexible compared to the traditional Waterfall methodology.

In the Agile approach, software is built in parts (fully working pieces with a database, user interface, business logic). Testing and development happen concurrently as opposed to the linear approach in Waterfall. The core assumption is to release new products faster and introduce modifications depending on user feedback.

The assumptions of Agile development:

agile_illustration

Benefits

Drawbacks

In the combined approach, the Agile methodology is used to create a minimum viable product (MVP)—a fully working version of an application with minimum features built to collect insight and refine future iterations.

Why Choose the Combined Approach?

The combined approach with Design Thinking, Lean Startup, and Agile has numerous benefits. By putting users and their problems as the centerpiece around which you develop software, and more important, by actually measuring how users find the software, you can maximize the business value in a time- and money-saving manner.


combined_approach_illustration

How the combined approach helps build applications that solve user problems. Source: O’Reilly

Every software iteration (i.e., working piece of software or application) in the combined approach is a chance to learn more about the user and implement feedback-based modifications that further refine the software.

When used together, the three methodologies help businesses get closer to their customers and figure out early on what works and what doesn’t in the software they create. If the software doesn’t meet objectives, it’s easier to pivot and rethink the idea behind the solution before significant resources and time are wasted.



combined_approach_graph

The combined approach of Design Thinking, Lean Startup, and Agile where ideas to solutions are constantly refined. Source: Gartner

Project Context Determines Development Methodology

While the combined approach to software development is a modern way to build software that is based heavily on user feedback, the Waterfall methodology is still a valid approach for certain projects.

The Waterfall methodology is a good pick for projects with clear requirements, a defined structure, and a predictable outcome.

The combined approach is a good choice for innovative endeavors where the risk is greater. The iterative process decreases the chances of project failure and helps validate the idea early on during project ideation and prototyping.


nomtek_cta_contact_us


You may also like