Ein Eclipse-Plugin für Code-Reviews von agilereview.org

von Maud Schlich

AgileReview – Schnelle und einfache Code Reviews mit Hilfe von Eclipse durchführen

Gestern abend habe ich einen Vortrag der Software Technologie Initiative e.V. (STI) besucht mit dem Titel AgileReview – Schnelle und einfache Code Reviews mit Hilfe von Eclipse durchführen. STI bietet seinen Mitgliedern Arbeitskreise und auch einen Jourfix an, an dem kostenlose interessante Vorträge gehalten werden.

Code-Reviews

Gerade bei der Durchführung von Code-Reviews ist es für Entwickler hilfreich, wenn Anmerkungen direkt im Code gemacht werden und nicht in Form von Tabellenkalkulationen notiert und zur Korrektur wieder gesucht werden müssen. Bislang war dies aber nicht problemlos möglich. Der Code soll ja durch die Gutachter nicht wirklich verändert werden, die Überarbeitung bleibt in der Verantwortung des Autors. Das Einfügen von Kommentaren im Code hat den Nachteil, dass diese Reviewkommentare nicht oder zumindest nur schwer von den eigentlichen Code-Kommentaren unterschieden werden können. Die Variante den Code als PDF zu drucken oder in eine Textverarbeitung zu importieren und jeweils die Kommentarfunktionalitäten dieser Anwendungen zu nutzen, hat andere offentsichtliche Nachteile.
Das im Vortrag vorgestellte Eclipse-Plugin soll hier Abhilfe schaffen.

Eclipse-Plug AgileReview

Das AgileReview-Plugin von AgileReview.org überrascht bereits von Anfang positiv mit einer klar strukturierten Benutzeroberfläche und einfacher Bedienung.

Screenshot des Eclipse-Plugins AgileReview (C) AgileReview.org
Screenshot des Eclipse-Plugins AgileReview (Copyright: AgileReview.org)

Zu Beginn wird ein Review-Projekt angelegt, das einige wenige Metadaten zum Review enthält und dem alle zu reviewenden Codefiles zugeordnet werden.

Während des Lesens markiert der jeweilige Gutachter die auffällige Textstelle, klassifziert seinen Befund (aktuell nach Schwere low, medium, high) und fügt seine Anmerkungen hinzu, zusätzlich kann hier auch auf ein Bugtracking-Tool verwiesen werden.

Das Plugin sorgt dafür, dass im Code eine Referenz im Format /*?|Reviewname|Autorname|KommentarID|?*/ als Kommentar eingefügt wird. Die Kommentare werden für jeden Gutachter einzeln in einer separaten XML-Datei abgelegt und werden somit auch nach Änderungen des Codes z.B. durch Refactoring an der korrekten Stelle angezeigt, selbst dann, wenn Code umbenannt oder verschoben wurden.

Die Reviews können gleichzeitig durchgeführt werden: wird der Code von mehreren Gutachtern mit Kommentaren versehen, dann sorgt das Konfigurationsmanagementwerkzeug bei der Auflösung von Konflikten automatisch auch dafür, dass der letztlich eingecheckte Code über das Mergen die Befunde aller Gutachter enthält.

Der Autor kann über eine Antwortmöglichkeit einzelne Befunde mit dem jeweiligen Gutachter diskutieren und/oder zusätzliche Anmerkungen hinterlegen.

Ob nun der Autor die Befunde mit den Gutachtern gemeinsam in einer Reviewsitzung bespricht oder er die Befunde alleine bearbeitet, eine weitere Klassifizierung der Reviewkommentare sieht das Plugin derzeit nicht vor.

Der Autor kann bei der Korrektur einzelne Befunde filtern und den Status des Befundes ändern.

Soll der Code vor Auslieferung an den Kunden von allen Reviewkommentaren bereinigt werden, so ist auch das kein Problem: ein “Clearing” löscht alle Referenzen vollständig (und unwiederuflich). Es sind also mehrere Review-Baselines dringend anzuraten:

  • mit dem Start des Reviews
  • nach Beendigung der Individuellen Vorbereitung und vor der Bearbeitung des Codes durch den Autor
  • nach Beendigung aller Korrekturen und vor dem Clearing

Ausblick

Die Version V1.0 soll wesentlich stärker modularisiert werden.

Dazu sind folgende Module in Arbeit:

  • ein separates Storage Plugin (statt nur XML also auch DB-Anbindung möglich)
  • ein Language Support Plugin für weitere Programmiersprachen
  • ein Export Plugin für Reporting auch außerhalb Excel
  • ein Tracker Connector für eine erweiterte Anbindung an Bugtracking-Tools

Weitere Ideen sind:

  • Kommentare eher als Sprechblasen anzuzeigen (ähnlich gängiger Textverarbeitungen) und
  • eine API für die Einbindung von Codecheckern

Fazit

Ich habe noch selten ein bereits als Version 0.x vorgestelltes Werkzeug gesehen, das mich so überzeugt hat. Die Akzeptanz, Codereviews mit diesem Plugin durchzuführen, dürfte bei Entwicklern hoch sein, da es eine für sie vertraute Oberfläche hat und intuitiv bedienbar ist. Die Unterstützung der Phasen Individuelle Vorbereitung und Korrektur sind in hohem Maße gelungen. Die Metadaten zu einem Review sind sowohl für die Planung als auch für die Erhebung von Kennzahlen deutlich zu knapp. Die genutzten Templates lassen sich nach Aussage von AgileReview.org bereits jetzt schon anpassen, bieten aber keine einfache Auswertung. Vermutlich müssten bei Nutzung des Plugins in der aktuellen Funktion die Planungsdaten als Beschreibung des Review-Projektes notiert und manuell ausgewertet werden. Auch eine genauere Klassifikation der Befunde in mehrere Kategorien wird aktuell nicht unterstützt. Durch die Möglichkeit eines Exportes nach Microsoft Excel sind hingegen beliebige Berichte als Pivottabelle und mithin auch grafisch machbar.

Insgesamt ist das Tool bereits in der aktuellen Version lohnend und ich wünsche AgileReview.org viele Anwender, die auch bereit sind für den kostenlosen Download entsprechende Geldbeträge an das Team zu spenden.

AgileReview.org

Unter der Bezeichnung haben sich vier Master-Studenten der TU Kaiserslautern zusammengefunden, die nicht nur ihr Studium gemeinsam meistern, sondern auch in ihrer Freizeit Softwareprojekte auf die Beine stellen. Dabei handelt es sich um:

Team von AgileReview.org
Team von AgileReview.org: Malte Brunnlieb, Philipp Diebold, Thilo Rauch, Peter Reuter (v.l.n.r) (Copyright: AgileReviw.org)

AgileReview hat übrigens weder direkt etwas mit agiler Softwareentwicklung zu tun noch mit den Agile Inspections, wie sie Tom Gilb vorgestellt hat. Auch hier (wie so oft) soll mit agil nur die Einfachheit und Schnelligkeit betont werden.

 

 


Whitepaper-Banner flach

Zurück