Perfection: Necessary Act

Perfection gets a bad rap in software development.  It’s often even used disparagingly to justify YAGNI‘s evil twin: crappy code, as in, “We’re not after perfection here, we just need this thing to work!”

Without perfection, there would be a lot less merciless refactoring, but I’m not talking about perfection as an end point.  Perfection is an act, and it’s necessary.

Perfection (the noun) probably can’t be achieved, and even if it can, the cost of the last mile would be too high.  But by not practicing perfection (the verb), you’ll likely develop a stunted perspective on software development and you might ultimately end up in a RAD sweat shop with only enough skills to run the software development equivalent of one of those McDonald’s cash registers designed for for use by the idiocracy with the big buttons with pictures of food on them.

The act of perfection, or the pursuit of perfection is about always trying to make things better, and especially making things more maintainable, which inevitably means making things more expressive, more soluble, and more testable.  Perfection is exactly what we need to be doing.  We need to be doing it continuously and incrementally and we need to make no bones about its necessity.

The real trick is in knowing the difference between an act of perfection and an act of codesterbation.  When you stop making things better for either solubility, expressiveness, or testability, and you’re still refactoring, you might be in the weeds.

The act and pursuit of continuous perfection is the razor-thin line of design definition where Extreme Programming teams often live.  Without perfection, there isn’t a whole heck of a lot of impetus for improvement.

The failure statistics for the software development industry is an expression of the dumbing-down of software development through short-sighted squelching of acts of perfection.  Rather than encourage the micro-incremental improvements that perfection brings, many stakeholders work to ensure the micro-incremental decline to entropy of their assets by stifling the very pursuit of perfection that develop the necessary mindset and skills to ensure necessary sustainability.

The next time someone tells you that what we need is a Toyota rather than a Cadillac, be quick to remind them that Toyota achieved its dominance through acts of perfection (the verb).

This entry was posted in Agile. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

Leave a Reply