Scrum und Continuous Integration

Ein wichtiges Tool zur Verbesserung der Entwicklungsgeschwindigkeit ist Continuous Integration, kurz CI. Dabei geht es um die kontinuierliche Integration der Arbeit, sprich dem Code. Scrum setzt ja auf Sprints und innerhalb der Sprints auf die Featureentwicklung. Diese Features werden in der Regel auf einzelnen git Branches entwickelt. Damit diese Branches nicht nur beim Entwickler gebaut und getestet werden, muss dies zentral und automatisch erfolgen. Dies ist die Grundidee von CI Tools wie Jenkins.

Scrum und Continuous Integration

Scrum hat als Grundprinzip, dass man ständig lieferfähig ist. In der Regel liefert man die Ergebnisse des letzten Sprints aus. Ggf. muss oder möchte man noch einen gesonderten Test-Sprint machen in dem superkomplizierte nicht-automatisierbare Integrationstests durchgeführt werden. Letzteres ist insbesondere bei der Software-Entwicklung für Geräte interessant.
Bei mir/uns haben sich Jenkins und buildbot als CI Server gut gemacht. Jenkins gefällt mir besser, da er leichter zu erweitern ist und es schon ganz viele Plugins gibt (für git, Sonar, ClearCase uvm.). Nach jedem git push läuft Jenkins los und macht einen clean build. Ein clean build setzt wie der Name sagt, auf einer sauberen Umgebung auf. Es holt den Quelltext aus dem git Repository, installiert ggf. Tools und baut dann das Projekt. Anschließend laufen hoffentlich auch automatische Tests.

Nachtrag 2017: gitlab hat in vielen Unternehmen die bestehenden CI Tools abgelöst, da es Versionsverwaltung, Issuetracking (Ticketsystem) und einfache Dokumentation gut integiert. Bei Packetwerk setzen wir ebenfalls gitlab ein und sind damit voll zufrieden.

Den Installer kann man sich (wenn man weitere Tests durchführen möchte) vom Server holen und loslegen. Nach dem Build werden die Metriken (Unittest, Code Coverage, PDM, FindBugs) in Sonar eingepflegt. Dort erkennt man dann auch Schwachpunkte und hat vor allem einen Verlauf über die Zeit.

Scrum benötigt meiner Meinung nach Continuous Integration, da sonst weder schnell noch effizient ein Liefergegenstand vorliegt und zeitnahes Feedback fehlt.

Solltest du Fragen haben, nimm doch Kontakt mit mir auf.