Agile is one of the rarely understood but regularly misunderstood concepts in software development. The problem is perhaps that there are a confusing number of views, practices and jargon around agile. In the software world when you talk of adopting a technology you normally talk of adopting the entire thing. But with agile there are so many practices and classifications within the concept that most of us are never sure as to what is agile enough.
Does one need to adopt all practices? Do I need to do extreme programming? Are extreme programming and scrum the same thing or are they completely different? Lots of questions? Also many agile articles and books will go on about how agile is so good but won’t give you a simple “1-2-3 steps and you are agile!”.
The agile principles in the agile manifesto are actually nice and simple but even there you don’t find a “do this and you are agile” solution. So can we come up with such a list?
My list would be:
1) Have frequent releases / deliveries.
2) Welcome and manage change. Mega projects changing into a 1 month simple application is a possibility you need to provide for.
3) Work closely with the client / business experts to provide a real business solution.
4) Keep things simple.
5) No fixed bids – You are flexible and your client also needs be the same.
I might be wrong, but if I fulfill these conditions I would call my project ‘agile’.
Add your comments and we will try to come up with a short list of ToDos that symbolize agile development to the software developer community.