Understanding Agile: 1-2-3 and you are agile!
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.
Related:
>> Agile principles in the agile manifesto
>> Introduction To Agile
>> The good and bad of XP and Agile notions of software testing
>> Agile software testing needs a rethink
NICE CODE
You should be Unit Testing using JUnit or similar tool, to be truly agile.
Emphasis is on Working Software and refactoring instead of elaborate designs and tons of documentation