First, Wikipedia's definition of "software bug"
(
http://en.wikipedia.org/wiki/Software_bug) fully includes this
problem, which is a "flaw" that "produces an incorrect result."
This is a bug.
... it does put the onus on you to think ahead
to what resources you will employ when you estimate
the durations, but again, that's just good PM
practice anyway
I agree in general. However, it's not reasonable to say that the PM
always knows exactly who will be assigned to each task (and hence the
expected availability) as he is fleshing out the project. It is
perfectly normal and rational to have a pool of potential workers from
which you can choose a "best fit" for the project, especially in an
environment where the project is a long way from actually executing or
in a fast-paced environment where employee availability aren't always
known well in advance. Or how about simple informal settings where
teams are assembled as the project evolves?
Suppose "The Project" includes task A. Further suppose "The Project"
will be executed 2 months from now, and at the present time it is not
clear which employee will be assigned to this project? If you support
MS Project's bug, you are punishing this PM.
Here's yet another example: suppose a resource has different levels of
availability over the course of a project. Does the PM have to keep
track of this while he's assigning task durations? Certainly not!
Why punish this PM just for the sake of a faulty algorithm?
In fact, isn't one of the premises of Project that the PM DOES'T have
to worry about DOESN'T have to worry about resource availability? I.e.,
the tool will take care of it for you? If that's not the case, why is
the feature even present?
If you are going to argue that the PM has to estimate duration based on
resource availability, you are making the PM's job much harder just so
the software can refuse to handle a simple mathematical calcualtion. Is
that defensible to a rational person?
All the PM should have to do is answer this question on each task: "How
many hours would this take if I had uninterrupted labor assigned to
this task?" That's it. Project is supposed to take care of the rest for
you. Unfortunately, Project screws this up in the scenario that started
this thread.
We have historical data to estmate duration but
we very likely do not have as reliable a way of
estimating man-hours required.
Nice example but it doesn't address my issue. You're talking about how
to establish an initial time estimate. I am talking about how Project
FUBARs the Work field associated with my initial estimate.
Enter the task name, leave the duration at its 1
day default as you enter the new task, and enter
the number of man-hours you estimate for the work
in the work column. When you assign the resource,
set its units to what you want them to be in the
assignment dialog box and Project will calculate
the duration that would produce the input work at
the assignment percentage designated. What's so
hard about that?
I agree that it's easy. It would be nice if it worked. The problem is
that is not how Microsoft intended for me to use the product. Try that
example I gave in the post dated 4-12-06 5:59 PM. You'll see that if
you enter Work but leave Duration untouched, when you assign the first
resource, Project does indeed put a valid value into Duration, but it
trails it with a ? symbol. This means it's an "estimated duration"
(
http://tinyurl.com/p2hnp), and my prior experience is that using
estimated durations leads to other problems and triggers unnecessary
warnings. Is that not correct?
And why is it estimated? It it no longer the case that W=D*R? If you
know W and R, then you can calculate D. How is D an estimate in this
case, but it wouldn't be an estimate in this case:
1. Create a new task.
2. Enter 1 hour for Work and Duration.
3. Assign a resource.
4. Enter a different Work value.
Viola! You have a new Duration, and it's not an estimate!
And why is it that when Project screws up the Work field in the bug I
pointed out, that new Work value is not an estimate?
See the logical flaws?
Microsoft's intent is clearly for me to enter an initial value into the
Duration field and leave the Work field alone. That's why the Work
field is initially hidden, and that's why the Duration field becomes an
"estimated duration" if you're not careful. I don't like using
Microsoft software against the intended use becuase that often leads to
problems. (Note that I am not a Microsoft hater. Microsoft software
almost always anticipates reasonable usage patterns; this is a big
exception.)
I am not sure this merits any further discussion except to alert
Microsoft of this bug. I'll restate the simple solution:
IF a project has these properties:
1. No current assignment.
2. No current value for Work.
3. A valid value for Duration.
THEN upon the first resource assignment, Project should FIRST set Work
equal to Duration AND ONLY THEN should use W=D*R to update D (and NOT
change W).