Tuesday, March 25, 2014

Top tip #2 - Resource modelling in MS Project

One of the more important (and somewhat intractable) questions in project management is "How long could it take...?". Intractable because in the absence of a data driven answer, one or other existing 'compelling' dates is summoned out of air and a general preference articulated to complete the work in question by that date. Around 24 hours later (sometimes considerably less) that preference will assume the weight and authority of a board sponsored deadline.

If you're to dodge this bullet, there is a requirement for some preparation. First, you'll need to anticipate the question and the forum in which it will arise. Ideally, you control this. Next you'll want some sort of high level process or plan. The following is the sort of thing you should be able knock up in about 2 seconds and the only real requirement is for a fag packet to record it on. If you don't have the information needed to define the work to this level of detail - stay late until you do. I've included an optimistic forecast (in green), a pessimistic forecast (in red) and a median forecast in (orange).

Now in fairness, if you've got a requirement for a very large multi-hundred line project plan - that's not the sort of thing you can assemble in about the time it takes to drink a cup of tea. However, don't despair - you will nevertheless be able to apply the technique of resource modelling which I'll explain in a short-while. 

Where this technique really comes into its own is for activities which comprise a cyclical process which you'll negotiate dozens, hundred or even thousands of times. This could be migrating applications, migrating services between data centers or a large volume procurement type activity. Or anything for which there is a defined process. Typical project stuff, not quite all the same and not all different - but the sort of bread and butter activity that, as a professional change practitioner, you'll be comfortable with. And what you're really asking MS Project to do is use a set amount of resource optimally - something which would be extremely challenging to do via other means

Our process above has four steps roughly defined with some outline forecasting on work and duration. It translates to 4 lines in a project plan and it hopefully isn't to difficult to see how we got from the illustration above to the the outline plan below. I've set out the three different scenarios (optimistic, median and pessimistic) in green orange and red respectively.

I've made sure I've included both the work and the duration and you can see in the excerpt below I've assigned some resources (called optimistic, median and pessimistic).

Now, for reasons which are are better explained here you'll want to change the MS Project default from fixed units to fixed duration for this sort of modelling. But there is one little gotcha. When manipulating a project plan with the setting of 'fixed units', in theory MS Project shouldn't change the work or the duration when allocating resources. But actually - it does change the work on the first allocation of resources. When this happens you'll just want to pull it back to the original values. For the purpose of this activity - you'll only have to do this once for the 12 tasks shown below.

So - you might be thinking this seems like quite a bit of faff of no obvious gain. Bear with me and take a look at the next excerpt.

What I've done is created 10 process cycles under each forecast (optimistic, median and pessimistic). If I wanted to I could create 20 or 200 quite easily (and very quickly just cutting an pasting). MS Project very handily uses 'relative' (similar to Excel) predecessors and you don't need to jiggle these - it's cut and paste to your heart's content and in practical terms your limitation first and foremost is going to be your computer's capacity to level resources on project plans of many hundreds of lines .

Now, you have fair degree of flexibility in what you do next. You can plan for 2 resources or say 8 resources. (Just bump up the Max Units of the resource to 200% or 800% for instance). You can (if you must) put in constraints to that each process cycle must finish sequentially but as far as possible let MS Project do it's job of using the resources to the best possible degree. 

And, what I usually present to stakeholders is something that looks a bit like this. This is simply the timeline in MS Project with the appropriate summary tasks added to it. 

If I'm asked - I'll also supply the very first bit of network diagramming too. 

Note that one of the things I've done is tied in the time-lines with resourcing right from the get go. That's crucial as it starts to set in place the expectation (and dependency) that if I don't get the resources - I won't hit the dates.

What I'll do in a future post is put forward some fairly re-usable approaches using Excel and SharePoint for how you can prop up a workflow and have it generate rudimentary dashboards in real time to record and track the actual work being done.