Before starting any new project, the decision needs to be made as to which delivery method will be used. It is often a subject that results in differing opinions and heated debate. It is vital, however, that the software development work is organized and that the team is working in a unified way. The two principal methodologies for project delivery are agile and waterfall, both of which have been used in software development projects for a long time and come with their own strengths and weaknesses.
This linear approach to project delivery is the more traditional of the two methods. It involves each stage being defined, carried out and finished before the next can begin. The stages within the waterfall form a logical pattern to follow, along the lines of plan, build, test and release. To ensure each phase has been completed there is usually a stage gate where a review takes place. For example, after requirements have been gathered the customer must review and approve them before design can begin.
The waterfall method has become less popular in recent years due to its lack of flexibility. That said, the more rigid structure does have its advantages:
However, as mentioned above, many teams have moved away from the waterfall approach. It’s main disadvantages include:
This iterative, team-based approach to software development focuses on rapid delivery in complete functional components. Instead of time being split into a schedule of activities it is time-boxed into phases known as sprints. Sprints are usually a week long and have a defined list of deliverables which are determined at the start. Priorities are defined by the business value and needs of the customer.
The agile method has become a prevalent tool for software development due to its flexible nature and ability to prioritize work. It’s key strengths include:
The agile approach does, of course, also have some disadvantages which need to be considered before adopting the methodology:
As we’ve covered, both methodologies have their strengths and weaknesses; the difficulty is deciding which one will best suit your project or indeed if you would be better off using a hybrid approach. It’s worth asking yourself the following questions to give you a steer in the right direction:
In summary, agile and waterfall are very different and choosing between them can be difficult. The waterfall approach may reduce risk in the face of certain constraints, but it often won’t produce the best product for the business. Agile, on the other hand, focuses primarily on product development and large-scale projects are made up of many other elements that need to be factored in. However, each project and their related circumstances needs to be assessed separately, and the common pitfalls of cost, schedule predictability and scope creep reviewed. The best plan is to try to educate customers on the benefits of the agile methodology and the best ways in which software development can be managed and funded to give them the best possible product.