Share via


The "Doh!" Moment

Have you ever worked on a problem and kept working on it and working on it until you knew you'd created a solution to the problem that was completely defensible and utterly wrong? Don't worry, it happens to a lot of smart people. You think and think and think and think and come up with the absolutely elegant, smart solution that involves creating the perfect piece of infrastructure. Then your neighbor points out that a piece of chewing gum and two pennies would have worked more quickly and less expensively.

Yes, overengineering is common among us smart people. (Ed note: Has anyone else noticed that we need an international emoticon for irony?) The smarter we are, the more likely it seems we are to overengineer. Until you get to the really smart people, who are typically the ones offering you the chewing gum and pennies. (The brilliant people look at the solution proposed by the smart people and figure out how to implement it only using the same chewing gum and pennies that the very smart people offered thereby solving both the simple and general cases with no incremental effort.)

But I'm not just talking about overengineering. I'm talking about knowing that you're overengineering even as you're doing it. When that happens to me, I try to find a really smart person and I say, "I'm overengineering this."

Thursday I had the Moment of Recognition that I was overengineering. I was looking for a way to make Visual Studio work better with online community resources, like extracting source code from forum questions and things like that. I had a bundle of ideas just like that, ranging from one developer for a week to a team of fifty working for two years. Even I recognized the telltale signs of overengineering. 

I booked 30 minutes with Scott Guthrie. In about 5 minutes he'd pointed out that it would make a lot more sense just to get everyone in our division to spend a couple of hours a week answering forum questions and marking the occasional article as very useful or the occasional question as a FAQ. Or hire someone to write some more samples and starter kits. Not precisely zero cost, but it has the benefit a) requiring no code to be written and b) getting the division out answering questions.

Sometimes when it's a nail, just hit it with a hammer.

Comments

  • Anonymous
    April 17, 2006
    I noticed somewhere around mid-career that knowing too much about computers and software allowed me to do really painful things.  I took way too much time and persisted on problems long beyond there would every be any pay-back for the effort.  A sane person would give up, pay someone to do it, find another product, or otherwise not go overboard to overcome the foibles of a perverse system and end up surrendering anyhow.

    Thanks for the Scott Guthrie link.  That's fun too.

    More samples and starter kits.  You betcha.
  • Anonymous
    April 18, 2006
    talk about over-engineering!! we already have an international emoticon for irony... ;-)

    or am i missing your irony? :-)

    I may not be smart enough to get it
  • Anonymous
    April 18, 2006
    The chewing gum and pennies are a work-around, not a solution.  They aren't supported by the Software Developer, and voids all warranties.  
  • Anonymous
    April 18, 2006
    The comment has been removed
  • Anonymous
    April 18, 2006
    The very idea that you need a symbol to point out irony was intended to be ironic. The difference between sarcasm and irony is that sarcasm is obvious and irony isn't. In speaking, sarcasm is generally accompanied by a change in voice and a facial expression, as in, "Oh, that's a brilliant idea." Now compare that with Jeeves telling Bertie Wooster, "Brilliant, sir."

    In other words, I was intending to be ironic about being ironic by being sarcastic. Now isn't that ironic?
  • Anonymous
    April 18, 2006
    The comment has been removed