The overwhelming number of software companies claiming to run “agile” projects has become a bit of an inside joke in the industry.
Over the past ten years, agile has become synonymous with software development. If you mention your company follows a hybrid project management methodology or heaven forbid a waterfall project management methodology, you’re likely to receive some odd looks.
The truth about agile is that it’s not always practical.
If you are part of an agency that builds software on behalf of clients that don’t have an unlimited budget but does has tight timeframes, then running a truly agile project is going to land you in hot water.
In these situations, the client usually wants to know how long it’s going to take to complete the entire job, and what it’s going to cost upfront. It makes sense to plan out the project scope ahead of time and stick to a definitive schedule, even if it’s just to keep your client happy.
However, we’re now describing a waterfall development methodology. Under this approach, we’d gather all the requirements at the start of the project, go through the design, develop the software and then release it for the client to review and test.
This approach is also going to cause some headaches for your team. No one knows all the answers at the start of a project, especially if the thing you’re building is innovative and new. By the time the client gets a chance to play with the developed product, they may have a three-page list of things they want to be changed.
Keeping in mind waterfall projects are usually fixed price, this is bad news for someone. You’ll either need to tell the client they’re paying for the changes, or pay for the additional effort yourself.
What’s the solution, then? If an agile project isn’t going to give an accurate budget or timeframes, and a waterfall project is too rigid, what approach is the best?
Well, that would be a hybrid project management methodology.
What is a hybrid project management approach?
A hybrid project management approach is simply a combination of one or more methodologies.
Most of the time it’s a combination of the best parts of waterfall and agile.
The biggest advantage achieved by an agile methodology is the feedback loop, where the product is being consistently tested, improved and reviewed. It’s also one of the most common reasons why waterfall projects fail.
Borrowing this iterative approach from agile and inserting it into the regular waterfall methodology helps increase ongoing communication between the stakeholders and achieves a more dynamic approach to ensuring the right features are incorporated.
This effectively addresses the two biggest disadvantages of the waterfall methodology; lack of deep collaboration with the client, and frequent product reviews.
How does it work?
A traditional waterfall approach follows this general flow:
- Discovery & requirements gathering
- Internal testing
- User acceptance testing
- Production deployment
This translates nicely into GANTT charts as seen below.
Whereas an agile methodology follows this general cycle:
- Brainstorming and developing user stories
- Design and prototyping
- Client review
- Feedback, features and issues pushed into the backlog
When we combine the two approaches into one methodology, it ends up looking like this:
The project follows a lot of the traditional path of a waterfall project but also gives the stakeholders a chance to give feedback during a series of development iterations.
The other big difference that isn’t spoken about quite as much is cutting back the amount of documentation required. Waterfall projects are run to the letter of the law can feature mind-boggling amounts of documentation.
That isn’t to say this is a bad thing, but it can seriously slow the project down. Between weekly status reports, project plans, risk registers, issue logs, project charters, contracts, stakeholder registers, and a ton of other documents, the volume of documentation can feel overwhelming.
Adopting a hybrid methodology gives the team a chance to revise which documents are completely necessary, and choose as many or few as required to get the job done.
As a small development team always looking to find more efficient ways to manage our projects, we’re open to trying new things. No matter if the approach is Agile, Waterfall, Scrum, Kanban, ShapeUp, or any other countless methodologies, we’re willing to try it if it seems like the right approach for the job.
In some cases agile just doesn’t work. Similarly, there are plenty of times when using a waterfall approach is going to cause issues.
The solution is to pick the best parts of both and run a hybrid approach. It provides more flexibility while providing all the structures and estimates we’ve come to know and love from a waterfall approach.