Werkzeuge

Redmine: Projektverwaltung und Ticketsystem

Der Name Redmine steht für eine flexible Webapplikation zur Projektverwaltung und Aufgabenverteilung, wofür sie ursprünglich auf Basis des Ruby on Rails Frameworks entwickelt wurde. Redmine kann jedoch auch für das Bugtracking als Ticketsystem verwendet werden und dient der Organisation von Teams. Redmine ist ein plattform- und datenbankübergreifendes Werkzeug bei der Softwareentwicklung. Redmine ist eine open-source Anwendung, die unter der GNU General Public License v2 (GPL) erschienen ist.

Die wichtigsten Features von Redmine im Überblick:

  • Alle Projekte können in einer einzigen Instanz von Redmine verwaltet werden.
  • In jedem Projekt kann jeder Nutzer eine andere Rolle einnehmen. Projekte können entweder öffentlich oder privat definiert werden. D.h. jeder hat Einsicht in das Projekt oder nur Projektmitglieder.
  • Für jedes Projekt können jeweils einzelne Module wie zum Beispiel Wiki, Repository, Ticketsystem, usw. ein- oder ausgeschaltet werden.
  • Zugehörige Projektteile können als Subprojekte eines Hauptprojekts definiert werden.
  • Es können eigene Rollen für Benutzer festgelegt werden, d.h. welche Rechte hat die Rolle in den einzelnen Modulen.
  • Für das Ticketsystem können eigene Status-Typen und mögliche Arten eines Tickets definiert werden.
  • Bei der Einrichtung von Redmine kann festgelegt werden, wie der Workflow bei der Ticketabarbeitung durch eine Rolle beeinflusst werden soll. D.h. welche Rolle kann beispielsweise neue Tickets zuordnen, aufklären, schließen, sein Feedback abgeben.
  • Anhand des Datums des Anliegens und dessen Fälligkeitsdatum werden Gantt-Diagramme und Kalender generiert.
  • Time Tracking: Aufgewendete Zeiten können auf Projekt- oder Ticket-Ebene angegeben werden. Einfache Berichte bestimmen aufgewendete Zeit pro Nutzer, Ticket-Art, Kategorie oder Aktivität.
  • Für Tickets, Zeitangaben, Projekt und Nutzer können eigene Felder angelegt werden, und diese wie reguläre Felder zur Filterung nutzen. Verschiedene Formate wie Text, Datum, Boolean, Integer, Drop-Down-Listen und Checkboxen werden unterstützt.
  • News, Dokumente und Dateien können gepostet und ausgetauscht werden.
  • Pro Projekt kann man jeweils Wiki und Forum anlegen.
  • Repository-Browser und Diff-Viewer: Bereits existierende Repositories können an das Projekt angeschlossen werden. Es ist dadurch möglich, in diesen zu browsen und kann deren Änderungen einsehen. Unterstützt werden folgende Versionskontrollsysteme: Subversion, CVS, Mercurial, Darcs, Bazaar und Git.

Aus meinem Studium möchte ich hier nun eine kleine Ausarbeitung über Redmine vorstellen. Diese ist im Grunde eine kompakte Beschreibung, was Redmine überhaupt ist und welche Funktionen die Projektverwaltungssoftware bietet.

1. Was ist Redmine?
Während der Entwicklung eines Projekts sammeln sich viele ToDos, die man allen beteiligten Entwicklern für eine erfolgreiche Zusammenarbeit zur Verfügung stellen muss. Aber nun ist die Frage, wie man eben diese Sachen am besten hinterlegt, sodass eine geordnete Struktur entsteht, die von jedem Mitarbeiter sehr leicht eingesehen und wiedergefunden werden kann. In Form von Notizzetteln, Textdateien oder anderen Medien wie Wiki wäre eine Möglichkeit. Nach den ersten Versionen kommen auch noch Reports zu Bugs hinzu, die ausgewertet und von jemandem behoben werden müssen. Redmine schafft genau dieses, es vereint mehrere Komponenten in einem einzigen System, nämlich Notizen, Spezifikationen, Protokolle, Erläuterungen, Bugreports, Handbücher, etc. an einem einzigen Ort zu speichern und abrufbar zu machen. Redmine ist eine flexible Webanwendung für Projektmanagement und Aufgabenverteilung in der Softwareentwicklung. Die Aufgabenverteilung ist in kleinen sowie in großen Teams möglich. Ursprünglich war Redmine für die reine Projektverwaltung konzipiert. Im Verlauf der Entwicklung kam das Ticketsystem hinzu, welches sehr viel Potential mit sich bringt, sodass Redmine heute von vielen Softwarefirmen als großer Bugtracker eingesetzt wird und stellt somit eine sehr gute Organisationsmöglichkeit für Teams dar. Durch die Webanwendung haben mobile Mitarbeiter und Teams direkten Zugriff auf den gleichen Datenbestand. Die Software ist Open Source und ist unter der GNU General Public License v2 erschienen. Auf der Grundlage von Ruby on Rails ist die Software sehr strukturiert aufgebaut. Das integrierte Plugin-System bietet zudem die Möglichkeit, die Software sehr schnell mit neuen Funktionen zu erweitern und an seine eigenen Bedürfnisse anzupassen. Bereits fertige Plugins stehen auf der offiziellen Webseite bereit. Ein weiterer wichtiger Aspekt ist, dass Redmine plattform- und datenbankunabhängig ist, sodass die Software im Grunde für jedes Softwareprojekt, sei es in Java, C++ oder PHP eingesetzt werden kann.

2. Features

Multiprojekt-Fähigkeit

Redmine kann nicht nur für ein Projekt eingesetzt werden. Es bietet den Entwicklern die Möglichkeit, mehrere Projekte in einer einzigen Instanz anzulegen und zu verwalten. Deswegen wird Redmine auch von vielen Softwarefirmen gerne als Werkzeug zur Projektverwaltung eingesetzt. Man kann entweder mehrere unterschiedliche Projekte parallel in der gleichen Instanz anlegen oder aber die Projekte beliebig tief verschachteln. Dies ist vor allem bei großen Projekten eine gute Möglichkeit zur Trennung der einzelnen Systembausteine, um eine Übersichtlichkeit zu schaffen. Zugehörige Projekte werden in Redmine als Unterprojekte angelegt. In diesen Unterprojekten können nun jeweils weitere Projekte in der dritten Stufe angelegt werden. Es entsteht folglich eine Hierarchie wie beispielsweise bei einem Dateisystem.

(Abbildung 1: Projektübersicht)

Die Abbildung 1 zeigt die Projektansicht, die von jedem Mitglied auf der Unterseite „Projekte“ eingesehen werden kann. Wie man im Beispiel sieht, wurden die drei Hauptprojekte „Fahrrad-Shop“, „Preis-Robotor“ und „Softwareprojekt Müller“ angelegt. Diese stellen die erste Ebene dar. „Fahrrad-Shop“ hat noch die Unterprojekte „Bestell-Modul“, „Kunden-Modul“ sowie „Reklamationsmodul“. Das „Bestell-Modul“ hat in der dritten Ebene noch ein Unterprojekt „Warenkorb-Modul“.

Das Besondere daran ist, dass man nach Anlegen weiterer Unterprojekte für jedes dieser Projekte separat alle Einstellungen vornehmen kann, die man auch für das Oberprojekt bereits am Anfang vorgenommen hat. Uneingeschränkt sind demnach auf jeder Hierarchie-Ebene alle verfügbaren Einstellungen vorhanden. Dies sorgt auf jeder Hierarchie-Ebene für eine individuelle Form des Projektmanagements. Module können ein- und ausgeschaltet werden. Separat von bereits angelegten Oberprojekten können den Mitgliedern nun zusätzliche oder andere Rollen zugeordnet werden, Ticket-Kategorien können bearbeitet werden, ein projektbezogenes Wiki kann angelegt werden, neue Foren können angelegt werden, Aktivitäten bezüglich der Zeiterfassung können aktiviert oder deaktiviert werden sowie einige andere Einstellungen wie Projektbeschreibung, Projektversionen können projektweise bearbeitet werden. Der gesamte Workflow kann so leichter an das jeweilige Unterprojekt angepasst und optimiert werden.

(Abbildung 2: Einstellungsmöglichkeiten für ein Projekt, hier "Fahrrad-Shop")

Durch die Rollen und Rechte, die man als Administrator definiert, können Benutzer unterschiedliche Rollen in verschiedenen Projekten haben. So kann ein Benutzer in einem Oberprojekt ein Entwickler sein, der Tickets bearbeiten und annehmen kann. In einem Unterprojekt davon kann er wiederum ein Manager sein, der in diesem Projekt alle Einstellungen und Möglichkeiten des Projektmanagements hat. Auf der dritten Ebene kann er wiederum nur ein Reporter sein, der Programme testet und über Probleme berichtet und diese mit neuen Tickets öffentlich macht.

Rollen und Rechte

Die Einstellungen zu den Rollen und Rechten sind in Redmine auf sehr bequeme Art zu erledigen. Die Rechtevergabe erfolgt in Redmine in der Administrationsoberfläche per Klick. Nach Auswahl der Rolle können durch Setzen von Häkchen die Rechte in den einzelnen Modulen sehr schnell vergeben und später genauso schnell angepasst werden. Eine noch schnellere Möglichkeit zur Rechteverwaltung bietet sich durch die tabellarisch aufgebaute Berechtigungsübersicht an. In dieser sind spaltenweise die Rollen und zeilenweise die Berechtigungen aufgelistet.

(Abbildung 3: Berechtigungsübersicht)

Standardmäßig sind in Redmine bereits fünf Rollen in der Datenbank vorhanden. Es sind die Rollen „Anonymous“ und „Non member“, für die man die Rechte verwalten kann. Die Rollen selbst können aus systemtechnischen Gründen nicht gelöscht werden. Des Weiteren sind drei Musterrollen vorhanden, die man auch löschen und durch eigene Rollen ersetzen kann. Diese wären einmal der „Reporter“, der „Entwickler“ sowie der „Manager“. Die erste wichtige Einstellungsmöglichkeit einer Rolle, außer bei „Anonymous“ und „Non member“, ist natürlich, ob dieser Rolle Tickets zugewiesen werden sollen. Die Berechtigungen sind standardmäßig in neun Bereiche, den entsprechend vorhandenen Modulen in Redmine, eingeteilt. Dies wären einmal allgemeine Projekt-Berechtigungen, ob eine Rolle beispielsweise „Projekte erstellen“ oder „Projekte bearbeiten“ kann. Es können Berechtigungen für Foren getroffen werden.

Ob eine Rolle „Foren verwalten“ darf oder neue „Forenbeiträge hinzufügen“ oder „Forenbeiträge löschen“ kann. Weiterhin gibt es Berechtigungen für Dokumente, Dateien, Ticket-Verfolgung, News, das Projektarchiv, Zeiterfassung sowie das Wiki.

(Abbildung 4: Berechtigungen für die Rolle "Manager")

In der Abbildung 4 sind die Berechtigungen für die Rolle „Manager“ zu sehen, welche bei einer neuen Instanz von Redmine standardmäßig alle aktiviert sind. So kann der „Manager“ beispielsweise „Tickets löschen“, „Tickets hinzufügen“ oder „Beobachter löschen“. Die Reihenfolge der Rollen in der Selectbox-Auswahl kann verändert werden, sodass beispielsweise nicht zwangsläufig die Rollennamen nach Alphabet sortiert werden, sondern wie man es selbst in der Administration gerne wünscht.

Ticketsystem und Workflow

Das Hauptmodul, auf dem sicherlich einer der Schwerpunkte von Redmine liegt, ist natürlich das Ticketsystem. Redmine bietet als webbasierte Projektmanagement-Software ein flexibles System zur Verwaltung von Tickets, das durch Anlegen eigener Ticket-Kategorien, Status-Typen und Prioritäten nach Belieben erweitert werden kann.

Tracker

Standardmäßig sind in Redmine drei Tracker vordefiniert, der Tracker „Fehler“, „Feature“ sowie „Unterstützung“. Für jedes Projekt in Redmine kann jeder angelegte Tracker aktiviert und deaktiviert werden. Für ein Hauptprojekt kann der Tracker aktiviert sein, für ein Unterprojekt davon wiederum deaktiviert. Bereits angelegte Tracker können bearbeitet oder gelöscht werden. Nach Belieben können zusätzliche Tracker angelegt und ähnlich den Rollen in ihrer Reihenfolge bearbeitet werden.

(Abbildung 5: Tracker "Fehler", aktiviert für alle Projekte)

Ticket-Status

Für das Ticket-System können eigene Ticketstatus-Typen angelegt werden. Beim Aufsetzen einer neuen Redmine-Instanz sind bereits sechs Status-Typen vorhanden. Der Statustyp „Neu“ ist die Standardeinstellung für neue Tickets. Weitere bereits vorhandene Statustypen sind „In Bearbeitung“, „Gelöst“, „Feedback“, „Erledigt“ und „Abgewiesen“. Die vier letzten Statustypen sind mit der „Ticket geschlossen“-Markierung versehen. Wenn Tickets von einem Benutzer in einen dieser Statustypen geändert werden, so sind die Tickets geschlossen und deren Bearbeitung ist eingestellt. Alle vorhandenen Statustypen können gelöscht und durch eigene Typen ersetzt werden. Die Sortiermöglichkeit ist auch hier wieder gegeben.

(Abbildung 6: Übersicht der Ticket-Statustypen in der Administration)

Workflow

Jeder Workflow lässt sich nach eigenen Wünschen einstellen. Mit Angabe der Rolle und des jeweiligen Trackers kann der Workflow bearbeitet werden. Tabellarisch sind  dann zeilenweise der gegenwärtige Status sowie spaltenweise die neuen Berechtigungen angeordnet. Ebenfalls wie bei den Berechtigungen für Rollen kann nun per Klick festgelegt werden, ob beispielsweise die jeweilige Rolle für den angegebenen Tracker den Status-Typ „Neu“ in „In Bearbeitung“, „Gelöst“, „Feedback“, „Erledigt“ oder „Abgewiesen“ ändern kann. Für jede Rolle und jeden Tracker gibt man den Arbeitsfluss an, zum Beispiel in welchen Status-Typ „Feedback“-Tickets geändert werden können.

Um die Einstellungen beim Workflow besser zu verstehen, ist in Abbildung 7 ein Beispiel zu sehen. In diesem Beispiel ist die Workflow-Einstellung für die Rolle „Entwickler“ auf dem Tracker „Feature“ zu sehen. Wie man sieht, hat die Rolle eingeschränkte Rechte im Ticketsystem. Tickets, die sich im Status „Erledigt“ oder „Abgewiesen“ befinden, kann diese Rolle nicht in einen anderen Status überführen. Die Rolle darf kein Ticket in den Status „Abgewiesen“ ändern. Es darf auch kein Ticket in den Status „Neu“ überführt werden, denn dies würde normalerweise keinen Sinn ergeben. Sehr präzise Einstellungen für die Abarbeitung der Tickets sollten hier somit bereits im Vorfeld getroffen werden.

(Abbildung 7: Workflow-Einstellungen für die Rolle "Entwickler" auf dem Tracker "Feature")

Ticketübersicht

Die Ticketansicht in Redmine ist sehr übersichtlich gestaltet. Tabellarisch sind die Tickets aufgelistet, mit Trackername, Status-Typ, Priorität, dem Titel des Tickets, dem Benutzernamen, an wen das Ticket zugewiesen wurde sowie das Datum der letzten Aktualisierung. All diese Spalten werden in der Ticketansicht per Default angezeigt. Als Benutzer kann man unter Optionen weitere Spalten für die Ansicht aktivieren oder die bereits vorhandenen deaktivieren. Im Administrationsmenü unter „Konfiguration“ → „Tickets“ können unter „Default-Spalten in der Ticket-Auflistung“ weitere Spalten für die Standardansicht aktiviert werden, zum Beispiel „Autor“, „Projekt“, „Kategorie“, „Zielversion“ und einige andere Felder.
Bereits abgeschlossene Tickets werden auf jeder Unterseite sowie in allen Javascript-Popups, auf denen sie jeweils verlinkt sind, als durchgestrichen und grau dargestellt. Die Aufmerksamkeit der Entwickler soll schließlich nicht auf bereits erledigte Probleme und Fehler gelenkt werden. Trotzdem können als „Erledigt“ markierte Tickets eingesehen werden und bearbeitet werden.

Ticketansicht

In Abbildung 8 ist ein Ticket in der Detailansicht zu sehen. Das Ticket befindet sich im Status „Neu“ und hat die Priorität „Dringend“. Man findet über das Ticket weitere Informationen, wie beispielsweise die Kategorie, die zugehörige Zielversion, den Fortschritt, die aufgewendete Zeit sowie natürlich eine Fehlerbeschreibung vom Ersteller mit ggf. angehängten Dateien und Dokumenten. Dem Ticket können Unteraufgaben und zugehörige Tickets zugewiesen werden. In der Historie werden alle Ereignisse, die das Ticket betreffen, übersichtlich in chronologischer Reihenfolge aufgelistet. Alle Änderungen, sei es nur die Änderung der Ticket-Kategorie oder eine Änderung der Zielversion, alles wird in Redmine erfasst, sodass über jedes Ereignis informiert wird und man somit auf dem laufenden Stand ist.

(Abbildung 8: Ein Fehler (Ticket) in der Detailansicht)

Dem Verwalter werden zahlreiche Möglichkeiten geboten, Tickets und Informationen schnell und auf bequeme Art und Weise zu bearbeiten. So kann der Aufwand in einem einfachen Formular mit optionalem Kommentar, Datum, Aktivität sowie natürlich den Stunden verbucht werden. Mitglieder können Tickets „beobachten“. Zudem können Tickets kopiert, dupliziert oder in andere Projekte mit gleichzeitiger Änderung von Tracker, von zuständiger Person oder Status verschoben werden. Bei der Duplikation können Thema, Beschreibung sowie alle anderen Zusatzinformationen, die auch beim Anlegen eines neuen Tickets angegeben werden, verändert werden.

Benutzerdefinierte Felder

Obwohl Redmine bereits zahlreiche Felder zur Sammlung von zusätzlichen Informationen bietet, gibt es auch noch die Möglichkeit, beliebig viele eigene zusätzliche Felder zu definieren. Im Administrationsbereich kann der Datenbestand durch Anlegen eigener Felder erweitert werden. Benutzerdefinierte Felder können bei Informationsangaben zu Tickets, Aufwandszeiten, Projekten, Versionen, Benutzern, Gruppen, Aktivitäten, Ticket-Prioritäten sowie Dokumentenkategorien hinzugefügt werden. Für jeden Bereich können sich die Einstellungsmöglichkeiten ändern. So kann bei Tickets zum Beispiel auch der Tracker ausgewählt werden, auf dem dieses neue Feld erscheinen soll. Auch das Format, in welchem die Datenangabe erfolgen soll, kann der Administrator im Vorfeld oder auch bei bereits laufender Redmine-Instanz einstellen. Die Informationen können beispielsweise als Text, langer Text, Zahl oder Fließkommazahl abgespeichert werden. Auch das Datumsformat, Listen, also Selectboxen in der Benutzeransicht, oder Boolean-Werte werden bei benutzerdefinierten Feldern unterstützt. Für spezielle Anwendungen und Daten sind eventuell genauere Angaben erforderlich. Diese Möglichkeit ist durch die Eingabe von regulären Ausdrücken geboten. Eingaben können so auf korrekte Formatierung hin

5 Kommentare zu „Redmine: Projektverwaltung und Ticketsystem“

  1. Vielen Dank ;)

    Bis jetzt die beste Beschreibung zu Redmine die ich gelsen habe oder im Web gefunden habe!

    Gruß,
    Alex

    1. Vielen Dank für das Lob. :-) Verbesserungen in der Beschreibung oder Ergänzungen nehme ich gerne entgegen ;-)

  2. Vielen Dank auch von mir für den Artikel. Hat mir sehr geholfen die Software besser zu verstehen. Für unsere Firma boin ich auf der Suche nach einer geeigneten Software u.a. Projektverwaltung, Redmine befindet sich nun in der engeren Auswahl. Favorit mit kleinem Vorsprung ist bislang noch Comindware http://www.comindware.com/de/ - aufgrund der übersichtlichen und leicht zu verstehenen Oberfläche.

    Es gibt Unmengen an derartigen Programmen auf dem Markt, die nicht alle sofort zu verstehen sind. Da ist ein Artikel, wie dieser hier, sehr hilfreich!

  3. Vielen Dank für die Ausführungen zu Redmine! - Hört sich sehr interessant an.

    Ich bin auf Deinen Blog gestossen, weil ich nach Texten zum Program ToDoList von AbstractSpoon gesucht habe. In Deinem Blog schriebst Du, dass dies das einzig brauchbare Programm im Open Source Bereich sei.

    --> Was verwendest Du denn nun. ToDoList für kleinere Sachen und Redmine im Betrieb?

    Ich denke, dass Redmine der "Caterpiller" im diesem Bereich ist und ToDoList eher der kleine schneller Zettelkasten...

    Klär' mich bitte auf :)

    Gruß Michael

    1. Weder noch. ;) Für meine eigenen Projekte verwende ich nichts. Mittlerweile gibt es viele gute und recht günstige Online-Versionen solcher Management Systeme. Für ein paar Euro im Monat hat man sich den Wartungsaufwand gespart und muss nichts selbst installieren oder hosten. TodoList habe ich lange verwendet. Aber Stift und Papier auf dem Schreibtisch sind bei mir immer noch Standard für eine TODO-Liste. :)