Wednesday, January 17, 2007

Striving for Better, achieving Good Enough

You could consider me an Agile practitioner. I have worked with processes one might call Agile, with a definite slant towards Extreme Programming. What does that mean? Superficially that means employing certain practices: Short iterations, pair programming, etc. It means not doing all requirements analysis before development starts, and so on.

On reflection, one of the main aspects that I have taken on board is the philosophy of continual improvement. I don't use the word philosophy lightly. As a practitioner of a profession, I seek to improve my methods and learn through this endeavour. This is where my intrinsic nature and Agile thinking align well. My most enjoyable part of a project is the retrospectives: frank, open discussion about how the team can improve itself.

Sure, nine times out of ten a well staffed project team will deliver as required, without the need for much advanced thinking. So why look beyond what we already know? Or, why fix what isn't broken? It is interesting to ponder the Moon landing in the context of these questions - there would have been millions of reasons not to do it. My feelings are that you develop as an individual (or a team) by striving to be better than you currently are; challenging the current assumptions and operations. Identifying areas of improvement and applying analytical process to making the next step; in particular, this means overcoming our natural tendency to aim for 'good enough'.

The usual outcome of aiming for 'good enough' is not as good as we had hoped. By defining an easily achievable level and never increasing it, we allow lapses to occur, the end result being below the set level. It is a natural outcome of becoming too comfortable. Only by continually striving for better can we truly achieve good enough.

No comments: