Making Good Software

A blog by Alberto G (Alberto Gutierrez)

Written by Alberto Gutierrez

October 6th, 2009 at 5:47 pm

Planning killed the software star.

with 5 comments

This is how planning usually happens: Fred, the project Manager, spends weeks creating a really cool, colourful Gantt Diagram, then, it is presented to the team which show some concerns so Fred does a few changes and the plan gets approved… as the time goes by, the plan gets more and more outdated BUT amazingly Fred doesn’t blame the plan and he even keeps pushing people to follow it.

This dynamic, which is obviously wrong, is sadly a dynamic that lots of teams still follow; these teams are blinded by the plan. Blinded teams forget that they main purpose is to ship the best solution as possible, not to follow a plan.

A plan should be used to

  1. Evaluate the risk of not delivering on time. If my deadline is in two months, and my high level estimate shows a figure of one month, then I can relax, if it shows two months, I will have to look the estimation in more detail.
  2. Have a high level expectation of the next deliveries.
  3. Help communicating the different stakeholders. In your project may be involved Marketing, some management, the customer… A plan always helps communicating by setting the expectations.

A plan shouldn’t be used to

  1. As a contract that details the specifications of the product and their deliveries. If you see your plan as a contract, you won’t be ready to accept any change, and change management is fundamental for software development.
  2. As a one-off big activity performed at the early stage of the project.
  3. As a tool to press developers to deliver in unreal deadlines.

Make everyone understand that the plan is just a tool not the end.

This is the most important thing to do, when the stakeholders see the plan as an end, or a contract, the project usually ends up having the different parties not collaborating at all.

Continuous planning.

“In preparing for battle I have always found that plans are useless, but planning is indispensable”. Dwight David Eisenhower.

Planning adds a lot of value to the team, instead of BPUF (Big planning up front) keep planning every day and revisit your original estimations as needed.

Don’t detail your planning further than one week ahead.

Detailing more than one week of work ahead is almost impossible, so just don’t do it, also, bare in mind that: detailed planning and high level planning usually are equally accurate.