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.
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:
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 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 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 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 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:
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.
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.
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.
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.