The drawbacks of Agile vs Waterfall

So all of us in tech-land have been very keen on Agile development recently. I even presented at a conference on the subject. So what’s in it for those of us responsible for delivering software solutions – and when should we decide when NOT to use it?

What’s in it for me?

From the delivery side of the deal, Agile helps a great deal. For a start, there’s much less pesky requirements gathering, arguments over price (I’ll come back to fixed-price contracts for Agile soon!), and constant moving of delivery timescales. The relationship with the customer, internal or external, is very close and the solution development and testing becomes a true team effort. I’m quite a fan of Test Driven Development, since customers are usually more interested in answering the question “what will it do” than the somewhat more abstract “what are your requirements” – the latter seems to result in long wish lists rather than maintaining a true focus on business benefits. Project scope and it’s attendant success factors are also important for management confidence.

And the drawbacks?

Without the discipline of defining requirements, whether in the form of a specification, user stories or tests, the subject matter experts from the client can fall into the habit of attempting to provide every possible feature – and it’s very hard for us suppliers to rein this in. This can result in escalations to the client management which, while being good stakeholder management practise, can take a long time while the detail is explained, and upset the SMEs in the process.

So…

In my (very) humble opinion, outsourced development could;

Use Agile when:

  • The SME in the client is authoritative, and ideally has budget and delivery responsibility
  • The “must have” feature list for the first release is small
  • A fixed price/fixed delivery is not required
  • The customer’s senior management understand what Agile is, and what is is not

And don’t use Agile when:

  • A fixed price and fixed delivery are required
  • The customer knows exactly what they want
  • The customer’s management needs to signoff on spec, price, timescale and change control
  • The SMEs are the functional experts, but not aware of the overall business processes and practises
  • The company has a variety of regional processes, managers, budgets etc.

Hope this helps someone!