[kplato] Functional Breakdown (comments)

Jyry Kuukkanen kplato@kde.org
Tue, 19 Jun 2001 22:04:50 +0300 (EEST)


Hello again

This a long posting...
 
Someone (sorry, can't remember the name and already deleted the post) who
threw in a data structure of a project and then Jim Sabatke had his own
view, which to me sounded a lot better. I very much agree with Jim's
view.
 
However, I feel there might be another approach to this whole thing.
The traditional structure is from the major down and Jim made a
very good point at mentioning that all these sub-tasks are actually the
same, just at a different level; lower or upper. Right?

My idea is to work the other way round, so that there are *only* tasks and
they are assigned a level and optionally a parent. This way we can
eventually aggregate them into a project.

Please read to the end before making comments :)


Here is a description of a basic task structure what I would feel very
comfortable with:

("*" indicates a key)
task {
  *id int
  description str
  estimated_duration datetime
  start_time datetime
  done_time datetime
  parent_task_no int
  level int
  phase int
  status int
}

dependencies {
  *taskno int 
  *dep_task_no int
}


The idea is that task is a job if it does not have a parent_task_id (that
refers to the same table/structure).
A job task is a concrete job to be done and a task is anything between
a job and up to and including the actual project.

This way a project can be assembled by many people introdusing jobs that
should be included to the project (phase=suggestion/idea) and then by some
manager to put them in place in the time line (phase=included).

"status" declares whether this task is (yet) to be actually started, in
progress or done etc.

This structure may at first seem to fight against normalisation rules when
it comes to relations in a database, but ones one realises that a project
is not really driven by data structures but by application and the user,
then, I hope, this is the model to go by. Well, surely at least one way to
approach the problem...

For clarity purpose, one more note: those structure above are all of it, 
but the most essential... :))


--Jyry
C:-(    C:-/    C========8-O    C8-/    C:-(