I am a perfectionist. What’s worse, I’m the sort of perfectionist that really should know better. The title here is a reference to a well-attested, old phrase: “The perfect is the enemy of good.” It’s a phrase that’s been used in countless variations. Its basic message is simple. If you always wait until something is perfect, it will never, ever be finished. You might have done something good, but won’t. Because it’s never good enough.
It never will be. Ever. It can’t. Because the perfect does not exist. There are always some little things that could be fixed, some slight defects to be remedied, some stupid detail that gets on your nerve.1 I know people who get past this. Most of them, admittedly, seem to have learned it long ago. But there’s still always that little twinge of doubt.
Why am I ranting about this, here and now?
That could almost certainly be its own entire essay. I’m going to leave out the bits I don’t want to talk about for now. I’ve a suspicion some people have a clue what they are.
Where was I? Right. Why the rant.
I’ve been somewhat involved with a political party for the past three years. One of the unusual points about that party is how open it is in most of its workings. Although I’ve never been a fan of it, there’s an open discussion group on facebook affiliated with the party. And recently, things have been getting a bit less tolerable over there. So a number of people in the party have been looking to move “serious” conversations into a system that is, frankly, better in almost every way. Personally, I believe it would be possible to keep it on point much better than the facebook group even without linking the ability to post there to the party’s register of members, but a decision has been made that we’ll be going that route.
That brings us to my current predicament. We can do this, relatively easily. It involves making a tiny addition to a system we’re already running to allow members to vote on party policy, which turns that system into the source of authentication information for Discourse. But it’s a hack. A rather messy one, at that. We already made the call to move the “official” party register out of the voting system. Even so, parts of the formal requirements for membership are still handled by the voting system, not the register. Both of these things bug me. A lot. That seems – and feels – petty. Neither is a big problem, in the grand scheme of things.
But that’s okay; I have a plan to fix it. Which is where the second snag comes in. Everywhere I turn, there’s a tool that looks pretty promising, but as soon as I dig in, there is something about it that just drives me crazy. More often than not, it’s a part of the very design, such that it’s not really possible to ignore it and push on, or just polish that rough edge. Attempting to work it over leads to more insanity. Doing things My Way® only makes things worse, because it involves massive duplication of effort, working at levels of abstraction several levels beyond what really should be going on, et cetera.
The Django Project calls itself “the Web framework for perfectionists with deadlines”. It is definitely the closest I’ve ever seen, when all things are combined. Django is about as far from minimalist as you can get, and tends to have abstractions at whatever level you need. And yet, and yet…
I’m not a programmer. But I’m also not a writer, politician, or academic. I haven’t done any of those things enough to have any sort of decent experience or claim to accomplishment. When I’m feeling arrogant, which is about 83% of the time,2 I still think I have what it takes to deal with the tasks involved. And then I go and spend some time coping with my collection of abandoned projects. Whee!
I think I had a point when I started off. It’s gone now.
I’m still going to publish this.
I’ve had it with letting perfect be the enemy of extant.
As a case in point, while writing this post, I made a ten-minute detour into tweaking the details of the CSS styling applied here. It still sucks, of course, but I hope it sucks a little bit less.[return]
There are lies, damn lies, and statistics. The figure is taken from one of these categories. Your guess is approximately as good as mine as to which.[return]