The Planning Game

Posted on December 24, 2008
Filed Under agile, development | Leave a Comment

Successful projects are continually planning. Big plans (release), small plans(iterations). The best plans are clear, simple and easy to change. Most importantly, plans are the result of a collaborative team effort.

Successful teams value planning over plans. However, things are really broken when the reverse is true. We’ve all been there before, trapped within the mother of all project plans. You don’t need a sixth sense to see what’s coming – we see dead projects! Jeff Goldblum in Jurassic Park sums up beautifully the typical phases within a plan-only project:

“Ooh, aah, that’s how it always starts, and then later the running and screaming… “

About eight years ago I joined a project to seed Java knowledge. The team was new to both the language and object technology. After an initial requirements discovery phase and some preliminary high level designs, the project manager called a team meeting to discuss the plan. We all sat down ready to start planning. I love planning sessions. Instead, in true Blue Peter fashion, out came a completed Gnatt chart that the project manager “had prepared earlier”. My heart sank as he handed out the “final” plan with all the final steps to success. Upon closer inspection, things were much worse than I had first feared. Armed with the initial designs, add a generous sprinkling of Java for Dummies, and our friendly neighbourhood project manager added every class as a line item within the plan.

Then, he did it. Oh boy, did he do it. He asked us to estimate each class on his project plan. So for the AbstractDataFactory class, 1 day, StringUtils, 2 days. And so it began, every day at 4pm GMT, we had a status meeting where each team member provided an update on % Complete for every class that they were responsible for. After 3 of these 2 hour daily meetings the team rebelled. Our project manager was suffering from a bad dose of plan-blindness. He could NOT see past the plan. The plan was the deliverable. The project been relegated to being the dark horse of the family. We no longer planning. Am pretty awful place to be really.

Fruitless discussions between the team and the project manager brought about no change. Time was a premium so we made a decision. Project over plan we agreed. The team started scheming. From our perspective, the plan was total project waste. I won’t even tell you what happened to the plan when we re-factored the code base on day two. So we looked at all the classes on the plan, wrote a simple application that sent an email that bumped along our % complete to successfully deliver the plan. The email basically told our project manager want he wanted to hear, delivered the plan, and immediately re-claimed a valuable 2 hours per day per developer. We then set about successfully delivering the project.

So what? First of all, I’m not saying you don’t need a plan, but the plan is not as valuable as the act of planning. Secondly, continuous planning is essential. If you sat down with your team now, handed them a piece of paper and asked the following questions:

  1. What is your next deliverable?
  2. When is it due?
  3. Are you on track?

If your team members come back with different answers, something is broken. Finally, some people are good programmers, others are not. Same for planning. Some people are just not wired up to plan ahead and prefer to just do it. That’s not a big deal but you just need to be aware of that and encourage them to participate in planning sessions.

Comments

Leave a Reply