Joel Inserts Foot in Mouth and Then Shoots Self in Foot.

0 comments suggest edit

For as smart a guy as Joel Spolsky supposedly is, you’d think he’d keep his dumb ass remarks off his blog and between himself and his interns.

In his latest ego-inflating piece of verbal masturbation, Joel insults the internal corporate developer.

Is software really about artistic high notes? “Maybe some stuff is,” you say, “but I work on accounts receivable user interfaces for the medical waste industry.” Fair enough. This is a conversation about software companies, shrinkwrap software, where the company’s success or failure is directly a result of the quality of their code.

Sadly, this doesn’t really apply in non-product software development. Internal, in-house software is rarely important enough to justify hiring rock stars. Nobody hires Dolly Parton to sing at weddings. That’s why the most satisfying careers, if you’re a software developer, are at actual software companies, not doing IT for some bank.

Now, let’s put aside for the moment the arguments on how outstanding internal developers are just as important as outstanding shrink wrap developers. Scott Reynolds does a nice job covering that.

The real question here is just who on god’s green Earth does Joel think makes the recommendation to buy his bug tracking and content management software? It certainly isn’t management or the Linus Torvalds of the world clamoring for FogBugz. Hmmm, call it a hunch, but I would imagine a large proportion of his sales come from internal corporate developers. So how much sense does it make to give them the big middle finger while sitting smugly cloistered away in your ivory tower divorced from reality?

Now I agree with his general point, that if you’re in the business of software, you should hire the best programmers you can get. I don’t think his goal was to alienate corporate developers, but to illustrate one unique aspect of how hiring the best applies to shrink-wrapped software.

Here’s why: duplication of software is free. That means that the cost of programmers is spread out over all the copies of the software you sell. With software, you can improve quality without adding to the incremental cost of each unit sold.

Essentially, design adds value faster than it adds cost.

Where I disagree is his casual dismissal of non-shrink-wrap developers. Hitting the high notes isn’t always about creating emotional appeal with a shrink wrap product. Sometimes it’s solving an engineering problem in such a creative or elegant manner so that millions are saved, or in the case of Apollo 13, lives are saved.

How about this for a principle, For many internal developers, millions of dollars, the entire business, even lives may be at stake (for example, the Shuttle programmers), all resting on the integrity of a single copy of unique software. How is the best any less needed in this scenario?.

I could say more, but I need some sleep. I’ve got a plane to catch.

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.

Comments

avatar

10 responses

  1. Avatar for Andy
    Andy July 25th, 2005

    I agree 100%

  2. Avatar for Ryan Farley
    Ryan Farley July 25th, 2005

    Well said Phil.

  3. Avatar for Not a FogBugz user
    Not a FogBugz user July 25th, 2005

    Joel is usually very careful not to offend. He is an elitist, for sure, but that might be just one of the marketing strategies he uses. When he keeps talking about only hiring star programmers and offering top notch working conditions and stuff like that maybe he just wants us to say "I would LOVE to work for this guy!". Because we can't. So maybe, just maybe, we will do the next best thing and start using FogBugz :-)



    Now where is the benefit in offending a huge category of potential FogBugz users? I don't get it. Either Joel is much, much smarter than we tought or as you said...

  4. Avatar for Haacked
    Haacked July 25th, 2005

    Correction. He's an <em>arrogant</em> elitist. However, that doesn't negate the fact that he does know what he's talking about most of the time. Just this time, he stepped into unfamiliar territory.



    I'm sure I can be quite arrogant as well, but I usually keep that on the down low. ;)



    The best software is build by the best teams, not just individual stars (with the rare exceptions such as BitTorrent, etc...). And teams consist of individuals who need to know more than how to deal with character encodings in Unicode.



    They need to be built with people who respect one another and who can communicate. Sometimes hitting the so called "high notes" creates a worse product, because it misses the customers needs.



    The IPod is a wonderful exercise in design, I own one myself. But it's not the end all and be all. What's the use of an MP3 player when you can't play the damn thing because it loses power just sitting there on the table, or because the battery dies? Substance is important. Not just style.

  5. Avatar for pcomeau
    pcomeau July 26th, 2005

    Internal vs Software company development....



    To use a metaphore from cooking:

    Do you want to be a resturant chef or do you want to be a hotel chef?



    Resturant chef = software company.

    Besides an ecellent product it has to look flashy and draw people in. Individual creativity is highly important. You have to choose a target theme and hope it makes it marks, espcially if you're going up against others in the same niche (fusion, ethnic, etc.)



    Hotel chef = internal development.

    Yes creativity matters, the in house resturant has to have a certain panache to it but... you also have to make breakfast, lunch, and dinner. Most likley for the low end cafe too and you same kitchen has to provide room service to boot. So you need people who can get the job done, consistantly but they don't have to show flash or cretivity as long as they can crank out the meals to a variety of customers. In other words be able to be creative and still make a hamburger for some kid in room 3344.



    I've been in both worlds... and my general impression is that people in the resturant world tend look down on the people in the hotel world. Though I read Joel and agree with various things he says (and I even use FogBugz...) this is one of his more arrogant colums.



    Final critique... He ingores, this time, the fact that the "best" are a finite number. You're not hiring the best, you're hiring the best out of the pool you've been handed. After that it takes time and an investmant by the company to make sure you have the best (or at least pretty good.)



    Of course I now starddle both worlds... I'm a consultant. :-) (custom software for external clients.)

  6. Avatar for Walt
    Walt July 26th, 2005

    Here is another analogy, in the legal world, most companies use in-house counsel for routine transactions and outside counsel (i.e. law firms) for extraordinary or unusual transactions. Interestingly, in-house jobs are coveted, and many star attorneys at law firms aspire to be in-house counsel and eventually general counsel (perhaps like a developer aspiring to be CTO). In the legal world, the benefit of being in-house counsel is generally a better work/life balance. And, yes, it is the in-house counsel that hire law firms, so you would never hear a comment like that coming from a law firm.

  7. Avatar for Scott C Reynolds
    Scott C Reynolds July 26th, 2005

    chef in major brochure-fodder restaraunt of 5 star resort hotel > chef at many, many, many MANY restaraunts. The analogy doesn't hold up, or even better, it reinforces what Phil and I said. Where you work does not always dictate level of importance of your work or talent required to do it.

  8. Avatar for Sam Marcuccio
    Sam Marcuccio July 26th, 2005

    I'm not sure I can trust a guy who's site icon is an 8x10 glossy of his own head.

  9. Avatar for pcomeau
    pcomeau July 26th, 2005

    To digress...

    The chef comparisson comes from a book (The Kitchen Book:The Cookbook by Nicholas Freeling) where the author started in France at high end restruants then went to resort hotels finnaly returning to England and was offered a job running a higher end resturant.



    I should have made it clear that chef != cook in my semantics. Geneally I assume the title of chef implies that one has actully studied cooking in a formal way, or at least apprenticed in a brigade style resturant. In other words if you cook at Denny's or IHOP or a small mom and pop places that don't know what mise en place is then you're not a chef.



    Now for the anology I did not mean to imply that a hotel chef was less then a resturant chef. I just see a similarity between the two and internal vs. external development. In some ways the internal/hotel position is harder in my opinion because you don't get to focus on one grand product line to which the company is wedded. As mentioned before you have internal one off software that affects the bottom line, but you also have to create ad hoc reports, support legacy systems, create and support customizations to existing software. In other words, depending on company size and age, you will have a variety of things to support that a software house/resturant does not.



    Then again I've spent time in both worlds and have found I prefer internal development as I can see a direct result both on the companies bottom line (productivity, savings, that sort of thing) and users. Getting direct compliments that you've done something that actually helps another person is higher kudos for me then knowing I helped sell more units for the company.

  10. Avatar for Richard Dudley
    Richard Dudley July 29th, 2005

    Man, how sad is that to only work on a single product for a single business unit full time. That must suck. I love being an internal developer because of the different challenges every day. My week has included initial rollout of a SharePoint Portal Server portal for one division, writing a few Crystal Reports for our BI application (which I also wrote), digging around years old DTS packages to find where vendor numbers are getting truncated, automating pricing updates (which used to involve 12 man-days per month, will now take 2-3), generating labor reports for another division from timeclock data, in Excel please. It seems to me like working for a software company like Fog Creek, you run the risk of becoming a one-trick pony. Deeply skilled in one language or another, but missing out on a lot of other great technologies.