Home / LinuxUser / 2003 / 12 / out of the box: taskjuggler

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(229 Punkte bei 11 Stimmen)
Pardus Linux am Ende?
(201 Punkte bei 6 Stimmen)
Meinst Du: Patch CD Updates?
(179 Punkte bei 5 Stimmen)
One goes, one comes
(161 Punkte bei 4 Stimmen)
Speichern in der Cloud
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Nie mehr planlos

out of the box: taskjuggler

01.12.2003 Nicht nur große Unternehmen und Dienstleister aller Art planen Einsätze und Projekte mit Hilfe von Computersystemen. Auch Vereinen und privat organisierten Dienstleistern spart eine Software-Lösung Zeit, Nerven und bares Geld. Taskjuggler ordnet alle Ressourcen und verschafft den Überblick.

Aufgaben und Projekte, die es zu organisieren gilt, gibt es seit Menschengedenken in Hülle und Fülle. Eher spärlich gesät sind aber Menschen und Software, die Ressourcen und Aufgaben sinnvoll und vor allem effizient zuordnen können. Der Taskjuggler von Chris Schläger und Klaas Freitag tut nicht nur dies, sondern präsentiert sich auch als eine Art Eier-legende Wollmilchsau, die jede Situation optimiert, die sich in Projekte und Ressourcen zerpflücken lässt.

Kosten-Definitionen und eine einfache Kosten-Kontrolle können dabei ebenso festgelegt werden wie Schichten und Prioritäten. Das Programm erwartet in Text-Dateien mit der Erweiterung .tjp beschriebene Objekte und verarbeitet diese auf den einfachen Aufruf von

taskjuggler dateiname
.tjp

hin. Seine dabei erstellten Berichte liefert Taskjuggler als HTML- oder CSV-Dateien ab – bestens geeignet zur Publikation im Internet oder zur Aufbereitung in einer Tabellenkalkulation wie OpenOffice. Alternativ exportiert das Programm XML-Daten, die sich in jedes gewünschte Zielformat konvertieren lassen und damit zum Beispiel den Weg in Content-Management-Systeme ebnen.

Mehr Funktion in der Entwicklerversion

Wir stellen an dieser Stelle die Entwicklerversion 1.9.2 vor, die bereits einige neue Features integriert, zum Beispiel besagte CSV-Reports. Außer einem C++-Compiler wie dem g++ aus der "GNU CCollection" GCC benötigen Sie die Entwicklungspakete zum X-Window-System. Entgegen der Dokumentation auf der Taskjuggler-Website http://www.taskjuggler.org/ setzt die Software zudem mindestens die Version 3.1 der Qt-Bibliothek voraus.

Das Taskjuggler-Paket von der Heft-CD entpacken Sie mit

tar xjf taskjuggler-1.9.2_unstable.tar.bz2
cd taskjuggler-1.9.2_unstable

Nun startet der Kompilierungsprozess mit den Befehlen

./configure --with-kde-support
make

Haben Sie kein KDE installiert, lassen Sie entsprechend die Option --with-kde-support weg. Die Konfigurationsroutine ist so angelegt, dass sie den Voraussetzungen des Rechners entsprechend soviel Funktionalität wie möglich übersetzt. So generiert sie die Dokumentation neu, sobald sie alle Docbook-Bibliotheken findet.

Sind Perl und die CPAN-Module XML::Parser, Postscript::SimpleDate::CalcClass::MethodMaker und Data::Dumper installiert, erstellt der Build-Vorgang auch das Programm tjx2gantt, das Gantt-Diagramme wie in Abbildung 1 erzeugt.

Abbildung 1: Gantt-Chart für ein Projekt

Nach erfolgreichem make-Durchlauf installiert man das Taskjuggler-System als privilegierter Benutzer mit dem Befehl make install .

Projekte, Schichten und Ressourcen

Für eigene Projekte erstellt man am besten ein Verzeichnis, in dem Taskjuggler alle zugehörigen Definitionen und Berichte ablegen soll. Ein komplettes Beispiel finden Sie auf der Heft-CD im Verzeichnis LinuxUser/ootb/beispielprojekt/.

Die darin enthaltene Projektdefinitionsdatei ShiftSchedule-deutschkommentiert.tjp – ein auf Deutsch kommentiertes Beispiel von der Taskjuggler-Webseite – besteht für jedes Projekt aus vier Teilen: der Projektdefinition, den Schichten, den zur Verfügung stehenden Ressourcen und den Aufgaben.

Zunächst geht es im Abschnitt project (siehe Listing 1) um das Projekt selbst. Mit shifts erhält es einen Identifikator, anschließend folgt die Projektbezeichnung – es dreht sich um die Verteilung von Arbeitsschichten in einem Systemadministrationsteam. Die letzten beiden Parameter grenzen in der Form JJJJ-MM-dd den ungefähren Zeitraum ab, in dem das Projekt stattfindet. Hier sollte man gerade beim Enddatum eher großzügig sein, denn außerhalb dieser Spanne liegende Aufgaben fallen unter den Tisch.

Zudem braucht man als dritten Parameter eine Versionsnummer. Das kann ein einfaches "1.0" sein; wer die Taskjuggler-Dateien mit einem Versionskontrollsystem verwaltet, schreibt hier den entsprechenden Platzhalter (für CVS "$Id") hinein.

Auf diese verpflichtenden Parameter folgen in geschweiften Klammern optionale Angaben wie die tägliche Arbeitszeit (im Beispiel acht Stunden) und die Anzahl der Arbeitstage im Jahr (im Beispiel 256).

Nun folgt die Definitionen von Arbeitsschichten mit dem Stichwort shifts. Schichten fassen das Zeit-Budget aller Mitarbeiter am Projekt zusammen, die zur selben Zeit arbeiten. Die konkreten Zeiten legt das Attribut workinghours für jeden Tag fest, für den man per Default sein englisches Kürzel (tue für Dienstag, wed für Mittwoch usw.) hinschreibt. Möchte man in einem Projekt einen Tag als frei markieren, zeigt man dies mit dem Keyword off an. Fehlt ein Tag, nimmt Taskjuggler an dieser Stelle die Standard-Arbeitszeiten des Projekts auch für die Schicht an.

Jede Schicht bekommt wieder eine ID (zum Beispiel phonesupport für die Zeit, die Mitglieder des Sysadmin-Teams an der Hotline Dienst tun) und eine Überschrift.

Alle betroffenen Mitarbeiter definiert man wie in Listing 2 mit dem Schlüsselwort resource. Außer dem eindeutigen Kürzel (zum Beispiel joe) bietet sich als Beschreibung der Name an. Optional legt das Attribut vacation einen Ferienzeitraum fest; maxeffort bestimmt einen Faktor, mit dem sich Teilzeit berechnen lässt: Anders Gundstrom arbeitet bei einer 40-Stunden-Woche täglich nur 8@L: *0,8=6,4 Stunden. Das Attribut shift bindet Khaled Safri an besondere Arbeitszeiten, in unserem Fall die Zeiten aus Listing 1, die Studenten ausfüllen.

Das Wichtigste folgt zum Schluss: die zu erledigenden Aufgaben (Listing 3). Zuerst definiert unserer Beispiel einen Aufgabenbereich (task) sysadmin, der innerhalb der geschweiften Klammern in einzelne Aufgaben aufgesplittet wird. Der Punkt start setzt einen Meilenstein (milestone), an dem andere Tasks beginnen. So kann der User-Support erst anfangen (depends), wenn die Aufgabe start abgeschlossen, sprich, wenn der 1. Juni 2002 vorbei ist. Dank der Zeile flags hidden erscheint der Meilenstein nicht in den Auswertungen.

Den Support, den wir zunächst für zwei Monate (duration 2m) planen, übertragen wir der Schicht phonesupport mit der Priorität 900. 1 wäre extrem unwichtig, 1000 hat allerhöchste Priorität. Das Attribut allocate ordnet der Aufgabe Mitarbeiter zu: Von joe, anders, khaled und sally werden diejenigen herangezogen, die am wenigsten mit anderen Aufgaben belastet sind (select minloaded). Alternativ sucht das Auswahlkriterium maxloaded den jeweils beschäftigsten Mitarbeiter aus, order den oder die erste freie Mitarbeiter/in aus der Liste, und random wählt zufällig jemanden davon aus.

Listing 1

Schichtdefinitionen

project shifts "Duty Schedule SysAdmin Team" "$Id" 2002-06-01 2002-08-01 {
        dailyworkinghours 8
        yearlyworkingdays 256
}
flags hidden
shift phonesupport "Phone support" {
        workinghours mon 9:00 - 12:00
        workinghours tue 9:00 - 12:00
        workinghours wed off
        workinghours thu 14:00 - 17:00
        workinghours fri 9:00 - 12:00
}
shift studenthours "Student Hours" {
        workinghours mon 9:00 - 14:00
[…]
        workinghours fri 9:00 - 14:00
}

Listing 2

Ressourcendefinitionen

resource joe "Joe Bughunter" {
        vacation 2002-06-10 - 2002-06-13
}
resource khaled "Khaled Safri" {
        shift studenthours
}
[…]
resource anders "Anders Gundstrom" {
        maxeffort 0.8
}
resource paul "Paul Gutier" {
        vacation 2002-07-02 - 2002-07-08
}

Listing 3

Aufgabendefinitionen

task sysadmin "System Administration" {
# Die folgende Aufgabe ist eigentlich keine, sondern legt nur
# den Projektbeginn fest.
task start "Start of plan" {
        start 2002-06-01
        milestone
        flags hidden
}
task usersup "User Support" {
  depends !start
        duration 2m
        shift phonesupport
        priority 900
        allocate joe { alternative anders, khaled, sally select minloaded }
}
[…]
} # Ende der Sysadmin-Aufgaben

Abbildung 2: HTML-Kalender für die Mitarbeiterin Sally

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1330 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2012_02

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 1 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 1 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...