Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to force tasks in Microsoft Project to be "scheduled" based on priority and resource assignment?

Tags:

ms-project

I needed to do some higher-level project planning that doesn't really fit into the workflow of our day-to-day task management tools (FogBugz and whiteboards), so I figured I'd give MS Project a whirl (it being free through MSDN).

I've hit a pretty solid wall, though. What I have is about 120 tasks, a set of people (referring to them as "resources" is amazingly harsh to me, but I digress), and a rough prioritization of those tasks. Some tasks have a person assigned to them, some don't (simply because we don't know who's going to do what yet).

Fine so far. The problem is that, except in those relatively rare instances where tasks are linked (most of the work involved can be done in any order), all of the tasks are scheduled to run concurrently. What I'd like to do is have Project figure out some scheduling scenario based upon:

  • the defined tasks
  • their relative priority
  • any links/dependencies, if defined
  • the availability of the people that I've defined, while respecting the explicit "resource" assignments I've already made

Is this possible? I've fiddled with the resource leveling dialog and read more MS Project documentation than I'd care to admit, so any suggestions are welcome.

FWIW, I noticed in my searches this question on Yahoo Answers; the person there seems to be after roughly the same thing, but I figured asking here might be more fruitful.

like image 595
cemerick Avatar asked Jan 29 '09 12:01

cemerick


1 Answers

After some further experimentation, I've found a partial solution for my own question. If you:

  • assign a person to each task
  • specify in the Advanced tab of the Task Information panel that all tasks should (select all your tasks and click the Task Info button to update these properties for all tasks):
    1. use a calendar (called "standard" in my project file)
    2. not ignore resource calendars when scheduling
    3. have a constraint of As Soon As Possible (which is the default, I believe)
  • Choose Level Resources from the Tools menu, and specify:
    1. Look for overallocations on a Hour by Hour basis
    2. a leveling order of "Priority, Standard" (which rolls in the relative Priority values for each task you've defined when setting the schedule)

Click "Level Now" in that leveling resources dialog, and all of the tasks should be rescheduled so that they're not running concurrently, and that no one is "overscheduled".

You can ostensibly have Project automatically reschedule things as tasks are added, edited, etc., but I suspect that would result in chaos, as there's nothing about the resource leveling process that makes me think it's "stable" (e.g. that two levelings performed back-to-back wouldn't yield the same schedule).

It would be nice if Project would "fully allocate" whatever people you have configured, so that you don't have to assign people to tasks just to have those tasks scheduled in a way that is consistent, if not correct. Any thoughts on that front would be most welcome.

That seems (and feels!) like a lot of work, but I think the result is relatively decent -- a super-high-level view of a project that allows for a high degree of day to day flexibility, but still affords one a way to reasonably make plans around "interdisciplinary" activities (e.g. once this is done, we need to buy those four servers, make sure our legal stuff is taken care of, and pull the trigger on that marketing push one week later, etc).

like image 136
cemerick Avatar answered Sep 19 '22 16:09

cemerick