Unfortunately there is no simple answer in which conditions agile works and in which it doesn’t.
So what are the right conditions for Agile?
Where to use agile?
Table below provides guidance through different conditions which helps to decide which approach is more favorable to be used.
Waterfall or Iterative Project | Agile | |
Market environment | Market conditions are stable and predictable. | Customer preferences and solutions options change frequently. |
Type of work | Similar work has been done before, and team believes the solutions are clear. Detailed specifications and work plans can be forecast with confidence and should be adhered to. Problems can be solved sequentially in functional silos | Problems are complex, solutions are unknown, and the scope isn’t clearly defined. Product specifications may change or needs to be discovered Creative breakthroughs and time to marketare important. Cross-functional collaboration is vital. |
Ability to be agile | No or very little experience with agile. Team was formed for the purpose of the project. Team members are distributed with partial allocation, working individually. | Team is stable, collocated and has worked in agile environment before. |
Impact of interim mistake | Mistake might be catastrophic. | Mistakes provide valuable learning. |
Modularity of work | Customers cannot start testing parts of the product until everything is complete. Late changes are expensive or impossible. | Incremental development have values and customers can use them. Work can be broken into parts and conducted in rapid, iterative cycles. Late changes are manageable. |
Customer involvement | Requirements are clear at the outset and will remain stable. Customers are unavailable for constant collaboration. | Close collaborative and rapid feedback are feasible. Customers know better what they want as the process progresses. |
Usability | Typically performs one user acceptance test at the end of the project which may or may not influence usability. | Frequent usability checks with users to validate right directions of project is needed. |
Intent | Roll-out predefined process and/or solution. | Discover the best possible solution for given business area/problem. |