Dependencies other than Finish -> Start

354 views
Skip to first unread message

BobNewell

unread,
Jan 30, 2010, 11:15:33 AM1/30/10
to TaskJuggler Users
I am a new TJ user coming in from OpenProj and will surely never go
back. But I can't find the answers to the issues below on the forum
(but please excuse if I've missed them somewhere).

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 ?

Chris Schlaeger

unread,
Jan 30, 2010, 1:12:47 PM1/30/10
to taskjugg...@googlegroups.com
With TJ2 start->start and end->end dependencies can be simulated via
additional milestone tasks like you describe. It does the job, but
it's not the most convenient way. For TJ3 I have added built-in
support for start->start, end->end, start->end and end->start
dependencies.

See http://www.taskjuggler.org/tj3/manual/depends.html for details.

Chris

BobNewell

unread,
Jan 30, 2010, 1:43:32 PM1/30/10
to TaskJuggler Users
OK, so you combine onstart and onend with precedes and depends to get
all the combinations. I'll have to try this out to get a feel for
it. Thanks!

BobNewell

unread,
Jan 31, 2010, 1:30:45 AM1/31/10
to TaskJuggler Users
I've worked through this a little further and written some extensive
notes here:

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 :)

Chris Schlaeger

unread,
Jan 31, 2010, 2:33:57 AM1/31/10
to taskjugg...@googlegroups.com
Bob,

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

JohnZ

unread,
Jan 31, 2010, 3:13:35 AM1/31/10
to TaskJuggler Users
Hy Bob,

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

BobNewell

unread,
Jan 31, 2010, 8:14:39 AM1/31/10
to TaskJuggler Users
John and Chris, thank you for your comments. I'll continue to revise,
expand, and above all correct my writeup as I find out more and become
smarter with Taskjuggler.

Bob

Chris Schlaeger

unread,
Jan 31, 2010, 8:30:12 AM1/31/10
to taskjugg...@googlegroups.com
On Sun, Jan 31, 2010 at 9:13 AM, JohnZ <jza...@googlemail.com> wrote:
> @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....
That is the one and only address to use. Your mails do show up
properly threaded in my GMail front-end as well as in the IMAP client.
Why do you think there is a problem?

Chris

JohnZ

unread,
Jan 31, 2010, 9:39:08 AM1/31/10
to TaskJuggler Users
On 31 Jan., 14:30, Chris Schlaeger <cschlae...@gmail.com> wrote:

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

JohnZ

unread,
Jan 31, 2010, 10:07:28 AM1/31/10
to TaskJuggler Users

Chris Schlaeger

unread,
Feb 1, 2010, 5:01:09 AM2/1/10
to taskjugg...@googlegroups.com

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

Reply all
Reply to author
Forward
0 new messages