It’s no secret to those who know me that I hate Waterfall project planning. For a good number of years now I’ve advocated a hybrid planning approach based on ideas borrowed from both the Agile Unified Process and Scrum. Unfortunately this doesn’t always cut it in the world of enterprise development or fixed-price customer solutions and I’m often asked to produce a more traditional plan.
Like most people, I’ve used MS Project in the past and I know that it’s more than capable of producing the kind of plan I’m talking about. But I don’t use it for two reasons:
- In my experience using MS Project is a bit like stepping into a time machine – you start fiddling with resource availability and dependencies and , before you know it, hours or even days have disappeared without trace. Of course, this time machine only supports going forward in time – you can never go back
- I don’t have MS Project installed on my laptop.
While I’ve tried some alternatives, I’ve found that MS Excel is more than adequate for my needs and I’ve come up with a simple(ish) template that I can reuse fairly quickly and painlessly. You can find a copy here.
The basic premise is that I have a column for each working day and rows for the various tasks and sub-tasks. Each row has a value for estimated effort and an indication of who will be assigned that task (I normally use initials). Then I place “1”s into the cells in the main working area to assign dates to tasks. If the sum of the “1”s in the row doesn’t add up to the estimated effort then the effort box is highlighted to let me know I haven’t finished planning that task yet. The start and end dates for the tasks are worked out automatically based on the first and last entries in the row (I’m not going to take credit for those formulas – I got there after some keen Googling and a lot of trial and error).
I also keep a number of rows at the bottom, one for each person (resource), to help me avoid allocating someone to two tasks on the same day – if that happens a red dot appears instead of a black dot. Empty dots just mean that person is not required/expected to work on this project on that date. In the past I’ve factored in additional rows to include leave plans for each person on the project to ensure I don’t accidentally allocate someone work when they won’t even be at work, but mainly only if the plan covers major holiday periods like summer, Easter or Christmas.
The following screenshot (click for a larger view) pretty much shows it all – albeit with totally fictional data … no comments about the dodgy tasks please! There are quite a few lookups in there to make things work, dig around the various cells and play with the formulas.
Of course there are plenty of restrictions with this approach. For example it tends to assume a single person is assigned to each task; I could add two rows for each task, but I rarely need to worry about that sort of thing as my team is usually small and I can carve the work up on a per-person basis. Another thing is that I have to sort out the task dependencies myself; again that’s not normally a big deal for me given my team and project size. And I have no way of applying any kind of “utilization” factor, but then this is just a strawman plan. Finally, the whole thing is still fairly manual; even with the formulas, it’s OK for planning two to three months at a time, with a small team, but anything bigger would probably be tedious.
I know plenty of people will say this approach is crazy and no way to plan out a project properly. Others will just write it off because they hate Excel (or any MS Office tool). But, honestly, it works for me and maybe it will help someone else … if so, let me know.