If you’re into project management at a serious level, you’ll know that there are various models or methodologies out there, and the one you go with will likely depend on a few important considerations such as scope, budget, timeframes or deadlines and outcomes. When developing software there are two main methods used – Waterfall or Agile – and sometimes a hybrid of the two is preferred.
Following is a very brief summary of the different types used by Expert.
Waterfall
Most of Expert’s projects use Waterfall due to the type of clients we have. The clients generally want a specific piece of work done to meet clearly defined needs for a fixed price. No surprises, thanks. If you’re familiar with house construction, you’ll find it really easy to relate to this model.
- A plan and set of specifications are created, discussed, modified (if required) and signed off by both parties before work commences. At this stage the work is costed and a quote is supplied. A budget is set aside by the client and both parties sign a contract. The planning and specification, and reaching agreement, are the most important parts of the project.
- Work commences on one section at a time. As each section is completed the next section is worked on. Each section is final, and no changes are possible.
- Once all stages have been completed testing is undertaken. This happens in a UAT environment (User Acceptance Testing) and the software sits on a test server, so it’s not yet live. Testing is undertaken by both the software engineer and the client.
- The ‘go live’ occurs once the testing has been fully undertaken and completed.
- Progress payments may be made during the project’s duration, or a one-off payment made at the end of it.
The main advantages of using Waterfall are around surety
- The specification ensures that everyone is clear on what is being built, what it is going to cost, and how long it will take.
- Documentation is created as the project progresses and can be picked up by other developers should something happen to the main one.
- Future work on improvements to the project can be made using the documentation.
The main disadvantages of using Waterfall are around it’s inflexibility. Changes to the spec will be expensive and may slow the project down, as well as adding to the cost. While it’s not usually overly complex, too much client involvement or interference can derail it.
Agile
Agile is a more iterative process which allows changes, refinements, and improvements being made throughout the project. Testing is carried out until everyone is satisfied with the result. Instead of work being undertaken in stages or sections, sprints are used. This allows for the work to be divided into parts and a range of people in collaborative teams undertaking the work simultaneously. This means that progress can be discussed and issues worked through collaboratively. Once the parts have been completed, testing is carried out throughout the project’s progress, not just at the end. This allows for any bugs to be picked up and fixed as they go.
The main advantages of Agile are around flexibility and include
- Being able to adjust and iterate requirements as you go.
- Being able to add or delete features as work progresses.
- Feedback from clients can be given throughout the project, usually at the end of each sprint.
The main disadvantages of Agile are around communication and it is very labour intensive. A skilled project manager needs to define the sprints, assign them to the right people, and then manage the process. A committed collaborative environment is vital, as a break-down in communications can spell disaster for all involved.
Hybrid
While Agile is widely used, the advantages of Waterfall can’t be overlooked. Neither method is perfect, so it is not uncommon for project managers to use a hybrid of the two.
A hybrid method defines the requirements at the beginning. These include planning, budgeting, timeline etc which are Waterfall features. Design, development and testing using the Agile method is then implemented.
Using a hybrid approach combines the best of both worlds, though the advantages and disadvantages are pretty much the same.
Which is the best for your project?
It really depends on the type and scope of the project, how involved the client and stakeholders want to be, can the developers work together at the same time, and when it needs to be completed.
While Expert prefers using the Waterfall method as it usually best suits the types of projects and types of our clients, we’re happy to make a recommendation on which method will work best for a specific project and client. Feel free to raise it when you’re briefing us on your next project’s plans.