This might be a sign that I’m working too much, but I keep finding myself making analogies between agile software development and how I want to be living my life.
As strange as it sounds, I think it stems from how crazy life can be and how agile seems to have found some good tricks for taming the chaos. Agile methodologies are, after all, built to deal with the high levels of change and uncertainty in software development. And, let’s face it,
software’s level of change and uncertainty ain’t got nothing on life
Agile says screw waterfall because we don’t even know all of the information up front to enable perfectly detailed, fail-proof plans. And even if we did somehow bizarrely know everything there is to know about what needs to get done, the world around us is changing so quickly it’ll become out of date (read: wrong) almost immediately.
So, striving for perfection is futile because:
a) we can’t even define perfection, and
b) even if we could, that definition would change before we could achieve it.
If we foolishly listen to conventional wisdom and find ourselves going down this path, our only option will be failure.
What we can do though is figure out one small piece of the puzzle that we do know today and quickly go implement that before it changes. Wasting time with a bunch of formal plans and high ceremony is counter-productive at this point and just as likely to make us fail as it is to help us. And who wants a bunch of plans and documents anyway? Wouldn’t we rather working software that we can use?
Or, in life… (this post was supposed to be about life, wasn’t it?), I want to have achieved some small measure of happiness by accomplishing or obtaining or getting to experience that one thing that – even if small – is giving me something that I’m confident I want.
What do you think? Is it time for a mandatory vacation to the loony bin? Or is there maybe some wisdom in agile that can extend beyond banging out code?