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.”
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.