Thoughts on Agility

I’ve been thinking a lot about agility lately and what it means to “be agile”. As usual, my thoughts are pretty much all over the place, but I thought I’d share a few with you.

One thing that I’ve noticed recently is that everyone wants to “be agile”, but very few people actually understand what it means. To most people, agile is nothing more than a buzzword. They understand that it can potentially deliver value and that everyone’s doing it but, beyond that, they really don’t have a clue. Just check out this video from my pal Caleb Jenkins to get an idea of what I’m talking about.

There’s another group that believes that agility equates to a specific method, such as Scrum. While I’m certainly not bad-mouthing Scrum (I’ve seen the value that it can deliver firsthand) or any other method, I don’t believe that agility can be directly attributed to any one practice. These methods can help to set you down the right path, but in reality they’re just tools. That isn’t to say that they’re not valuable tools, but agility is, for the lack of a better term, a lifestyle. I think that may be why, initially, it’s so hard to fully grasp.

The funny thing is, you never really get there, because there is no definite “there”.  Agility is not a destination, but a journey. The biggest part is simply coming to the realization that most aspects of any development project, be it requirements, human resources, schedules… are constantly changing. That’s reality and there’s not much that you can do about it. All that you can do is learn to accept it. Once you accept it, and even welcome it, you’re in the right frame of mind. You can begin to actively prepare for and respond to this reality and that is what makes you agile.

In my opinion, agility is simply the ability to react appropriately to reality. That’s a rather broad definition, but rightly so. If you’re practicing the classic waterfall method and you find that your requirements are in a constant state of flux and that you’re always trying to “hit a moving target”, then you’re not reacting appropriately to reality, are you? On a more broad level, if you keep doing the same thing over and over again expecting different results each time, you’re not being agile.  The funny thing is that, with experience, this is common sense.  The problem is that we’ve been conditioned our entire career to think to the contrary.  There is no magic recipe for agility since agility depends on your context.

So, what do you think? Do you agree with me? Great. Do you disagree with me? Even better… tell me why so we can strike up a conversation.


About this entry