19 Oct
2005

The Arnold Horshack Developer

Remember Arnold Horshack in Welcome Back Kotter?  He always wanted to
called on to prove that he was smart.  Problem was, he was usually wrong and
the teacher got sick of calling on him.

I recently met a developer like that.  I was visiting a client and was educating
the development team on the steps they would have to go through to implement one of
our products, a web service that serves up content as XML.  It turns out that
this is a fairly complex process and will take the client several weeks, mostly due
to the intricacies of the proprietary markup that they will have to transform and
making layout decisions.  So you get the idea, not rocket science, but laborious.

The Big Boss in the Room (BBR) was looking to show a demo of our product
to his bosses in 4 days.  We offered an interim solution that would have served
his business need, but was not exactly cool.  This is where the Horshack developer
piped up.

Oooh, oooh, pick me. Pick me.  I can do it.  The developer wanted to work
through the nights and weekends ahead to develop the whole solution.

There was a time in my life when I would have identified with Horshack.  He wants
to be the hero and deliver more than anyone thinks he can, especially the BBR. 
If the BBR thinks he is a hero, he might get a raise or something. 

What is the net effect of developing in hero mode?

  1. No testing.  None.  Forget it.  The last compile in a situation like
    this happens 5 minutes before the demo starts.  I don’t know about you, but I
    wouldn’t have wanted to be the guy running the code in front of a crowd.
  2. One developer owns the whole solution.  There is no redundancy of experience
    here and the company ends up being 1 person deep on the solution.
  3. The solution would not be extensible or integrated in any way.  In this mode,
    Horshack takes every shortcut in the book and starts panicking around night 3. 
    The actual application is already spaghetti code, now it starts to suck.
  4. The whole thing will need to be re-written just to get the next feature put in. 
    The first time the company needs the application to evolve, it will cost way to much
    to add the feature and will end up with a rewrite.  Horshack won’t care. 
    He’ll be busy playing the hero on a new doomed application.

Don’t be a Horshack.