Sunday, October 14, 2007

Make Yourself Dispensable

There is a lot of unique dynamics to teams that run for a long period of time. Eventually, as people roll on and off the team, some team members will have more information that others. Some members will have a wealth of technical and non-technical information, and their departure can leave the team less confident about its ability to make progress without taking a hit on productivity.
More knowledgeable team members have an extra responsibility. The burden mainly lies on them to share their information with other members, and to make themselves more dispensable.
While this goes against the common wisdom of job security prevalent in many environments, smart developers do not want to be stuck on the same project for an extended period of time. However, this is typically challenging to achieve. Here are some ideas:
  1. Make sure you always pair on the more difficult tasks.
  2. If you find yourself the only goto person for certain tasks, make sure you have a pair. And the next time they come your way, delegate.
  3. Get information out of your head to the team's wiki, especially those questions you are the only one able to answer.
  4. Instead of signing up for difficult tasks, let others dive in, and support them instead.
  5. Automate your routine tasks. When asked to do something, deliver a do-it-yourself tool instead of, well, doing it.
  6. Take some time off and see if you get any phone calls :-)
Another issue with projects running for a long time is maintaining team history, in terms of lessons learned, how issues were resolved, etc. Let that be the subject of another post.