By: Jayson Gifford
March 3, 2015- One of the major decisions companies face is attempting to find a software development vendor who shares a methodology. In the software world this is an often debated and discussed topic and the answer always comes back the same, both have positive and negative attributes.
Waterfall is a very linear approach, each phase represents a distinct stage of software development, and each stage generally finishes before the next one begins.
There are several great qualities tied to the Waterfall approach. On a positive note:
- Progress is easily measured, the full scope is known in advance.
- Except for reviews, approvals, and status meetings a customer presence is not typically required after requirements are written.
On a negative note:
- Effectiveness in the requirements stage, often times gathering and documenting requirements is tough and customers are intimidated by the level of details. In addition, often times clients cannot visualize an application at inception.
Agile is a very iterative, team based approach to Software Development. The Agile method promotes rapid delivery of applications in complete functional components. Instead of a “one off” task Agile allows for “sprints” and each sprint has defined development duration and a running list of deliverables.
There are several great components to Agile. On a positive note:
- The customer has frequent opportunities to see the work being delivered, and to make decisions and amendments throughout the process.
- Development is often more user focused and involves the customer on a more direct level.
On a negative note:
- Sometimes the customer may not have the time necessary to be involved in the process.
- Iterative processes often work better with teams located in the same place, which may not always be possible.
Which methodology do you prefer?