Last year I talked about the idea of "accepting" in IT and it is our unwillingness to accept status quo that drove us into this profession in the first place. This year, I want to suggest that sometimes, we DO need to learn to accept a solution or situation that is sub-optimal.
As the alternate title of this essay implies, if we are unwilling to accept an imperfect (but functional) solution, we may get caught up burning cycles in persuit of a perfection that doesn't actually exist.
Why? Because by NOT releasing the solution now, and exposing to real-world use, you overlook valuable road test data that could affect the functionality that stands between "good" and "perfect". You end up creating the perfect solution in a vacuum, potentially building functionality that won't serve the actual implementation when it gets out into the world.
(this is equally true when "out in the world" is user acceptance testing, or code review, or just pushing back to the repository. I've seen designers hold off even on those steps because they were concerned their piece "just isn't ready yet")
This is equally true for less hard-coded aspects of the IT Professional's experience. Such as team dynamics or even our current job.
Insisting on our vision of perfection - whether that's a team that operates like the engineering deck in Star Trek or a work environment that allows bring-your-iquana-to-work and no-pants-tuesdays - may blind us to the perfectly acceptable (albeit sub-optimal) situation we are in today. Yes, George in the next cube over talks too loud and eats microwaved pastrami for lunch. And sure, the company has never seriously considered the idea of telecommuting.
But those points may mask a team that hits 90% of it's targets on time; or a company that really promotes personal growth.
The quest for perfection may blind us to accepting a situation which is good enough that we're able to grow, to strive, and to achieve.
EDIT: Corrected "pursuit". HT to rschroeder for the eagle-eyed editorial job.