Automatisierung
Bild: Wikimedia Commons/BMW-Werk Leipzig - CC-BY-SA-2.0 |
Zu den großen Hindernissen gehören in der agilen Softwareentwicklung langwierige manuelle Prozesse. Ich habe bereits in mehreren Firmen erlebt, dass das Deployen von neuer Software auf höhere Entwicklungs- oder Testumgebungen Tage oder sogar Wochen dauerte (einen Großteil davon nahm das Warten darauf ein, dass die Personen die das als einzige konnten oder durften Zeit hatten). Nochmal wesentlich länger kann die Durchführung manueller Regressionstests dauern, der "Rekord" den ich in dieser Beziehung beobachtet habe waren drei Monate - solange dauerte es bis das Testteam alles durchgeklickt hatte. Auch die in manchen Branchen notwendige Dokumentation der Einhaltung von Vorschriften kann sich ziehen, ich erinnere mich an ein Projekt in dem mehr als zehn Prozent der Arbeitszeit dafür verwendet wurden.
Warum das mit agilen Methoden nicht vereinbar ist dürfte klar sein: wer in kurzen Abständen fertige Funktionen liefern will kann es sich nicht leisten tage-, wochen- oder sogar monatelang zu warten bis irgendwelche manuell durchgeführten Tätigkeiten beendet sind. Die einzige Lösung dafür ist dann eben die Automatisierung. Automatisierte Deployments brauchen nur noch Minuten, automatisierte Testsuites je nach Anteil der UI-Tests maximal Stunden und selbst Dokumentationen kann man automatisieren. Wer seine Aufgaben täglich in Tools wie Jira oder HP ALM aktualisiert (in wenigen Minuten machbar) kann deren Report-Bereiche gleich als Dokumentation nutzen, ohne dass zusätzliche Arbeit anfällt. Ist das alles etabliert sind selbst einwöchige Sprints kein organisatorisches Problem mehr. Und warum macht es dann nicht jeder?
Dass in vielen Firmen (noch) auf die Automatisierung verzichtet wird hat mehrere Gründe. Fehlende Kenntnis der technischen Möglichkeiten ist einer, Technik-Skepsis ein anderer (ja, die gibt es seltsamerweise auch in der IT-Industrie), am häufigsten ist aber das (scheinbare) Kostenargument. Für Erstellung und Betrieb der Automatisierungs-Programme müsste man ja personelle Ressourcen bereitstellen, für die einfach kein Geld da wäre. Alles viel zu teuer. Einer näheren Betrachtung hält das allerdings nicht stand, im Gegenteil: durch die Automatisierung der Abläufe werden Arbeitskräfte freigesetzt, die sich jetzt eben nicht mehr durch manuelle Kleinarbeit quälen müssen. Und selbst wenn von diesen freigewordenen Kapazitäten ein Teil für die genannten Aufgaben wieder draufgeht - in Summe steht bei gleichem Personalaufwand ein größerer Anteil der Arbeitskraft für die Produktentwicklung zur Verfügung.
Automatisierung macht Softwareentwicklung also nicht nur schneller, es macht sie auch billiger.