Feature #10774
openPlanning logic
0%
Description
Hi folks,
I have a suggestion for how the logic of scheduling and gannt charts should work.
I'd like to set estimated durations for tasks at an early stage in my planning, then create the dependencies and see the tasks get lined up in serial or parallel on the gannt chart. Right now, the estimated duration doesn't seem to get used for anything. This would call for a new parameter to specify how many working hours there are in a day, which might eventually develop into a per-resource holiday schedule etc.
A "likely end date" could be calculated for each task, equal to the likely start date plus the estimated duration. The likely start date would be latest of the likely end dates of the preceding tasks, any assigned start date of this task, and any assigned start date of its supertask/project.
As we know from bitter experience, due dates exist only in the fantasies of PMs, so the above should be the main scheduling model. You could then use the due date to paint things pretty colours. For instance, if the likely end date is later than any assigned due date, then the bit between the two (i.e. the later part of the bar on the gannt chart) could be painted red. In the opposite case, there could be a faint green haze in the region from the likely end date to the due date, but it should not look like part of the bar.
A supertask doesn't need start or end dates. But if it has an end date, then the same colouring principle applies to the bar that represents the supertask, but there are no consequences for the subtasks. If it has a start date then it would act on the subtasks as explained above.
It's completely daft at the moment that if I define a subtask without a start or end date, the supertask disappears from the gannt chart, its start and end dates are wiped out and the subtask is scheduled to start in the year 5000.
If nothing in the whole plan has a start or end date, then the start can be today, and everything else follows from there according to the estimated durations and dependency relationships.
Is this making sense?
Adrian.
Updated by Adrian May over 12 years ago
Hi again,
I'm not sure I explained that algorithm clearly. Those likely dates are supposed to be calculated on the fly whenever the gannt chart is drawn. They might be cached in RAM but they should all be wiped out whenever anything changes. The DB can still have start and end dates but they mean something different and most of them will be undefined. Typically, there'd be a start date defined for the whole project and that's it. If anything else had a start date that would mean you were waiting for a piece of hardware to show up or something like that. The estimated durations are the important thing in the DB, and due dates are only used for colouring.
I'd do it myself but I have absolutely no experience of Rails. I'd start by removing any of that (non-RESTful?) code like the bit that obliterates the start date of the supertask when I create a subtask (without even making the subtask start date default to that of the supertask.) Then I'd make some kind of recursive likely-start-date function or query, but that's where I lose the plot cos I'm not even a database programmer. If performance became an issue, I'd write something to cache the likely start dates, but make sure it gets dirtied at the first hint of change.
Adrian.