[kplato] Functional Breakdown
Jim Sabatke
kplato@kde.org
Sun, 17 Jun 2001 16:11:13 -0500
RE: Your questions.
A project should be independed of any other project, except for
sub-projects, which we really haven't touched on yet. The ID should be
specific to the project. No task should be made available to more than
one tree (family) of projects. I don't know if sub-projects will be
part of the initial code.
Regarding code: I think that each column, or sometimes groups of
columns, should have its own class to keep calculations independent and
relevent to the column(s). We might be talking code just a bit early,
but I certainly agree with your analysis.
As far as risk. It is basically a judgment that some tasks are either
easy or hard to predict duration. Sometimes the risk may be resource
dependent, eg. a 'C' module that is to be coded by a newbie to 'C' would
be high risk. Writing documents might be low or no risk.
As far as terminal nodes. Please pardon my techno-speak. The WBS is a
general tree structure, where a task may have one or more subtasks.
Eventually you will reach a task that has no subtasks; that is a
terminal node.
Regards and thanks for the input and questions,
Jim
John D Lamb wrote:
>Looks good. I have a couple of queries and a suggestion.
>
>Is task ID specific to a project? or could tasks be available to more
>than one project. I had imagined that a project would contain an STL
>vector of pointers to Tasks. Each task probably ought to have
>a) a name (class Qstring )
>b) an id ( unsigned long ) (but owned by project or by task?) to allow
>names to be blank or duplicated.
>c) rest of list in 2.
>d) private data for calculations.
>
>My suggestion is that 5. could be covered by a generic "Distribution"
>class that could return values such
>as
>Time duration();
>Time optimisticDuration();
>Time pessimisticDuration();
>Time minimumDuration();
>Time randomDuration();
>where Time is either QTime or some sensible duration measure (possibly
>typedef unsigned long representing seconds).
>The simplest Distribution would be a "Fixed" distribution, where all
>functions returned the same value.
>More complicated distributions could return more than one fixed value or
>could be true distributions such as the Beta, uniform or triangular.
>randomDuration() could be used for Monte Carlo estimates.
>I envisage Distribution as having an STL vector of parameters.
>Initially, kplato could implement only the Fixed distribution - anything
>else that was needed could be derived later from the base class, which
>would effectively be a Java-style interface.
>
>I didn't fully follow the logic of the low and high risk. I'm sure it
>makes sense, but I can't yet see how.
>
>Also, what do you mean by WBS terminal nodes - again, probably me not
>guessing the obvious.
>
>Jim Sabatke wrote:
>
>>2. Assign Task Duration Type to tasks. Example Task Types:
>> Start On Date (Earliest Start)
>> Finish By Date (Latest Finish)
>> Work Between Dates (Earliest Start - Latest Finish)
>> Milestone
>> Percent of Project - Usefull for tasks like management hours
>>which are a function of the duration of the entire project.
>>
>>The Task Type can be taken from context. Manually entered dates could
>>be considered constraints. Where dates are not manually entered, the
>>program would be free to assign start/finish dates.
>>
>>** Important Note ** As a general rule, manually entered data should
>>take precedence over calculated data. The program should not change
>>manually entered data. One of the most annoying things about M$ Project
>>is that entered data are often changed.
>>
>>3. Assign an unchanging Task ID to each task. The Task ID would be
>>assigned in sequence starting with 1. The Task ID for a task would not
>>change if the task order is changed in any way. This is especially
>>useful for external programs that might be expecting task IDs related to
>>certain tasks.
>>
>>4. Assign task dependencies - a list of Task IDs that must be
>>completed before the current task begins.
>>
>>5. Allow task durations to be calculated from the following columns:
>>
>> "Optimistic Hours" "Pessimistic Hours" "Expected Hours"
>>"Risk" "Duration"
>>
>> The "Duration" would be calculated like:
>>
>> "Risk" = Low Duration = (OH + 4EH +PH) / 6
>> "Risk" = High Duration = (OH + 4EH + 2PH) / 7
>> "Risk" = None OH = EH = PH = "Duration"
>>
>> If Duration is entered, then OH, PH, EH all will be set to
>>"Duration" and "Risk = None"
>>
>>6. Durations should only be enterable for WBS terminal nodes.
>>
>_______________________________________________
>kplato mailing list
>kplato@master.kde.org
>http://master.kde.org/mailman/listinfo/kplato
>
>
--
Jim Sabatke
SuSE 7.1 Linux
Kernel - 2.4.0
http://www.execpc.com/~jsabatke
"People tell me that I'm fading fast, that I can't last the whole night through" Janis Ian