![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
|
||
|
TFT Monitor bei
Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich. Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps. Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung. Günstige Shareware Programme als direkte Downloads im Software Portal. Bis zu 70% sparen durch Preisvergleich. |
||
|
Out of the box: taskjugglerNie mehr planlosvon Frederik Bijlsma und Patricia Jung |
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.tjphin. 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.
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 Compiler Collection" 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_unstableNun startet der Kompilierungsprozess mit den Befehlen
./configure --with-kde-support makeHaben 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::Simple, Date::Calc, Class::MethodMaker und Data::Dumper installiert, erstellt der Build-Vorgang auch das Programm tjx2gantt, das Gantt-Diagramme wie in Abbildung 1 erzeugt.
Nach erfolgreichem make-Durchlauf installiert man das Taskjuggler-System als privilegierter Benutzer mit dem Befehl make install .
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*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
|
Stehen die Rahmenbedingungen fest, sorgt Taskjuggler für Planungshilfen: Fügt man in die .tjp-Datei die Zeile
xmlreport "ShiftSchedule.tjx"ein, generiert der taskjuggler-Aufruf einen XML-Report und legt ihn in der Datei ShiftSchedule.tjx ab. Er lässt sich natürlich mit XML-Editoren u. a. Programmen betrachten, eignet sich aber speziell zum Datenimport. Die passende DTD findet sich unter http://www.taskjuggler.org/show_dtd.php. Verfüttert man die XML-Datei an das zu Beginn erwähnte Perl-Skript tjx2gantt, macht es daraus Gantt-Diagramme.
Aber auch ohne Zusatz-Tools generiert der einfache taskjuggler-Aufruf bereits nützliche Reports -- in HTML. So ergänzt man die .tjp-Datei für Sallys Kalender aus Abbildung 2 um den Code aus Listing 4: htmlweeklycalendar generiert in der Datei Kalender-sally.html einen Wochenplan für den Projektzeitraum.
Die Funktion isresource(sally) filtert alle Aufgaben der Ressource sally heraus, und hideresource versteckt (englisch: "to hide") alle, die diesem Kriterium nicht (~) entsprechen. columns schedule sorgt dafür, dass davon ein detaillierter Zeitplan ausgegeben wird. Lässt man die Zeile hidetask 1 weg, enthält der HTML-Kalender zwischen Datum und Aufgaben jeweils eine Zelle mit Raum für Notizen.
Auch die neuen CSV-Reports definiert man wie in Listing 5 in der .tjp-Datei. Der csvtaskreport listet von allen nicht mit dem Flag hidden markierten Tasks den Namen und den zeitlichen Aufwand (effort) in Stunden (loadunit hours) für jeden Tag vom 01. 06. 2002 bis zum 01. 07. 2002 einzeln auf (Abbildung 3).
| Listing 4: Sallys Arbeitsplan |
htmlweeklycalendar "Kalender-sally.html" {
headline "Arbeitsplan für Sally"
columns schedule
hidetask 1
hideresource ~isresource(sally)
}
|
| Listing 5: Überblick über die pro Tag anfallenden Stunden je Aufgabe |
csvtaskreport "aufwand.csv" {
columns name, daily, effort
start 2002-06-01
end 2002-07-01
hidetask hidden
loadunit hours
}
|
Ob Übersichten nach dem Motto "Wer arbeitet wann wie lange an welcher Aufgabe?" oder Einsatzpläne für Mitarbeiter -- Taskjuggler bietet eine Menge weiterer Möglichkeiten, die ein ganzes Referenzhandbuch (auf CD im Verzeichnis LinuxUser/ootb/manual/ zu finden) füllen. Weitere Beispiele finden Sie auch im Verzeichnis Examples des taskjuggler-Quellarchivs. Dort wie auch in der vollständigen Beispieldatei finden sich weitere Anregungen, zum Beispiel zur Verwendung von Makro-Skripten und mehrteiligen Projekten. (pju)
| Der Autor |
|
Frederik Bijlsma benutzt Linux seit 1994 und studiert Betriebswirtschaftslehre in Magdeburg. |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite
|
Datenschutz |
© 2010 Linux New Media AG |
Last modified: 2008-04-22 13:56
[Linux-Magazin]
[LinuxUser]
[EasyLinux]
[Linux-Community]
[Ubuntu User]
[Linux Technical Review]
[Linux Magazine]
[Linux Pro Magazine]
[Ubuntu User]
[EasyLinux Poland]
[Linux Magazine Poland]
[Linux Magazine Brasil]
[EasyLinux Brasil]
[Linux Magazine Spain]