Tuesday, March 3, 2009

Mobius Strip of Priorities

It is no great secret that one of the great productivity killers in software development is context switching. Development by its very nature is a concentration driven activity. Forcing developers to modify what tasks they are working on before those tasks are complete causes it to take an order of magnitude more time to finally finish any given task.

A sure-fire way to keep developers engaged in a lot of context switching is to have constantly shifting priorities. Worse still is creating a set of priorities which does not establish a clear priority. I have seen several organizations create a Mobius Strip of Priorities, which pretty much guarantees that no clear direction is given to development teams.

The Mobius Strip of Priorities is one where the priority of project A is higher than project B, and project B is more important than project C, and of course, project C is far more important than project A. It can be very subtle, with several dozens tasks on the team plate, each with different stakeholders and advocates. There can be different criteria for priority, with product managers wanting quick wins, while VPs are wanting grand projects. It can sneak up on the unsuspecting team, and before you know it, you are following the Mobius strip around and around, looking for the edge so you can start coding.

It is the responsibility of the Team Lead/Manager to control this. Unfortunately, It is not simply a case where you can use the very effective tool of saying "no" to context switching After all, which project do you say no to? After all, each project is the highest priority. The key to preventing this, as simplistic as it sounds, is communication combined with actual decision making. Work with product managers and verify the priority list establishes priority. Spend time communicating with all the stake holders, so everyone is aware of the full picture, and can make informed decisions (one would hope they would make intelligent decisions too, but that is the subject of another post.) Don't let your developers founder in the Mobius Strip, establish the priorities clearly.