Last week our project manager took off to OSCON in Portland, leaving me, the lead developer, in charge of managing our small development team. Facing a gauntlet of client requests, developer questions, and miscellaneous tasks that fall somewhere in between, I had to adapt quickly and learn how to manage a development team if I was going to stay afloat and oversee our team’s (including my own) day-to-day workflow. Here are a few things I learned about managing a development team when the project manager is away.
Prioritize Client Demands
Clients are not equal. Some are a higher priority than others. Knowing which clients need immediate attention is difficult enough. Saying ‘no’ to low priority clients is more difficult. To prioritize the workload for the week I had to consider factors like who pays on time, the difficulty of the task, when they need it done, and overall client relationship. Whatever method you use to prioritize client requests, be honest with them and yourself that you can’t get it all done at once.
Delegate Tasks
A developer’s natural response is to try and get it all done himself. There is something about the code we write, we have a hard time trusting it to anyone else. As a project manager you have to delegate to the team, balancing out the workload evenly so that no developer is overwhelmed. My approach was to use our web-based task management application, Intervals, to estimate time and assign tasks to our team. Then I would check in daily with the team for an update on what they’d accomplished, and assign more tasks accordingly.
Cross Train
A development team will draw its strength from having diverse specialties. On our development team we have a javascript guru, a database wiz, and an expert on a rare type of voodoo known commonly as regular expressions. When one of us is out it takes the others a little time to dive in and interpret our code. It is important for developers to regularly discuss and share code. We hold weekly meetings to discuss new code development, and often times do pair programming to keep our team in good alignment.
Life and work will throw more at you than is humanly possible to accomplish in the 24 hours we are given each day. You will have to prioritize, delegate, and cross train to deliver web sites efficiently. Otherwise, you’ll just spin your wheels wondering why you aren’t gaining any traction on your work week.