Agile Or Waterfall?

How did you manage the best projects? Agile? Waterfall? Or does it depend?

To my experience the answer is very clear. If a project fulfills the pre-conditions to be eligible for agile development, I would choose that.

The pre-conditions can be:

  • There are not too many dependencies which are not under the control of the provider
  • The product is not too complex
  • The implementation team is preferably co-located
  • The implementation team is staffed cross-functional and qualified in agile development
  • The deliverables can be broken down into small parts which can function on its own
  • Agile development is supported by the stakeholders

Benefits of agile development:

  • Agile development is focused on quick return on invest (ROI). That implies that features with a high potential of business value are prioritized higher than nice to haves
  • Short iterations show quick results. This motivates the development team and the clients to proceed. In addition it shows very early, if the planned solution is the right one and the investment is well spend
  • User Stories are more meaningful than standard requirements. It forces the focus rather on the user by answering the most important questions:
  • Who wants something
  • What does he want
  • Why does he want it
  • Under which conditions the requirement is fulfilled (acceptance criteria)
  • No wasted time for:
  • Detailed specifications which anyway never meet the final solution
  • Change management procedures, as agile development is a permanent change in its self