Archiv für die Kategorie ‘Projektverwaltung’

“Befreie deinen Geist …”

Montag, 24. November 2008

So trivial die Worte im Film “Matrix” auch klingen mögen, so schwer tut man sich in der Realität damit. Insbesondere wenn man gerade mitten in einer Konzeption für ein neues Produkt, Feature oder allgemeinen Idee steckt. Jetzt wird der ein oder andere aufschreien: “Mindmapping”  – und ja meine Freunde der Kommunikationsseminare zwischen 1995 und 2000, die Antwort lautet Mindmapping. Aber nicht irgendwie sondern schlicht und einfach mit FreeMind.

FreeMind bietet viel freie Fläche zum Erstellen von Gedankenblasen – die müssen wirklich nicht immer sinnvoll gefüllt sein *gg*. Zusätzlich lassen sich auch gleich ein paar Icons hinzufügen um den Blick des Betrachters etwas zu führen, da es, wie so oft bei freien Gedanken, schnell unübersichtlich werden kann. Zwar hat man das bei FreeMind im Sinne des Mindmappings damit zu lösen versucht, dass die Gedanken baumstrukturiert dargestellt werden (siehe Screenshots) und Teilbäume ausblendbar sind.

Leider führt dies aber gerade bei umfangreicheren Konstrukten am Anfang genau ins Gegenteil und man ist mehr damit beschäftigt welche “Gedanken” auf welche Ebene gehören und in welchem geschlossenen Teilbaum sich gerade der benötigte “Gedanke” befindet. Außerdem sollte man unter Linux frühestens bei Version 0.8.1 beginnen, da vorher die Eingabe und Darstellung so fehlerhaft ist (z.B. Mausklicks funktionieren nur sporadisch, Darstellungsfehler beim Verschieben von Knoten), dass man nach einigen Minuten schon frustriert aufgeben will.

Leider lässt auch die aktuelle Version (0.8.1) noch Einiges an Benutzerfreundlichkeit offen – z.B. lassen sich spontane Gedankenzweige nicht unverknüpft anlegen oder Knoten lassen sich noch nicht mit Notizen versehen, was insbesondere in Kombination damit unpraktisch ist, dass Knoten standardmäßig einzeilig sind (man muss entweder Alt+Eingabe drücken oder im Kontextmenü “Knoten in einem separaten Editor bearbeiten …” auswählen um mehrere Zeilen schreiben zu können).

Und wieder muss ich mich bei Simonidossos für eine exzellente Empfehlung bedanken.

Buchempfehlung: Der Termin

Donnerstag, 13. November 2008

Jeder der in der IT-Branche arbeitet, kennt das ewige Dilemma: Sinnfrei angesetzte Fertigstellungstermine, Spezifikationen, die eher der Tagesform einer verschlafenen Weinbergschnecke entsprechen – zäh und planlos – und einen Chef, der meint mit permanentem Druck (auch positivem Druck mit dem Mantra: “Wir sind gut, aber noch nicht gut genug. Wir müssen nochmal zulegen und zwar alle zusammen.”) würde man nach 3 Monaten durcharbeiten irgendein Weltwunder aus den Tränensäcken zaubern.

Das Buch “Der Termin” beschreibt diese und andere Situationen teilweise überspitzt. aber immer so, dass man sich darin wiederfinden kann.

Die Geschichte handelt von einem Softwaremanager – Mr. T. – , der von einem Entwicklungsparadies (ein einfaches Projekt mit scheinbar unendlichen Ressourcen und keinem Endtermin) in ein Worst-Case-Szenario erster Güte rutscht. Mit intelligenten Mitstreitern, vorteilhaften Zufällen und einem unerschöpflichen Vorrat an gutem Willen manövriert er durch (fast) alle Widrigkeiten.

Obwohl das Buch für einen Softwareentwickler bzw. Projektmanager sehr oberflächlich daherkommt und die Zufälle sehr konstruiert wirken um möglichst alle Probleme zumindest angeschnitten zu haben, liest sich das Buch sehr angenehm. Durch das Tagebuch innerhalb der Geschichte, dass der Protagonist schreibt, kann man sich einige Ansätze für das eigene Leben herausziehen und diese gemächlich überdenken oder sofort umsetzen.

Projektübergreifende Templates in Trac

Freitag, 21. März 2008

Im Beitrag http://www.pincservices.de/wordpress/eigene-templates-in-trac
habe ich bereits vorgestellt wie man projektspezifische Designanpassungen machen kann bzw. wie die Projektliste in Trac anpassbar ist. Damals habe ich geschrieben, dass es scheinbar keine Möglichkeit gibt projektübergreifende Templates zu erstellen. Nun die frohe Kunde: Es geht doch.

Leider bietet Trac keine Möglichkeit über eine globale Variable das allgemeine Templateverzeichnis zu definieren. Man muss hierfür die trac.ini im Verzeichnis conf der jeweiligen Projektumgebung anpassen. In dieser Datei gibt es folgenden Abschnitt:

[inherit]
plugins_dir =
templates_dir =

Hier kann man das eigene Templateverzeichnis angeben, welches als Default verwendet werden soll.
Im Fall des Beispiels aus dem obigen Beitrag würde man den Eintrag

templates_dir = /home/testUser/trac/templates

setzen.

Eigene Templates in Trac

Sonntag, 16. März 2008

Wer bereits ein größeres Programmierprojekt durchgeführt hat, wird die Erfahrung gemacht haben, dass man auf ein Bugtrackingsystem nicht wirklich verzichten kann.
Im Beitrag 1:0 im Kampf JIRA vs. Trac habe ich schon zwei solche Systeme angesprochen JIRA und Trac, wobei ich hier auf letzteres eingehen möchte.

Nachdem man sich mit diversen Funktionen und Plugins in Trac “angefreundet” hat, stellt sich meistens die grundlegende Frage: “Wie kann ich das Design von Trac so ändern, dass es zu meinem Projekt passt”. Das fängt beim Logo an und hört bei der Anzeige der Projektliste auf – insofern man mehrere Projekte hat.

Trac bietet hierfür auf der eigenen Projektseite auch ein Tutorial, deshalb möchte ich hier nur eine kurze Einführung geben und dann auf ein paar Fallstricke bei der Individualiserung des Layouts eingehen, die in dem Tutorial nicht auftauchen. Auf das Ein- bzw. Ausblenden von Navigationspunkten oder die entsprechenden Verlinkungen wird hier nicht eingegangen.

Das Templatingsystem von Trac basiert auf Genshi, einer Pythonbibliothek, die es erlaubt Text aus diversen Quellen für das Web aufzubereiten. Trac bedient sich hierbei vor allem des HTML-Parsers.

In dem Verzeichnis trac/templates unterhalb des Trac-Installationsverzeichnisses befinden sich alle html-Dateien für das Default-Template. Insbesondere die layout.html und die index.html sind hier relevant. Die layout.html bestimmt das Aussehen der projektspezifischen Seiten und die index.html die Seite für die Projektliste. Unter trac/htdocs befinden sich die Bilder, Javascript-Dateien und die CSS-Dateien.

Trac bietet pro Projekt diverse Stellen zur Individualisierung des Designs an. Eine eigene site.html im Verzeichnis templates und ein eigenes Verzeichnis htdocs, in der eine style.css angelegt werden kann.

Um das Layout der Projektliste anzupassen sollte man folgende Zeile in die Konfigurationsdatei vom Webserver (z.B. die default von Apache) schreiben

SetEnv TRAC_ENV_INDEX_TEMPLATE "/home/testUser/trac/templates/index.html"

beim Setzen der Variable TRAC_ENV_INDEX_TEMPLATE muss darauf geachtet werden, dass sich das Verzeichnis templates nicht unterhalb des Elternverzeichnisses der Umgebungen (Environments) liegt. Wenn z.B. folgendes definiert ist

SetEnv TRAC_ENV_PARENT_DIR "/home/testUser/trac/"

kommt es auf der Seite für die Projektliste (definiert durch die index.html) zu einer Fehlermeldung, dass die Datei VERSION für das Projekt templates fehlt. Aus diesem Grund sollte die Variable TRAC_ENV_PARENT_DIR auf ein anderes Verzeichnis zeigen. Z.B.

SetEnv TRAC_ENV_PARENT_DIR "/home/testUser/trac/projects"

Nachdem diese Vorbereitungen getroffen sind, kann man daran gehen, die eigenen Templates zu entwerfen und umzusetzen.

Für projektspezifische Templates kann, wie bereits gesagt, die site.html verwendet werden. In dieser Datei ist vor allem der Ausdruck

${select('*|text()')}

relevant. Dieser wird in Verbindung mit

py:match="body"

verwendet und bedeutet soviel wie: “Nimm alle Subtags und jeden Text unterhalb vom Body-Tag”. Wenn man jetzt aber auf einzelne Elemente zugreifen möchte, z.B. nur den Content- oder den Main-Bereich, dann kann man folgenden Ausdruck verwenden:

${select('div[@id="main"]|text()')}

bzw.

${select('div/div[@id="content"]|text()')}

Der Ausdruck in der Select-Anweisung ist eine Untermenge von XPath (siehe hierzu Genshi XPath).

Leider bietet Trac scheinbar noch kein projektübergreifendes Templating an.

[Update]

Es gibt doch eine Möglichkeit. Siehe hierzu diesen Beitrag.

Weitere Informationen zum dem Thema befinden sich auf der Seite http://trac.edgewall.org/wiki/TracInterfaceCustomization, sowie ein Beispiel auf http://querdenker.kicks-ass.org/trac/querdenker/wiki/TracTemplating.

1:0 im Kampf JIRA vs. Trac

Dienstag, 11. März 2008

Mal wieder ist es geschehen, dass eine kommerzielle Software über die OpenSource-Variante siegt. In diesem Fall aber (leider) zu Recht.

Die Entwicklung von Spring IDE wurde lange Zeit ausschließlich mittels Trac realisiert. Zu meinem Bedauern haben sich die Verantwortlichen nun doch unter die Leitung von SpringSource gefügt und betreiben das Bugtracking mit JIRA. Erreichbar ist die Seite von Spring IDE zwar immer noch unter http://www.springide.org und auch wird dort noch Trac verwendet, aber nur noch der Blog und das Wiki. Geht man auf Tickets, landet man direkt auf der JIRA-Seite.

Dieser Schritt ist allerdings auch verständlich, da sich dadurch alle Spring-Subprojekte unter einem “Dach” vereint finden lassen.

Ein anderer Grund für den Schritt könnte auch die fehlende Attraktivität von Trac sein. Ein produktiver Einsatz ist nur bedingt möglich, da bestimmte Elemente noch nicht vorhanden sind. Z.B. ist eine Administration bis Version 0.10 nur von der Konsole aus möglich gewesen oder nachdem man das Webadmin-Plugin explizit hinzugeladen hat. Außerdem ist die Rechteverwaltung für größere Projekte – mit mehreren Teams / Entwicklern – noch relativ rudimentär gehalten. Zwar wurden einige dieser Probleme bereits in der Version 0.11 gefixt, aber leider existiert diese bis heute immer noch als Beta (http://trac.edgewall.org/wiki/TracDownload).

Dennoch wache ich mit einem Auge über die Entwicklung von Trac und hoffe, dass ich bald frohe Kunde verbreiten kann.