PERT, network or dependency graph

41 views
Skip to first unread message

gra...@harris.net.nz

unread,
Aug 25, 2020, 11:08:58 PM8/25/20
to TaskJuggler Users
I recall somewhere reading that Christopher doesn't see a need for these graphs. I would like to have one anyway. The reason is that at early stages of a project, I have no idea how long each task will take but I can make a stab at what task must precede another. I would like, at that early stage, to be able to visualise that so I and other stakeholders can 'see' bottlenecks well before I can calculate a critical path.

I have done graphs like this in Graphviz (with just task names on each node) and they are quite acceptable. It takes more (sed, grep, awk) than I can muster though, to convert a Taskjuggler project to Graphvis.dot or vice versa. The alternative is to maintain the Taskjuggler and Graphviz versions in parallel which is a nightmare.

I could use the mspxml report format to see the project in MS Project. I have done that before in a very complex time-critical business de-merger project; I had to paste together the resulting 50-odd A3 pages across a wall, and reprint them every day. I sincerely believe Graphviz is a much better solution. 

Has anyone found a way to produce a simple "directed graph" from Taskjuggler? I would include, taking the mspxml file into an online tool. 


Jakob Schöttl

unread,
Aug 26, 2020, 3:40:07 PM8/26/20
to taskjugg...@googlegroups.com, gra...@harris.net.nz
Hi Graham,

I had a similar idea once (before I knew about tj3). I modeled the graph
in Orgmode:

* node
** node that comes after "node"
** node that also comes after "node"

So each node in a deeper level of the hierarchy would depend on its
parent. In addition, I could define properties to specify arbitrary
other dependencies ("blocks" and "depends").

Command line:
org2dot < test.org | dot -Tpdf -o test.pdf

See attachements.

On the other hand, I found out about tj3 and how it plays together with
Orgmode. I have a setup where I define my projects and resources in
Orgmode (which I find much nicer than directly in tj3).

In conclusion: The org file my single source file, from which tj3 source
and reports, PDF documents and graphviz dependency graphs are generated.

I wrote the program org2dot in Haskell, its here:
https://gist.github.com/schoettl/ca1f729d5472dcff43e2139def941b40

You would have to change it slightly because in tj3, the property names
"blocks" and "depends" have different names. You may also have to use
awk or so, to pre-process the org file to contain the task ids in the
header lines. This should not be too hard.

But I guess it's a lot to learn if you're new to Orgmode. Here is the
documentation for Orgmode tj3 export:

https://orgmode.org/worg/exporters/taskjuggler/ox-taskjuggler.html

My Makefile rule to generate the tj3 file from Orgmode is:

%.tjp: %.org *.tjp.txt
    emacs $< --batch -l
~/.emacs.d/elpa/org-plus-contrib-*/ox-taskjuggler.el -f
org-taskjuggler-export --kill
    sed -i '1s/ nil / $* /' $@
    cat leaves.tjp.txt reports.tjp.txt >> $@

It combines leaves and report specifications that reside in separate
files, not in the org file.

Hope that helps.

- Jakob

Am 26.08.20 um 05:08 schrieb gra...@harris.net.nz:
test.pdf
test.org

Graham

unread,
Aug 26, 2020, 3:51:34 PM8/26/20
to Jakob Schöttl, taskjugg...@googlegroups.com
Thanks Jacob,

The test.pdf you produced is just the sort of thing I would want to
produce. But of course that is org

I have seen the Org Mode links. I have looked at Emacs a few times over
my many years with Linux and always felt it was too far from the way I
would want to work.

thanks for the Haskell source. I haven't paid any attention to Haskell
before. The code seems fairly simple and expressive.
--
Ngā mihi and Best regards,

Graham

mobile: +64 27 275 4396
https://www.linkedin.com/in/grahamharris/
Meet Me? https://doodle.com/mm/grahamharris/book-a-time
Zoom: https://us04web.zoom.us/j/7111072836 (or 711-107-2836)
Reply all
Reply to author
Forward
0 new messages