Coding Time for Managers

Update: I’ve written a much more in-depth article on this topic that was published in Dr. Dobb’s Journal on 1/7/2014.

The typical expected path of an engineer goes something like this:

  • Individual Coder
  • Project Lead
  • Team Lead
  • Manager
  • Director

At each step, their expected coding time looks something like

  • 90% (Individual Coder)
  • 80% (Project Lead)
  • 50% (Team Lead)
  • 1% (Manager)
  • 0% (Director)

This seems wrong. It is not shocking that engineering management is often found to be out of touch with the tech when they aren’t working on it themselves.

I prefer this view:

  • 90% (Individual Coder)
  • 80% (Project Lead)
  • 50% (Team Lead)
  • 30% (Manager)
  • 30% (Director)

I think managers and directors (and higher up) should be coding 30% of the time. That’s a lot of time out of a schedule, so I’ll grant, it’s unclear how to make it happen. I have a notion, though, that I’ve been trying.

The notion piggy-backs on the idea that one of the goals of a management job is to make yourself obsolete. It’s bad if things stop when you are on vacation.1 So to prevent that from happening, you should be working hard to create strong independent leaders under you.

Once you’ve done that, you should be able to spend 30% of your time coding without any ill effects. It could be 1 day a week, or blocks of time, or whatever works in your calendar. But if you’re not making the time, I think you’re doing yourself, your team and your company a great disservice.

How am I doing with this? Maybe a B-. (I’m only managing to code with about 20% of my time.) I’ve been using blocks method for a while, but am seriously considering switching to the day method and hiding for that time.

  1. I’ve come to think of this manager anti-pattern as the “hyper-owner”. ↩︎