Sebastian Hempel bio photo

Sebastian Hempel

Software Crafter, Clean-Code-Developer, JEE Professional, Puppet-Master, OpenSource Fanboy, Alfisti

Email Twitter Google+ XING Instagram Github

Der Einsatz einer Quellcode-Verwaltung (cvs, Subversion, etc.) ist für mich bereits seit Jahren selbstverständlich. Änderungen können über mehrere Versionen hinweg nachvollzogen und bei Bedarf wieder rückgängig gemacht werden. Nicht mehr benötigter Code wird nicht auskommentiert sondern wirklich gelöscht. In der Quellcode-Verwaltung ist der “alte” Code ja immer noch vorhanden.

redmine logo

Wie aber verwaltet man die ToDos, die während der Entwicklung einer Software für jeden Entwickler entstehen? Notizzettel? Text-Datei? Wiki? Alles Lösungen, die wir genutzt haben, von denen aber keine wirklich gut funktioniert hat. Mit den ersten Testversionen kommen noch Bug-Reports von den Testern hinzu. Und dann gibt es weitere Informationen, die jedem Entwickler schell zur Verfügung stehen sollten: fachliche und technische Richtlinien, Spezifikationen, Besprechungs-Protokolle, HowTos, etc.

Projekt-Management Software

Für die Verwaltung der oben aufgeführten Dokumente und Texte sowie zur Koordinierung der verschiedenen Versionen einer Software nutzen wir die webbasierte Projekt-Management Software Redmine. Die mit Ruby on Rails realisierte Webanwendung zeichnet sich durch eine klare Struktur und eine optimale Verbindung mit Subversion aus.

In Redmine wird jedes Software-Projekt eigenständig angelegt. Der Administrator kann die Benutzer dem Projekt mit unterschiedlichen Rollen zuordnen. Wenn notwendig können einem Projekt weitere Unterprojekte zugeordnet werden. Innerhalb eines Projekts besteht jedoch durch die Vergabe von Kategorien die Möglichkeit eine Gruppierung der einzelnen Tätigkeiten durchzuführen.

Ticket - Aufgaben, Features und Fehler

Hauptelemente in Redmine sind die Tickets. Ein Ticket kann dabei entweder einem Fehler, einem Feature oder einer weiteren "Anforderung" entsprechen. Jedes Ticket wird einer Kategorie zugeordnet. Weiterhin wird jedes Ticket im Laufe seiner Lebenszeit ein oder mehreren Bearbeitern zugeteilt. Neben einer genauen Beschreibung des Fehlers / des Features können durch die Bearbeiter jederzeit weitere Informationen zum Ticket hinzugefügt werden, in dem Kommentare zum Ticket erstellt werden. Umfangreichere Informationen können durch angehängte Dokumente dem Ticket zugeordnet werden.

Mit einem Ticket werden aber auch die Zeiten und Tätigkeiten zur Erledigung eines Tickets verwaltet. Jeder Bearbeiter bucht hierzu die benötige Zeit mit einer kurzen Beschreibung der Tätigkeit in Redmine ein. Nach der Erledigung eines Tickets können die Zeiten detailiert abgerufen werden.

Anbindung an Subversion

Neben der Verwaltung von Tickets verschafft Redmine auch einen Überblick über das zum Projekt gehörende Software-Repository. In der Grundversion ist u.a. die von mir genutzte Anbindung an Subversion integriert. Die Revisionen in Subversion können zusammen mit den zugehörigen Kommentaren von Subversion ausgelesen werden.

Werden bei Check-Ins in das Software-Repository im Kommentar die Ticket-Nummern entsprechend formatiert mit angegeben, kann Redmine eine Verknüpfung zwischen dem Ticket und den zugehörigen Revisionen in Subversion herstellen. Im Ticket werden dann auch alle Kommentare der zugehörigen Check-Ins mit aufgelistet.

Die Tickets können zu verschiedenen Versionen eines Projekts gruppiert werden. So ist die Release-Planung sehr einfach möglich und der Projektverantwortliche hat jederzeit einen Überblick darüber, welche Tätigkeiten zum Abschluss der geplanten Version noch erledigt werden müssen.

Dokumente, Dateien und ein Wiki

Zusätzliche Informationen zum Projekt - die oben erwähnten Besprechungs-Protokolle, HowTos, etc. - können ebenfalls im Redmine-Projekt abgelegt werden. Dokumente werden direkt mit einer kurzen Beschreibung im Projekt abgelegt. Weitere Dateien (Setups von Drittherstellern, etc.) werden in einem Dateibereich abgelegt. Weitere Informationen können in einem eigenen kleinen Wiki pro Projekt abgelegt werden.

Einer Version in Redmine kann auch ein entsprechender Eintrag im Wiki zugeordnet werden. Somit können weitere Informationen zur Version dokumentiert werden.

Anbindung an eclipse

Für Java-Entwickler interessant ist die Integration von Redmine als Mylyn-Provider in die Entwicklungsumgebung eclipse. Tickets aus Redmine werden zu Aufgaben in Mylyn. Kommentare zum Ticket können entweder in Redmine oder im Mylyn-Task eingegeben werden. Mylyn bietet darüber hinaus die Möglichkeit, nur die notwendigen Quellcodedateien, die für die Bearbeitung des Tickets benötigt werden, in der View anzuzeigen.

Die Einarbeitung in Redmine erfolgt sehr schnell.o Etwas aufwendiger Konfigurationen muss man für die Integration in eclipse einplanen. Aber auch ohne diese Integration fördert Redmine die strukturierte Planung und Abarbeitung bei der Software-Entwicklung.