Thursday, December 17, 2009

Agile Zealots

There are way too many people out in the agile community who claim to be agile experts who will tell you that you are not doing Agile right if you don't do this practice or that practice. They will tell you that if you're not doing Test Driven Development (TDD), paired programming, daily stand ups, etc. that you're not Agile. Who anointed these people and made them the deciders of what is and isn't agile? As far as I've seen the agile manifesto (www.agilemanifesto.org) only states that there are things that agilists find more valuable than others but says nothing about what things make up a true implementation of Agile.

Each group that has decided to go agile has to decide what practices it will start with. I encourage them to start small and build out for a core competency. Start with a daily stand up and small iterations. Maybe use user stories too. But start slowly, gain momentum, and learn as you go. Building from a solid base is better than starting with everything, also known as boiling the ocean, will lead to more confusion and distractions than it's worth. At the company that I learned Agile at we started with a iterations, user stories, backlog, and role definitions. We then went on to do some XP practices after some time. It was still hard to get right but if we'd started with everything we'd have overwhelmed everyone and have gotten less return on our investment.

So if you're new to Agile, don't let anyone tell you you aren't doing Agile right. If you hear that from someone, even one of the leader in the the Agile community, ask them where the definition of what practices you have to do to be Agile is written down. I've never had someone be able to show me where it is. Agile is adaptive and purposely is not defined. You need to define what practices you need for your organization. Some practices may make your implementation of Agile more successful but there's no wrong answer when it comes to what Agile is.

Just my two cents.