Versionshistorie von Softwaresystemen mit Dennis Pagano bei der JUG-Darmstadt

Am 13.10. war Dr. Dennis Pagano (CQSE GmbH) mit dem Vortrag „Was kann man aus der Versionshistorie eines Softwaresystems lernen?“ zu Gast bei der JUG Darmstadt.

PaganoNach einer kurzen Vorstellung ging es mit der Definition von Findings los. Was sind Findings überhaupt und sind 42000 davon viele? Die Antwort darauf ist von verschiedenen Faktoren abhängig. Einmal aus wieviel Quellcode das System besteht und zum anderen welche Qualitätsziele gesetzt wurden. Wichtig ist außerdem, wie der Trend aussieht, d.h. werden es mehr oder weniger Findings oder ist die Anzahl konstant. Und damit war Dennis auch schon bei der Versionshistorie von Softwaresystemen, d.h. was kann man aus der Versionshistorie über Teamwechsel, Code- Ownership lernen? Was ist eine Head-Analyse und was versteht man unter Klonen und inkonsistenten Klonen und wie entstehen Bugs daraus.

Pagano Gleich zu Beginn hat Dennis gesagt, dass es kein „Silver Bullet“ gibt, das alle Probleme aufzeigt.
Vielmehr geht es darum, durch Analyse der Versionshistorie eines Softwaresystems, potentielle Probleme, die in einem Projekt schlummern können, zu erkennen und frühzeitig gegenzusteuern.
Dabei hat er auch beschrieben, wo die Vorteile der Analyse einer ganzen Versionshistorie im Vergleich zum letzten Stand der Software sind.
Während des Vortrags hat Dennis verschiedene Open Source-Projekte vorgestellt, die er untersucht hat. Durch die Analyse der Commits liess sich schon sehr viel erkennen.
Beispielweise, wer die Haupt-Commiter sind, wer sich sporadisch beteiligt, wer irgendwann abgewandert ist oder auch wann eine Reihe von Features im Block umgesetzt und eingecheckt wurden. Außerdem kann man Teamwechsel sehr gut erkennen.
Im Anschluss hat Dennis die Projekte nochmal als Treemap gezeigt, wobei diesmal analysiert wurde, wer an welchem Teil des Softwaresystems gearbeitet hat.

PaganoDaran konnte man sehr gut sehen, wenn Teile des Systems nur von einem oder wenigen Entwicklern bearbeitet wurden, sodass ggf. das Wissen über diese Teile breiter gestreut werden muss, damit das Know-How nicht verloren geht, wenn der Entwickler abwandert.
Anschliessend ist Dennis noch einmal tiefen auf Klone und Klonüberdeckungen eingegangen, d.h. was Klone sind, wie sie entstehen, wie man sie erkennt und was sie für Folgen haben und wie man sie vermeidet.
Im zweiten Teil des Vortrags ist er auf Werkzeuge eingegangen, die bei der Analyse helfen können. Beispielsweise conQAT. Anschliessend ist er ausführlicher auf Teamscale eingegangenen und hat die Funktionsweise und die Vorteile erklärt.
Weiter ging es dann damit, dass er beschrieben hat, wie man mit Softwaresystemen umgeht, die man übernommen hat, d.h., wie man diese schrittweise aufräumt und ständig den Fortschritt kontrolliert.

Pagano Zum Abschluss hat Dennis nochmal klar gemacht was der Unterschied zwischen der Analyse eines aktuellen Softwaresystems und der Analyse der Versionshistorie ist und welche Vorteile die Analyse der Versionshistorie bietet.
Im Anschluss an den Vortrag hatte uns Accso Getränke und Essen zur Verfügung gestellt, so dass man gemütlich über den Vortrag diskutieren konnte. (Vielen Dank an Accso für die Räumlichkeiten und der Verpflegung.)
Dennis hat nach dem Vortrag noch einer Reihe von Interessierten das Werkzeug Teamscale live vorgeführt und viele Fragen zu dem Tool und dem Thema im Allgemeinen beantwortet.
Vielen Dank an Dennis für den Besuch in Darmstadt und den interessanten Vortrag!

Kommentare sind abgeschaltet.