Which process is the best… Waterfall, Agile or Lean?
Software development techniques have produced a number of models for a framework for team collaboration on complex problems. The models we will take a look at today include waterfall, agile, and lean development processes.
When looking at the common product development processes there are the same steps used differently. essentially ever software product goes through a number of stages. The first stage is a customer development stage. This is where you begin to understand what need or problem your product will solve and from there you can develop the requirement necessary for your product.
The next stage is the design stage. From here you lay down the framework of your product and what it will take to validate the need for your product. After that comes the implementation stage. Here is where the product is actually built. The next logical step is to test make sure the product works and there are not bugs. The last stage is the release of the product and ongoing maintenance.
So, in short, there are the requirements, design, implementation, testing, and maintenance stages of software development. Visually looking at how the waterfall, agile, and lean development processes implement these stages would look like this.
The circle represents testing while the straight line refers to the requirements, design, and implementation stages. With the star representing when a product gets to the marketplace one of the biggest differences you can see in the processes is when that takes place. With waterfall and agile processes the customer only gets the product at the end. However, with agile you are focused on the most important features up front giving you an opportunity to shift gears throughout the process to create the best product.
On the other hand, with lean your main focus is building a smaller version of your product to get feedback on whether you are on the right track or not. This potentially could save a ton of money if the feedback received isn’t what was expected, because you can scrap the project much sooner. Or feedback could set a different course for the project ending with something different but much more customer friendly that what was designed in the first place.
When looking at these common product development methods there is no best method to use. They each have a number of positives and negatives. Waterfall is a much more linear approach to product development. Progress is easily measured and customer involvement is minimal. As a result, the waterfall method is a much more complete and involved methodology but when it’s all said and done when the product is delivered the customer may not be satisfied.
With lean the customer has frequent opportunities to see what’s being delivered giving a sense of ownership throughout the process. A basic version of the product is delivered much quicker and is more user-focused. However, the high degree of customer involvement could be a negative for customer uninterested. Also, it helps when using agile that team members are located in the same place because of the high level of coordination needed.
With agile is similar to lean, but instead of releasing a product they test its function. So, customer involvement is reduced, but the risk for ending up with a product where the customer is unsatisfied is still there.
What process framework is right for you?
To answer the question of which method you should use it makes sense to consider a number of factors. Funding, team operation, customer availability, and necessary product features are just a few factors to consider. If funding is in question and validation is needed as soon as possible, the obvious method to use would be lean. This can secure the validation much sooner and more cost-effective than the other methods and this could help secure the full funding needed for the project.
If the scope of the project is known, team synchronization is limited, and funding is limited to a fixed price scenario than Waterfall may be the most ideal method to use. The weight given to each factor depends on the circumstances of each project.
When looking at product development techniques it’s important to understand that these techniques have to do with the way you organize work as opposed to project management style. You can use a variety of specific technical approaches but the framework you use to organize that work most likely will fit a specific model. A better understanding of these models will lead to a more efficient software development model. In the end, this creates better processes and products