The Perfectionist Plague
There has to be other people out there like me.
I have issues. Many issues. We all do. Perhaps the
one that gets to me the most is that I’m a perfectionist when it comes
to certain things, like designing software. It’s a curse, because
I try to be perfect from the beginning and it adds to the inertia of
getting the project started in the first place; getting that first,
crucial prototype out the door is the key first step to any project.
This is an issue that I’ve had for a quite a while now and I know that
software is supposed to be imperfect. Particularly when you
undertake to create something new, no one knows what it’s supposed to
look like; no one knows, 100%, what it’s supposed to do.
Certainly, there is an idea of what problem a particular piece of
software should solve with version 1, but I’m always trying to figure
out what it’s supposed to do in version 2, before version 0.1 is even
complete. Therein lies the problem. My psyche forces me to
understand the
problem and solution completely before I can really start to make it a
reality.
I have a pile of papers scattered around my desk at home and my desk at
work with various projects that I’ve doodled or half started, but couldn’t think
through completely either due to waning interest or lack of time.
In all cases, I get stuck trying to see the whole picture before I’ve
arrived at the destination.
As a developer, I know the importance of prototyping and building
simple proof-of-concepts. If fact, I do this often in my
professional life. But as soon as I start working on any type of
personal project, this perfectionist drive just kicks in and
immobilizes me from the get-go 🙁
I can’t be the only one that suffers from this afflictive emotion. How do other developers deal with it?
One way is to work with others. A couple of months back, I worked on a project with a friend I met while working at ITT,
Blake Dubin. It was great working with him as he had a vision of
exactly what this tool needed to do, which relieved me from
over-analyzing the requirements of the tool. In addition, it
helps that he prodded me to get the work done 😀 Yeah, the code was a
bit sloppy, but it was done in under 15-18 hours and it’s really pretty
cool to boot.
The problem is that in my day-to-day life, I rarely deal with other
developers/managers that I feel are as interested in building these
things as I am. One of the big problems is that I’m surrounded by
slightly older developers. That in itself is not so bad, as there is
always something to be learned from experience in the industry, but the
problem is, they’re not old enough that they can kinda shake off the
responsibilities of family life yet. These guys are in their late
20’s and 30’s, so they have to, rightfully, place family ahead of self,
especially since they have very young kids, which leaves them with little free time to work on anything else.
I have a few friends who are developers as well. My college
roommate, Joe, lives right around the corner from me. But he’s absorbed
by World of Warcraft. The man is practically glued to his
computer desk. In addition, he doesn’t have the same passion for
creating random pieces of software (I think he’ll end up in management
in a few years).
I’m sure this problem is not restricted to just software
development. So how do you guys deal with this? It’s even
more annoying that I realize that this is a problem that I have, and
yet I’m unwilling or unable to resolve it by myself.