Say you're the lead developer on a small, five-person team. You've been working for weeks on a project, and the team is just starting to jell. Your team members range in experience from a senior architect to a junior programmer just out of school. Then your boss calls you in and tells you the senior vice president was just on the phone chewing him out, and he wants your project done yesterday. As it turns out, this project is highly visible and had been promised for a long time. The users have a job to do, and this software is vital. If it doesn't work, and work well, then you'd better update your résumé.
The last time you were on a team in this kind of high-pressure situation, the project was a nightmare. Team members went down false paths for days at a time and you had to play the hero, jumping in and working 40-hour weekends to fix serious design problems. There were interminable meetings with senior managers, stubborn bugs that never seemed to go away, and too many late nights of coffee and pizza. And when the team finally delivered something, users hated it. It seemed like every button they pressed had a bug, and entire features that they were expecting never materialized in the software.
The Quick Kill
Many teams find themselves in situations like this every day, and a lead developer faces serious challenges. He doesn't necessarily directly manage his team, but he's responsible for getting the software out the door. He does have the team's respect, and when he makes a decision, people will generally follow him. But the lead developer's job isn't managementit's development. He needs to spend most of his time designing the solution, designing the software, and building the code.
Ideally, project management takes either a dedicated project manager or a lot of the project lead's time. But what do you do if you're leading a team, and you have neither the time nor the budget to do project management "right"? It's difficult for someone in this position to even know where to start. That's the idea behind "quick kill"a highly directed system aimed at "killing" only the most pressing project problems. In other words, these practices give project leads a good trade-off that yields the most gain for the least effort.
Quick-kill project management consists of three techniques that leads can use to help their project produce what the boss expects and users need:
- Vision and scope document
- Work breakdown structure
- Code review
Each of these techniques takes little time to implement, and helps the team avoid some of the most common and costly project pitfalls. Using them, leads can vastly improve the odds of delivering acceptable software.