21 Sep 2005 shlomif   » (Master)

Cross-Posting to Advogato from LiveJournal rather belatedly...

In Today's Entry

I'll take a break from telling you my random whereabouts, and instead would like to pass a critique on three software development-related essays (two relatively new and one quite old by now). I'm including the first critique (on Hitting the High Notes by Joel Spolsky) below and will hopefully write the next ones in the upcoming days. Hope you find this break refreshing!

Joel Spolsky's "Hitting the High Notes"

"Joel on Software"'s Hitting the High Notes essay was published on July 25, 2005, and I read it a short time after its publication. My first major impression from the article was its "style" or at least pseudo-style. In order to support his claims that a software house needs excellent programmers so its software will also be excellent, Spolsky makes a lot of claims. Among them:

  • That it is worth hiring Brad Pitt for your latest blockbuster movie, because many people think he is so damn hot.
  • That it is worth hiring Angelina Jolie for your latest blockbuster movie, because many people think she is so damn hot.
  • That Garfield is unfunny.
  • That Garfield's creator can never be as funny as the Seinfeld Soup Nazi episode.
  • Lots of raves about how beautiful Apple's iPod is.
  • That the Creative Device Driver designers are incompetent, and can never design something as beautiful as the iPod.
  • That Apple is the only company that now profits from selling mp3 playing devices.

Etc. Joel spent a lot of energy discussing these things, and they consist of a substantial part of the article. I won't respond to them here, but needless to say they touched a great deal of soft spots. As a result, I was completely irritated when I finished reading the essay. I don't recall ever feeling this irritated when I read any other article by Joel. They usually were written in good style, mentioned cultural anecdotes and were a relatively uneventful (if not completely pleasant) read.

The message was brought across and I agreed with Joel, that I can say for Joel's defence. But the costs were high.

My second problem with the essay was more about its contents. Spolsky claims that in order to hit the high notes you need very good programmers. But then he brings only one or two aspects of being a good programmer - how fast can such a programmer write a correct code. (To illustrate the vast differences, he brings a statistical analysis of time spent on assignments from a programming-intensive course at Yale University). However, while being important, this is not the only aspect in which programmers excel or completely fail in. Here are a few more I can think about now, and I admit that I may not personally fare very well on some of them:

  1. Patience and discpline. Programming serious applications requires quite a lot of patience. Often programmers prefer to work on small projects and tasks, because trying to write a more large-scale application from scratch seems intimidating.
  2. Ability to learn new technologies and APIs quickly and thoroughly. Some programmers write excellent code in what they already know, but may take ages to learn something vastly different. Programmers increasingly work with APIs that are bundled in the language, and learning them and getting them to work is more and more important.
  3. Good Memory.
  4. Temper and Tranquility. The fiancé of a female programmer I talked with on IRC is also computer-savvy, but computers tend to stress him a lot, and he didn't want to do it as a living. As a result he's working as a Supervisor in Star Bucks. (and she earns close to triple his salary).

    Some people are getting stressed a lot from computers, but still work in the field.

  5. Tactfullness, Human Relations and Netiquette. A newly introduced system adminstrator in a company I worked for, got fired for being rude to a visitor. He was replaced by a different sys-admin who was much more clueless than him at the time.

    I met a few online trolls in my life (including to some extent myself), but a certain Israeli BSD enthusiast leaves them all in the dust. In a recent batch of flame-wars he was incredibly insulting and even started accusing people of being bad programmers, writing bad code, doing nothing for open-source, being completely clueless, etc. He has strong opinions against the GPL, the Free Software Foundation, Stallman, Linux, etc. and he refuses to be more tactful, and less insulting.

    The result of these flame-wars was a large-scale crisis in the Israeli FOSS NPO, a whole slew of conspiracy theories between the leaders of the local Israeli community, a certain board member almost quitting, many people living the mailing list that hosted the flame wars or ignoring it, and many people not renewing their membership in the NPO.

    While I did not inspect his code he did seem to know his stuff very well. But would you hire him as a programmer?

  6. Team playing, Individualism... and other resumé buzzwords that are still important.
  7. Honesty, Integrity, etc. -
  8. Passion about programming - after the burst of the bubble, there was a feature in an Israeli FOSS site about why we don't see a flow of layed-off Info-Tech workers getting involved in working on open source software. Someone commented that the real question was why many info-tech workers do not like to program for fun.

    Some companies may not care if their developers are passionate about what they do, as long as they do it nicely. For others, it is everything.

I suppose I can go on. My point is that there are many other qualities that a prospective employer may have to look at when wishing to hire an excellent programmer, besides just how fast he or she writes working code. I'm not saying that productivity is not important. But it's not everything there is to a programmer.

Often, a productive or very productive programmer will make a very bad hire because of lack in one of these qualities. And a business may decide to keep a developer that's not very productive because he excels in many of these qualities.

Thus, I think that Joel erred here as well, not because what he said wasn't true, but because there were many omissions. I think the article could have been a much better one, had it contained a full list of the qualities that one should look for in a good hire, when they are or are not applicable, and how important they are. And naturally it could have been conveyed in much more tact, as I described above.

Update: you can find some discussion of this entry in the Joel on Software forum. I also forgot to mention that the articles Joel published afterwards were better than "Hitting the High Notes" as far as style is concerned.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!