Agile or Waterfall?

In today’s world, IT budgets are constantly under pressure to deliver more for less, with Agile often claimed to be a method that’s a “silver bullet” for developing applications. In theory, it allows delivering software faster by using less rigour (documentation, planning, checks / balances, etc.) and more client / business interaction with the development team as they go, in iterative cycles called “sprints.”

We often get asked, “so when / how do you apply Agile methods?”

So here are some key success factors for an Agile approach to software development:

  • Is there sufficient pressure to deliver ROI quickly?
  • Is your solution reasonably simple? (i.e. little dependancy between parts)
  • Can the software be developed incrementally?
  • Is your team reasonably small and co-located in one place?
  • Can you arrange regular direct (face to face) contact with the client?
  • Is there a high level of client trust (that allows an evolving scope?)
  • Is the change impact on the organization / users not a big factor?

If the answer to the above is “Yes” in most / all cases, then Agile is a good fit. In reality, the ideal is often somewhere between Agile and traditional Waterfall methods however for larger projects. For instance, clients need to commit to a budget, which requires a certain level of planning / analysis to arrive at a figure. In our experience a combined Agile + Waterfall method is well suited for an environment which needs overall governance / cost control (i.e. Waterfall), yet business is fast-paced and requirements / environmental changes are rapid.

Leave Comment