Thursday, April 17, 2008

Are you Agile?


"Can you define Agile?" is one of the top questions I get, I do not have a good answer for that.

But I do think I have some good pointers for "What is not Agile":

- If you haven't read the Agile Manifesto, you are probably loosing out on the real basis of Agile.

- If you plan all your iterations at once and lay them out in the beginning of the project, you are not Agile.

- If you plan by using hours as your only way to messure the speed of the team, you are not in a Agile Project.





- If you do not have automated tests, it is really hard to be Agile.




- If you focus more on letting people work from home, than to focus on co-locations and productivity; You are not Agile.


- If you have a non-coding architect, a customer that only the project manager are allowed to talk to, a DBA that only shows up for status meetings and testers in another location; You are not Agile.

- If you are spending more than 10% of your month documenting what you have done in a document that "no-one" will read; You are not Agile.

Whenever I get into a discussion with "Non-Agile"-Agile people, I find it hard not to make the discussion look like a religous debate, based on small insignificant details.

I guess this has to do with the fact that even if Agile is simple, it takes a long time to understand. It took me over 6 years to really understand why storypoints is a better for estimation than hours.

I am a firm beliver that the use of realistic estimation (not hours), direct contact with the customer, a focus on refactoring often and just providing the documents that provide actual value isn't small insignificant details. I actually belive that those among the other well known techniques are crucial for getting the most out of an Agile Proccess. If you just pick and choose, you might end up with a proccess more suitable for hackers than for professional software developers. No, I am not saying that you need to follow the book from A-Z on order to be Agile. All I am saying is that for every part you toss out the window, you should think about what you are loosing and subsitute with something else that gives the same value.





Bonuspoint : If your proccess has the letters R-U-P in it, you are NOT doing Agile :-)

No comments: