The Quality of Practice, The Practice of Quality
Some say that perfection does not exist. Others say that it is only in the garden of perfection that true excellence grows. What is true is that perfection is subjective at best, and better the person will be who searches for it, if she understands what such a goal will do for her. Striving for perfection in any discipline will require energy and dedication, and it must be tempered with a sense of realism and a courageous heart, for there will be times when pain is all there will be, for perfection and pain dance along the pathways to the halls of fame. Nonetheless it is possible that any rookie, endowed with the right attitude and frame of mind, can make the slow but sure progress towards mastery in their field.
I was recently reminded of a team who engaged with XP style development, but sadly struggled with its fundamentals such as TDD, Refactoring, Collective Code Ownership and the dreaded Pair Programming. I sat down with this team more than once, and I often felt that they were too hard on themselves. I now think that while they could have relaxed a little, what was truly overlooked was the fact that there will be pain. Had they accepted this at the outset, I feel the outcome may have been different. As it turns out, they no longer do “XP” though they do “Agile”. I recently found out that they no longer push TDD, its optional – if you like it, good and if you dont, DONT DO IT!
To me this is unfortunate. Learning anything new takes time, and something overlooked with techniques such as test driven development, is that its a paradigm shift. In software, such shifts come with some pain. The reality is that making the quality of the practice a core objective, results in the quality of the practice becoming a reality. Focusing on learning first principles and accepting things might not work out quite right is a trait I use a lot in furthering my personal endeavours. Courage is a useful value for a practitioner of XP, and having the courage to screw things up actually cultivates more opportunity for growth. I only wish this team had seen this, for they started off with great reasons for wanting to develop with XP – because they valued the quality of the work they produce and deliver to their customer.
“If you want to garden, you have to bend down and touch the soil. Gardening is a practice, not an idea.” — Thich Nhat Hanh
Software development is no different.

