M
Mike
Hi all,
I have a few questions about the best practices and settings for
scheduling/leveling in Microsoft Project (specifically 2k7.) I
recently changed companies and I have found that much of what they do
with Project seems, well.. pretty much wrong. I'll explain how we
work with Project currently, then ask specific questions after my
summary.
Currently at the company (an IT Software/database company) we have ~30
projects (or thereabouts), which we insert into one big master
project. We manage each of the projects individually, each project
being assigned to one of ~5 different PMs. Each sub-project uses only
Enterprise pool resources, we do not allow local resources to be typed
in or used... so each project in the Master project shares the same
pool of resources.
Project 2k7 is currently setup to do "Automatic" calculation in the
application's options (default is Manual). The leveling options are
set for manual, priority set to "Priority, Standard", and the only
checked option is "Leveling can create splits in remaining work."
Now, here is the kicker. From our management, we are only allowed to
use one constraint type, which is "Must start on." Everything else
must be set to "As Soon As Possible." We do use predecessors,
although the templates we're required to use have a lot of bad logic.
We're told to zero out the remaining hours of tasks we don't use in
the template, not to delete them.
So a couple times a week, our management asks us to "run the
master" (ie - schedule and level everything in the master project.)
The results, as some may have guessed, are sporadic at best. Since
we're not allowed to use "must finish on" or "finish no later than"
constraints, tasks are all over the map. For example, this week
requirements gathering will be finished on one of my projects. There
was an hour left of requirements gathering on a single task, which,
after that was complete the next phase of the project would begin.
However, the scheduling engine scheduled that remaining hour to occur
in September, thus pushing my entire schedule out for the next phase
and beyond to start after that task in September.
This is happening all over every sub-project in the master. Tasks are
split and pushed out into whatever date the scheduling engine thinks a
task needs to be done. Recently management decided that the way to go
about fixing this was to start putting priorities on all projects and
tasks. So now we're going through each task and trying to guess what
priority to make it, to force the scheduling engine to schedule it
sooner.
A side effect of this method is that we don't really know when
resources in the future are over-allocated. We may have a date in the
future, say 6 months from now, where 5 tasks MUST be done in a single
week, with a single resource that could be booked for 100 hours in
that single week, but since we use "asap" constraint type and let the
engine just flatten it out and push the schedule, we don't really know
that.
One other side effect of the scheduling/leveling we're doing is that
it continually reallocates resources. I can type a resource in and
say I want them at 75% allocation, but after the scheduling/leveling
engine is done, that resource might say 13% allocated, or 150%, or
even 4000%.
Naturally, the project teams that are trying to use the project plan
as a schedule are dismayed. They don't even look at the project plan
anymore, and many have in fact created their own "milestone" charts in
a regular word document just so they can keep track in their own mind
when something is coming up on a project. Which, I can't really blame
them.. in fact I've encouraged it, as my pleas to alter some of our
practices have fallen on deaf ears so far.
So, if you've read all of that, here are my questions:
1) Of the documentation I've read, scheduling calculations should be
manual, not automatic. Is that true? What are "best practice"
settings for the Project schedule/level engine?
2) Is there a way to prevent resource allocations from being changed,
or is that a function of our calculation being automatic?
3) If a project is being resource driven, is that a valid reason *not*
to use Finish constraint dates on the few tasks that we *know* need to
be finished on particular days?
4) Are there any other ways (of which I'm not thinking) that we can
use the scheduling/leveling engine to make our schedules look right,
*without* using normal constraints? Does anyone see any good reason
to withhold using the various constraints as necessary so the schedule
is correct?
Once again, if you've read all of this, thank you for your time.
Mike
I have a few questions about the best practices and settings for
scheduling/leveling in Microsoft Project (specifically 2k7.) I
recently changed companies and I have found that much of what they do
with Project seems, well.. pretty much wrong. I'll explain how we
work with Project currently, then ask specific questions after my
summary.
Currently at the company (an IT Software/database company) we have ~30
projects (or thereabouts), which we insert into one big master
project. We manage each of the projects individually, each project
being assigned to one of ~5 different PMs. Each sub-project uses only
Enterprise pool resources, we do not allow local resources to be typed
in or used... so each project in the Master project shares the same
pool of resources.
Project 2k7 is currently setup to do "Automatic" calculation in the
application's options (default is Manual). The leveling options are
set for manual, priority set to "Priority, Standard", and the only
checked option is "Leveling can create splits in remaining work."
Now, here is the kicker. From our management, we are only allowed to
use one constraint type, which is "Must start on." Everything else
must be set to "As Soon As Possible." We do use predecessors,
although the templates we're required to use have a lot of bad logic.
We're told to zero out the remaining hours of tasks we don't use in
the template, not to delete them.
So a couple times a week, our management asks us to "run the
master" (ie - schedule and level everything in the master project.)
The results, as some may have guessed, are sporadic at best. Since
we're not allowed to use "must finish on" or "finish no later than"
constraints, tasks are all over the map. For example, this week
requirements gathering will be finished on one of my projects. There
was an hour left of requirements gathering on a single task, which,
after that was complete the next phase of the project would begin.
However, the scheduling engine scheduled that remaining hour to occur
in September, thus pushing my entire schedule out for the next phase
and beyond to start after that task in September.
This is happening all over every sub-project in the master. Tasks are
split and pushed out into whatever date the scheduling engine thinks a
task needs to be done. Recently management decided that the way to go
about fixing this was to start putting priorities on all projects and
tasks. So now we're going through each task and trying to guess what
priority to make it, to force the scheduling engine to schedule it
sooner.
A side effect of this method is that we don't really know when
resources in the future are over-allocated. We may have a date in the
future, say 6 months from now, where 5 tasks MUST be done in a single
week, with a single resource that could be booked for 100 hours in
that single week, but since we use "asap" constraint type and let the
engine just flatten it out and push the schedule, we don't really know
that.
One other side effect of the scheduling/leveling we're doing is that
it continually reallocates resources. I can type a resource in and
say I want them at 75% allocation, but after the scheduling/leveling
engine is done, that resource might say 13% allocated, or 150%, or
even 4000%.
Naturally, the project teams that are trying to use the project plan
as a schedule are dismayed. They don't even look at the project plan
anymore, and many have in fact created their own "milestone" charts in
a regular word document just so they can keep track in their own mind
when something is coming up on a project. Which, I can't really blame
them.. in fact I've encouraged it, as my pleas to alter some of our
practices have fallen on deaf ears so far.
So, if you've read all of that, here are my questions:
1) Of the documentation I've read, scheduling calculations should be
manual, not automatic. Is that true? What are "best practice"
settings for the Project schedule/level engine?
2) Is there a way to prevent resource allocations from being changed,
or is that a function of our calculation being automatic?
3) If a project is being resource driven, is that a valid reason *not*
to use Finish constraint dates on the few tasks that we *know* need to
be finished on particular days?
4) Are there any other ways (of which I'm not thinking) that we can
use the scheduling/leveling engine to make our schedules look right,
*without* using normal constraints? Does anyone see any good reason
to withhold using the various constraints as necessary so the schedule
is correct?
Once again, if you've read all of this, thank you for your time.
Mike