Sink or Swim: Why must everyone hire “Senior” Developers?

Whew! It’s 2007 already, and we still can’t effectively integrate less experienced developers into a team. Notice that I said “effectively”, not “efficiently”. You have to be able to do something right, before you can do it quickly, and there is no recipe for doing it right yet ( at least the recipes I’ve seen fail miserably)

Case in point: How many job advertisements do you see that mention “Senior”, “Expert”, or “Master”, or “Talented”? Now, contrast that with the number that say “Junior”, “Willing to Learn” , “Recent Graduate”, or “newbie”. (On an unrelated note, I have found that many of the former advertisements are only willing to pay rates for the latter)

Why do most companies want developers that are “Senior” already? I think it’s because you can abbreviate the instructions, and put them to work doing *something* immediately. In my experience, many business users want you to start coding, using the “elevator pitch” as specification. This is great when you can make it work, but it’s not something that reinforces practices that will allow the organization to estimate future projects effectively. The reliance on “heros” insures that your project will not move beyond CMM Level 1 - “Projects are delivered on time and on budget due to the heroic efforts of the individuals involved”.

What’s the alternative? I don’t believe that the answer has anything to do with writing volumes of documentation about the code. Reams of Technical Design Documents serve only to lock the application design into the past, and serve as an impediment to innovation. Design documents imply a few unsavory side effects:

  1. At some point in the past, a technically current design was conceived. The design was locked down, so that the Technical Design could be written
  2. At some point in the past, a Technical Design was completed, and approved by some body of people in a grueling battle of wills. This group of people have now been conditioned to recoil at the mention of changes to this document
  3. The stale Technical Design document, based on a stale design, is communicated to developers. Design changes or revisions are so painful, that any mistakes by the designers or Technical Design writers are simply accepted and implemented
  4. Innovation by developers is discouraged, since it typically requires approval, document updates, etc.

So, we skip formal design, come up with an elevator pitch, and communicate it to a small set of “Jedi Master” developers. Fred Brooks said that the optimum team size is around three, because that reduces the number of communication channels during development. The “Subject Matter Experts” (SMEs) become the keeper of the elevator pitch, and arbiter of the correctness of the implementation. This works well for a startup, as long as everyone is paid well, has plenty of options (backdated or not), gets to wear flipflops to work, and generally feels they’re making a difference. There is NO room for OJT in this model. Everyone must be a super star, or be committed to put in ridiculous numbers of hours to become one. Let’s call this model the Sink or Swim (SoS) model.

In the next installment, I’ll review a few more problems with the SoS model, then start to frame in a different model that focuses on predictability, and effectiveness, at the potential expense of efficiency.



One Response to “Sink or Swim: Why must everyone hire “Senior” Developers?”

  1. Matthew Says:

    This is the catch-22 of the computer industry. You’ve got to be a veteran member to join.

    Many problems of the industry are built around the heavy marketing done for the products and services. Why is this circuit board and cable so expensive? “Because they are all-new never-seen-before gizmos. We’ve never had anything like the virtualized, supersized, hotswappable, flip-clip, modular, scalable, gizmo 2.0 before!” Of course, the industry just repeats itself, and if you look at 1970s mainframes, you’ll see the same technology we use today.

    This marketing spreads to everything in the computer industry. Hardware is never-seen-before techology, software is never-seen-before technology, and the skills to use the software are all never-seen-before. These thoughts even lead people to believe that tested methods for market prices for companies were never-seen-before, so tech companies sold for millions of dollars that were just worthless. And, so, back to the entry level worker. Because everything in the industry is never-seen-before, the work model is the same. While it may be true there hasn’t been an efficiency-technician position before, the skills that technical people have, in fact, all been seen before in electronics and circuits. Sadly, the hiring departments are run by people who get their information from the managers who get their information from the technical marketing people, and none of these people understand the technology well enough.

    What results are want-ads for system administrators with 10 years of experience with Windows 2003 (only a slight exaggeration here). What technical workers need is a union, because there is no accreditation process and nothing stopping any bloke-on-the-street from saying they are experts in whatever technical-skill-of-the-day hiring departments are requiring. And I do.

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word