Darren has written an interesting post on methodologies and how he's come to view them as a source for procrastination rather than a source of process enlightenment.

Here's the key part of the message:

The thing that none of those books ever tell you is this... you either have it, or you don't! You will rarely learn this in books, but to be successful in your projects (and it probably doesn't hurt in general life either) the main thing that you require is self-awareness. Without it, you will unfortunately almost always fail.

I agree with what he's saying but what happens if you're one of the people who doesn't "have it" and yet you're still tasked with having to deliver it. If your livelihood and career are on the line and you know that failure is not an option then what do you do?

Why, of course, you look at the various methodologies and try to find the one that will help you the most. After all the people who put together a methodology knew what they were doing, right? They'd run successful projects, they'd delivered on time and all that. Why reinvent the wheel when you can stand on the shoulders of giants? Follow in the well trodden footsteps of those who've gone before. How is that not a recipe for success?!

And this is where the trouble begins. Methodologies are not like recipes. A recipe works because the ingredients are the same each time and goal is the same each time. Software development rarely has the same ingredients (staff & tools) or the same goal (the software being delivered). Yet for some reason the people who don't "have it" have trouble seeing this, they are usually the ones that follow a methodology to the letter, without considering the adjustments that they must make to ensure that the methodology fits within their corporate culture, to tailor it to their staff and the mix of people and skills they have, or even to the type of software they are trying to deliver.

Which brings us back to self awareness. So what is this self-awareness thing, anyway, and is it really required for success? Well, actually, yes it is. It's absolutely critical for success and the good news is that it's actually embedded within the agile methodologies already. It's just that it's not called self-awareness - it's usually referred to as the "inspect & adapt" cycle. In Scrum, it's covered by the sprint retrospective - the time where you and your team conclude an interation and think about what you do, why you do it and how you can improve it. If you don't run a retrospective each iteration, or you just give minimal attention then you are doing yourself and your team a disservice. There are ways to make a retrospective work well, and ways to get your team inspecting & adapting effectively - it just takes a bit of work and time to get comfortable with making you and your team self aware.

Remember any methodology is a form of process guidance. Understand the principles behind the methodology and work from principles, don't just follow it slavishly without engaging your grey matter. Then success will come. And remember to Inspect & Adapt!

Inspect and Adapt!