[kplato] projects, subprojects and tasks
j.d.lamb at btinternet.com
j.d.lamb at btinternet.com
Thu May 8 19:36:16 CEST 2003
I've been a bit busy reccently, but am catching up on all of this.
> from: Heiko Evermann <Heiko.Evermann at gmx.de>
> date: Thu, 08 May 2003 13:40:46
> to: kplato at kde.org
> subject: Re: [kplato] projects, subprojects and tasks
>
> Hi Thomas, hi everyone,
>
>
> After some more analysis, this is what I found:
>
> Concerning Milestones:
> MrProject does not seem to have them:
> http://www.mrproject.org/user-guide.php does not tell us about them.
> MS project has a very simple way of defining milestones: if a task has a
> duration of 0, then it is a milestone. There do not seem to be further
> restrictions. It can be predecessor or successor to other tasks, of
> course. It can even have subtasks. I tried it out. If you have a task A
> with two subtasks B and C and note 0 duration for B and C, then A has a
> duration of 0, too, and all three get displayed as a milestone. That
> means they are displayed as a diamond and the date is displayed.
>
> So my proposal is to drop the class KPMilestone and just to handle tasks
> with zero duration differently in the display. I think this makes things
> easier.
Tasks with zero duration can already be handled: indeed they are strictly necessary for CPM.
I wouldn't personally use milestones, but they don't get in the way of any other code and may later be useful for resource handling. I think that if someone wants them, they should can have them, otherwise they can ignore them.
>
> Concerning subtasks:
> I am more and more convinced that it would be better not to use
> KPTProject for Tasks having subtasks, as this makes the object handling
> lot more complicated.
I think that was my idea though I might be mistaken and I don't take my ideas personally: about 90% of them just don't work.
I think KPTProject for tasks with subtasks does work. Whether the UI presents the project this way is another matter. But it has a number of advantages in terms of programming. For any task we need sometime to can work out its duration. A simple task and a task with subtasks work out durations in a different way. Arranging tasks and subtasks like this lets us use recursion for calculations.
There are some other advantages and disadvantages. It is a little harder, but not impossible, to disassemble a subproject. On the other hand, it makes it easier to copy whole subprojects from one project to another.
Note that the project/subproject need not be the same thing as work breakdown structure. I recall having a discussion with Thomas about this in which I concluded he was right about how things should be structured.
>
> Concerning KPTProject:
> At first I thought it might be completely unneccessary. But something
> else is neccessary: I think we ought to have a model for the program,
> following MVC. kdeedu/kstars, for example, hase a model called
> KStarsData, where all application data is collected. Of this we have one
> instance. If we have something like this in kplato, we could even have
> an empty project. Just try this: Run kplato, state that you want to
> start with an empty document. kplato then asks you about project data,
> which is a bit surprising as you stated that you wanted to start with an
> empty document. Cancel that dialog, and you get an almost empty view, in
> pert as in gantt, it just looks a little bit funny. So it would be good
> to have a model for the whole program to work on. This model should be
> able to hold an empty list of tasks to get an empty display in the
> beginning. So far so good. But this model must support adding and
> deleting tasks, so in the end it must be able to do what KPTNode already
> knows to do. Apart from that it should hold other things like author
> information etc. So my conclusion is that the main model best is
> modelled as a subclass of node.
That looks interesting.
>
> Summary:
> * base class KPTNode
> * class KPTTask : KPTNode for tasks and subtasks
> * class KPTProject : KPTNode for the main model. This does not get
> displayed in the gantt/pert views. For its properties (we might invent
> many) we will have a menu entry: "edit project properties" and a fitting
> dialog.
>
> Some things in the views etc. will have to be changed and some code will
> have to be moved, but not that much. After that, implementing further
> edit capabilities like indent/unindent should be easy.
>
> Comments?
>
One of the criticisms of M$ project is that it is very restrictive about what the project Gannt chart looks like. I'd quite like to see the possibility of having either/both of the following, though the UI designers might say I'm asking for too much:
1. A Gantt chart that lets you specify days/hours as holidays/non-working times. I think MRProject already does some of this. I's certainly like to be able to turn individual days off or specify the start/finish times.
2. The possibility to display the Gantt chart without a calendar and with variable scale (e.g. display in days or hours or weeks of
total time, ignoring weekends, etc.) This would be useful for me: the only things I really need project planning for, I tend to specify (say), total of 137 hours and a task length for each task. Actually fitting it all to a calendar would be too much, but I could accept a fictitious start date provided I could display everything in hours and specify how many were left.
JDL
More information about the kplato
mailing list