TJ only explictly models finish->start relationships. I need some
finish->finish in my current project and sometimes need start->start.
(I've never used the rare start->finish but there are some cases that
I've seen).
I thought of various ways to do these but they all have at least some
drawbacks. Finish->finish for instance:
1) Set a finish milestone and have all the finish->finish tasks
precede the milestone. Of course this is more like a simultaneous
finish constraint than true finish->finish relationships. And, it
doesn't mean either that all task will actually finish at the same
time.
2) Set an end date for all the tasks. This is still simultaneous
finish and has the disadvantage of not letting the scheduler calculate
the end date based on the rest of the project setup. A variant would
be to set an end date for all the tasks, run the schedule, move the
end date based on what you see, etc. But of course this is all
manual.
3) For a true finish->finish, with activity B not finishing until
activity A finishes, you can split off the very very end of activity
A, creating A1, the bulk of A, and A2, the very tail end of A. Then
do the same with activity B. Set up finish->start from A2 to B2. Set
up finish->start from A1 to A2 and B1 to B2. This simulates a true
finish->finish relationship but the scheduler might put timing gaps
between A1 and A2 or B1 and B2.
It's easy to visualize complimentary procedures for start->start; and
even start->finish can be simulated. But there are at least some
drawbacks all around.
Any comments from experienced TJ users on how to do dependencies other
than finish->start ?
See http://www.taskjuggler.org/tj3/manual/depends.html for details.
Chris
http://docs.google.com/View?id=d88b2kp_379f88zzdcs
Any comments or corrections are welcome. The notes are long so I
recommend them only if you have a pretty deep interest :)
nice writeup! I have a few comments.
TaskJuggler is always scheduling tasks either from start to end (ASAP)
or end to start (ALAP). It tries to determine the necessary direction
automatically, but it can be influenced with the 'scheduling'
attribute. start-to-end scheduling means, the task start date is known
first and the end date is determined by 'duration', 'length',
'effort', 'milestone' or a dependency relationship at the end.
end-to-start scheduling is done vice versa.
While it's perfectly ok to mix ASAP and ALAP task inside the same
project, they come with an inherent problem known as priority
inversion. Consider the following end-to-end relationship. The end of
task A determines the end of task B. A must be ASAP and B ALAP. If
they both have allocations for the same resources and B has a higher
priority assigned than A, A still gets the resources. The scheduler
must schedule A first to determine the end of A and B. Priority
inversions are an inherent problem of end to end dependencies. In real
world projects, this can span over larger chains of task and users
often don't realize that. That's why I usually recommend not to mix
ASAP and ALAP tasks in the same project.
You don't use milestone tasks for the handover/arrival tasks. Not sure
why, but forcing them to a milestone would eliminate the splitting
problem.
The start/start and end/end dependencies in TJ3 haven't been used
much. I'm interested in any feedback from users.
Chris
great summary for that topic !
I want to add a comment to the line:
------------------------------------------------------------------------------------------------------------
....
Now, this is not perfect. We've defined fixed lengths for the shifts,
so in the scheduler, A arriving late will actually show up as lag for
B2 rather than time worked for B.
...
--------------------------------------------------------------------------------------------------------------
You can define different scenarios,
so the "timing glitch" caused by A can be considered
and in the report confronted (normal vs. delayed).
http://taskjuggler.org/tj3/manual/scenario.html
If you are interested i have also a short desc.
of the scheduler (pdf-file).
@Chris: How can i send via an email program
a reply to a message ?
What is the receive address instead of
"Taskjugg...@googlegroups.com" ?
Otherwise a new thread is generated....
best regards
JohnZ
Bob
Chris
I can only add a message to this thread via the Google Groups web
front-end
but not via an email-program (e.g. Google-mail, gmx etc.).
So, if i send an email to
"taskjugg...@googlegroups.com" then a new thread is created.
I don't want this, just send an answer to this thread and attach a pdf-
file.
best regards
JohnZ
Why do you think that your mails are not added to the thread? I've
never noticed that mails with attachments are not added to the thread.
They all look fine both in GMail and my IMAP client.
Chris