What’s better — producing a detailed project plan in advance or figuring it out as you go?
It’s a bit of a trick question because the correct answer is neither. Here’s the reasoning.
Let’s say that you could plan out every project detail before beginning to write any code. Let’s not worry about how long that would take. If you could do it, the rest of the project would be simple. You wouldn’t need a project manager or Scrum Master. All you’d need is someone to track the team’s progress against the plan. If anyone deviates from the plan, replace that person with someone who can follow instructions. Simple.
Conversely, if you abandon up-front planning and simply jump into writing code, the team will start out heading in multiple directions. Without a clear plan, everyone will apply their own judgement. Maybe the code will fit together and maybe it won’t. It will take a few iterations to get everyone in sync and moving toward common goals. If you like living on the edge of chaos, this is the way to go.
Clearly, neither of these approaches is sensible.
If you spend too much time planning up front, the customer will get frustrated with what appears to be lack of progress. Even worse, the business needs may shift and the team will end up solving the wrong problems.
If you don’t do any planning up front, the initial chaos will cause friction within the team. The customer will likely sense the chaos and the team’s credibility will be damaged.
What’s the appropriate amount of up-front project planning?
There’s no simple answer. But wait, it gets worse — the amount of up-front planning needed will vary from project to project, release to release, team to team, and customer to customer. In other words, the amount of up-front planning time you need for your next project may be more or less than you’ve used in the past.
Here are a few things to consider:
- Has the team been together through several projects?
- Are the team members experienced in working on similar projects?
- Is the team familiar with the technologies required?
- Is the team well-versed in using the tools needed?
- Is the customer in a lightly-regulated business?
I could go on but you get the idea. The more ‘yes’ answers above, the less time the team will need to spend planning at the outset. Looked at another way, ‘yes’ answers suggest that the planning can be less detailed — up front.
Over the course of the project, the total time spent planning will likely be about the same whether most of it occurs at the outset or it’s spread out over multiple iterations. Plan-up now or plan-up later.