ow many times have you sat at the computer, with a need to visit the, erm, "reading room," and thought, "Just one more minute, I know I can get it to work with this one little tweak." Of course the one tweak doesn't quite do it, so you keep at it until that "reading room" visit becomes a little emergency.
I have often thought that if I had children, they might have called family services on me by now. I have often imagined the following dialog:
"Mom, we're hungry, when's dinner?"
"In a minute honey."
"Mom, it's okay. We had Captain Crunch for dinner. But can you help us with our homework?"
"Sure, sure, in a minute, sweeties."
"Mom, Dave Letterman's on and he's interviewing Daniel Radcliffe. Can we watch it even though it's a school night?"
"Uh huh, yeah. Just a minute honey."
Of course, I know plenty of women who are super hard-core coders and awesome mothers, as well as plenty of guy geeks who are wonderful fathers and very involved with their kids. But don't tell me you've never waited to go to the loo until it was an extreme emergency.
But the obsession goes deeper, doesn't it? Finally, the code compiles; the code runs; the code works. But how's the performance? How efficiently have you used the language and the methods? Have you used any of the coolest-latest-newest features? (Generics? LINQ? Anonymous Methods?)
I've talked to many programmers who, like me, are incredibly impatient, exhibiting behavior that easily prompts ADD or ADHD labeling. (Well, at least by my husband!) I hate doing hikes or bike rides where I go some distance in one direction then turn around and return on the same route. I can't bear repetitive tasks. I can't watch TV without the remote control in my hand. You'd understand how sick this really is if you knew that where we live, we only really get two channels with any clarity.
I need to move forward...always. If we are so impatient that we can't walk on the same path twice in a row, how is it that we can be so obsessive that it's possible to spend hours and hours trying to get one line of code to work? Sure, there's another way that only takes a few extra lines but it is such a disgusting hack. It would be embarrassing if anyone ever saw it. It would be up on the DailyWTF in a flash and off to the dungeon for my career.
Another place where the obsession gets in the way of daily life is when you would like to ask a question on a forum or a list serv. You've already spent hours trying to solve the problem and are ready for some help. As you start writing your question, you can't help wondering if there is something you haven't tried yet; something so obvious that you fear you will get laughed at for asking the question. Of course, we all know that this is silly and we wouldn't think the same of someone else asking the question. Nevertheless, you spend another two hours trying everything you can possibly think of before you dare ask the question in public. And the sad truth is that quite often, the answer pops into your head approximately two minutes after the question has gone live. It just took that long for all of the hard work and research you just put into the effort congealed in your brain and you came to an "Aha!" moment.
There's no question that ego is involved with this, at least in my case. Whether it's the ego that is worried about exposing your humanity in publicly visible code or asking a question in a public forum, it can be a showstopper. Can't you just hear those people gasping "Oh my God. That person doesn't know every single namespace, class, and method in .NET? What a moron!" I think my worst ego problem though involves dominating the computer. I take it very personally when the computer tells me that I can't do something. Talk about throwing down the gauntlet! I will not stop until I win, and that is all there is to that!
So while patience is a virtue and obsession is sometimes identified as a form of psychosis, where would the world be without our little quirks? Would software be produced more slowly because we are not interested enough to work (or even think about code) more than 40 hours a week? Would software run more slowly because we haven't wondered how a hundred different factors might affect performance? Who would answer all those questions on the forums and list servs or point out problems with [insert your favorite software vendor's name here]'s beta releases that are so generously made available to us?
So from now on, when you witness someone raising their eyes to the heavens and proclaiming that "patience is a virtue," you can let them know that in our world, the world inhabited by hapless, obsessed developers who have little control over their coding urges. "Impatience, my man. Impatience is our virtue!"
|Editor's Note: This article was first published in the November/December 2007 issue of CoDe Magazine, and is reprinted here by permission.|