Home > Uncategorized > The New Solution Syndrome

The New Solution Syndrome

Ever randomly hand someone a hammer?  What’s the first thing they do?

hammer

They look around, and try to figure out what they’re supposed to do with it.  The thought process is, “Okay, I now have this tool.  How should I be using it?”

I call this the New Solution Syndrome.  The person has been given a new tool.  A new way of doing things.  A solution in search of a problem.  People (when subject to the New Solution Syndrome) will then go, and try to find problems to solve with their new tool, even if it isn’t necessarily the quickest, cheapest, or more significantly, the best tool to use for the job.

I have chronic New Solution Syndrome.  I remember, way back when, as I first learned the joys of the Regular Expressions.  For about a week straight, my answer to every question was Perl.  You could have asked me how to change a flat tire, and I would have prescribed a negative lookbehind assertion with a subpattern capture to prove, very simply, that you should never have driven over that bottle.

And for a while there, my response to any programmatic problem was just to “regex the hell out of it.”

That left most of the projects that I started during that time period in nothing more than a pile of digital rubble in the form of backslashes, periods, and question marks.

But now I consider myself somewhat of an authority on Perl Compatible Regular Expressions.  Coworkers at my former full-time employer would routinely come to my desk with questions on PHP’s preg_* series of functions.  I’ve built a C++ wrapper for the PCRE C API.  I’ve even corrected a professor on the use of assertions in Pythons re module.  And, most importantly, my first reaction to regular expressions is “don’t use them if you don’t need them.”

Quite the 180.  From pattern matching every string that passed uner my nose, to preferring NOT to use regular expressions.

During my New Solution Syndrome with regular expressions, I learned a lot.  In fact, I learned a whole lot.  Because of my fervor to use the new tool in every possible scenario, not only did I quickly need to master many dimensions of the tools’ functionality, but I also faced many-a-hardship when trying to apply the tool in novel (read: usually foolish) ways.  This approach quickly enlightened me to the practical application of the tool, as well as the impractical applications.  And knowing when to use a tool is just as important as knowing when not to.

hammer-egg

I had another outbreak of the New Solution Syndrome when I learned how to program with threads.  And another when I learned how to program with sockets.  Another with Ajax.  With callbacks.  With pointers.  Shell scripts.  Version control.  Polymorphism.  Inheritance. Bitwise operations. On and on and on.  I’m a chronic victim of the New Solution Syndrome.  And I couldn’t be happier.

Sure, when I get in a fit, it distracts me for a while.  And after the fit is over, I probably have to go back and rewrite a bit of code.  But by the time the cycle completes, I know more about the tool than the average bear, and I have a better understanding of it’s benefits, drawbacks, and it’s reasonable use.

So go ahead, go crazy with that novel tool of yours until the excitement wears off.  Smash an egg or two with a hammer.  It’ll only land you with greater experience in the end.

Categories: Uncategorized Tags:
  1. April 17th, 2009 at 09:34 | #1

    Think of it this way: you used the hammer so much in the right and wrong situations that you developed a very accurate picture of what a nail is supposed to look like.

  2. Chris
    April 19th, 2009 at 15:55 | #2

    Very concise summary, Frank – exactly the point I’m driving at.