Posted on 19 July 2004 under General

Working alone as a developer is scarey and dangerous. You might not notice while you are doing it but sooner or later (perhaps years later) you will realise that you were walking a swaying tightrope above a pit of angry snakes (and customers).

A single person team is any team in which an individual has sole responsiblity for production of self-contained software that will take more than about a week to produce. Why is this dangerous? The simple answer is that everyone is fallible and team-mates increase the likelihood of catching a problem before its too late. A more complex answer is that our personal blind-spots and preferences for differing types of work will naturally (and silently) lead us to downplay aspects of projects we don’t like and to ignore our own shortcomings. In addition, personal shortcomings often aren’t recognised by individuals.

If there is a project manager then the risk is reduced but not eliminated unless the project manager is intimately involved with the development (ie does design and code reviews, examines testing schedules and results, etc).

Suppose you have been given sole responsibility for working on something and you are aware of the risk, what should you do? The first thing to do is to speak to the person who has asked you to do the work. Ask its its okay to swap some of your allocated time with someone who will be able to review your work or at least act as a regular sounding board. As long as you can stay within budget you should have some leverage with management types. The better managers will be pleasantly surprised by your honesty and will gladly help to get your work reviewed. The worst managers will act as if you have admitted that you might make a mistake (which you have - these guys are so on the ball) and will treat you with disdain and/or ignore your request. I don’t have any great strategies for dealing with the worst managers apart from calling them names and quitting (gentle mocking doesn’t seem to work).