05.07.2011
Configuration Management: Voraussetzung für Agile Development
Was wir in früheren Blogbeiträgen schon mehrfach gesagt haben, scheint mittlerweile auch auf der anderen Seite des Atlantiks angekommen zu sein. Spass beiseite; zwei Blogbeiträge auf «CM Crossroads» thematisieren die Wichtigkeit, ja Notwendigkeit vonVersionsmanagement, Automatisierung, privaten Workspaces und Continuous Integration für die agile Entwicklung. Und wer macht heute schon keine agile Entwicklung?
Autor der beiden Blogbeiträge ist AccuRef, ein US-Hersteller von Werkzeugen für das Software-Konfigurationsmanagement:
- SCM Best Practices and Continuous Integration Go Hand-in-Hand
- Continuous Integration and Enabling Local Developer Builds
Die Beiträge sprechen Wahrheiten aus, die hüben und drüben leider noch nicht Allgemeingut geworden sind.
Versionskontrolle: Voraussetzung für Agile Entwicklung
Agile Development ohne Software-Versionskontrolle ist etwa so wirkungsvoll wie Nägel einschlagen mit der blossen Faust. Entwicklung in kleinen Inkrementen funktioniert nur, so die Ansicht von AccuRef, wenn die Versionskontrolle Buch führt, Ordnung und Überblick über alle Artefakte der Entwicklung. Dazu gehören neben der entwickelten Software auch alle Werkzeuge, Datenbankbeschreibungen, Test- und Installationsscripts, Fremdsoftware usw.
Agile Entwicklung benötigt Continuous Integration
Agile Entwicklung bedeutet automatisch Continuous Integration, sprich Integration im Minutentakt, (was nicht ganz wörtlich zu nehmen ist). Was sollen die Entwickler mit den fertigen Artefakten tun? Es gibt nur Eines: integrieren in das entstehende Release. Zögerndes Abwarten hat nur zur Folge, dass darin enthaltene Fehler nicht jetzt, sondern eben erst später entdeckt werden, im Stau der andern liegen gebliebenen, zur Integration aufgeschobenen Artefakte.
Continuous Integration setzt Private Workspaces und Automatisierung voraus
Aber dass der Entwickler den Mut haben darf, ja nicht nur den Mut, sondern die Voraussetzungen, um überhaupt rasch integrieren zu können, muss er – lokal für sich – eine Umgebung zur Verfügung haben, in der er ungestört für sich allein – vollautomatisch!, ohne manuelle Intervention – mit den «echten» Bibliotheken, Software-Builds und -Tests von A bis Z durchführen kann. Nur so ist mit dem Gebrauch lokaler Workspaces das Phänomen«auf meiner Maschine lief aber alles!» vermeidbar.
Lokale Workspaces schützen den Entwickler vor den Einflüssen der anderen Entwickler, die ebenfalls Software integrieren. Und umgekehrt, aus der Sicht seiner KollegInnen, sind diese gefeit vor seinen Fehlern.
Haben wir das nicht auch schon gesagt?
In der Tat, das alles erinnert an einige unserer früheren Blogbeiträge:
Agile Methoden und SCCM
Gerade agile Methoden brauchen SCCM
Continuous Integration
Best Practice: Merge and Integrate as Often as Possible
Continuous Integration – 50 Mal pro Tag!
Automatisierung
Automatisierung von Build und Deployment reduziert Kosten – ein Praxisbericht
Automation lohnt sich
ALM-Integration: Prozessautomation
Private Arbeitsbereiche
Best Practice: Private Arbeitsbereiche
Fazit aus diesem Blick in die Blog-Vergangenheit und -gegenwart: Was gestern schon aktuell war ist es immer noch – und bleibt es auch, denn die Aufgaben bleiben!


















