DevOps im ALM
Application Lifecycle Management (ALM) umfasst neben der Entwicklung von Software auch deren Betreuung. Klassische Konzepte und Begriffe beschränken sich allerdings häufig auf den Entwicklungsprozess. Dem allgemeinen Verständnis nach beinhaltet z. B. der Begriff der Softwareentwicklung die Phasen Analyse, Architektur/Design, Test und Deployment. Nach erfolgreicher Erstellung und Validierung einer Applikation ist die Entwicklung damit abgeschlossen. Das „fertige“ Produkt wird dem Kunden übergeben.
Nach der Auslieferung des Produkts beginnt aus ALM-Sicht allerdings die sogenannte Feedback-Phase. In dieser Phase werden die Verbesserungsvorschläge gesammelt; diese dienen wiederrum als Input für die Weiterentwicklung des Produkts. Die klassische Softwareentwicklung hingegen klammert diesen Teil jedoch oft aus und thematisiert ihn erst wieder, sobald solche Verbesserungsvorschläge in Form von Changes einen erneuten Entwicklungsprozess in Gang setzen. Dabei liegt auch der personelle Schwerpunkt der Betrachtung bei den Entwicklungsteams.
Dieser einseitige Fokus neigt dazu, andere Abteilungen zu ignorieren, die eigentlich bereits beim Entwicklungsprozess beteiligt sein sollten und vor allem darüber hinaus aktiv sind. Gemeint ist der IT-Betrieb, der für den reibungslosen Betrieb und die Wartung einer Software verantwortlich sind, während sie vom Nutzer verwendet wird.
Beide Abteilungen stehen ihrer spezifischen Rollen wegen häufig in einer Art operativem Konflikt: Die Entwicklung möchte bevorzugt kurze, schnelle und dadurch wenig komplexe Erweiterungen in die Software bringen; dem IT-Betrieb ist daran gelegen, das Produktivsystem möglichst lange stabil und gleichbleibend gut zu halten.
Aus diesen Erkenntnissen heraus ist die Idee des DevOps entstanden. DevOps versucht, das Handeln beider Parteien zu harmonisieren und zu verbessern. Es dient als Bindeglied zwischen Entwicklung und Betrieb. Das Konzept dahinter lässt sich grob zusammenfassen als die Vereinigung beider Abteilungen zu einem homogenen Team und betont gleichzeitig die Schwerpunkte Zusammenarbeit, Automatisierung und Prozess.
ALM fasst seinen Betrachtungsgegenstand weiter als die bloße Entwicklung einer Software und stellt für ein DevOps-Team die notwendigen Methoden zu Verfügung, nach denen ein gemeinsames Vorgehen von Entwicklung und Betrieb gewährleistet werden kann. Das Schaubild zeigt die Prozesse von Entwicklung und IT-Betrieb sowie deren Zusammenwirken.
Demnach ist die Entwicklung für die eigentliche Implementierung verantwortlich (Implement- bzw. Develop-Phase), der IT-Betrieb im Rahmen der Aufrechterhaltung der Systemfunktionalitäten für das Monitoring der Software (Monitor- bzw. Adapt-Phase).
Sämtliche anderen Phasen sollten von beiden Abteilungen gemeinsam getragen werden. Entwicklung und Betrieb agieren also geeint als DevOps-Team. Der Grund dafür liegt auf der Hand:
Die Implement- sowie die Monitor-Phase erzeugen jeweils voneinander abhängige Ergebnisse, Erkenntnisse und daraus resultierende Maßnahmen, die ohne den direkten Einbezug der anderen Seite zu Konflikten und Verzögerungen führen, vor allem wenn eine Seite methodisch anders vorgeht als die andere.
Von zentraler Bedeutung sind hier vor allem die Operate-Aktivitäten, in der die Software von der Test- bzw. Integrationsumgebung auf die Produktivumgebung ausgerollt wird, um sie den Endnutzern zur Verfügung zu stellen. Nur bei einer sicheren und abgestimmten Übergabe von neuentwickelter Software in diesen Live-Betrieb kann der Kunde langfristig zufriedengestellt werden. Daher sollten Betrieb und Entwicklung hier unbedingt zusammenarbeiten.
Besonders für diesen Bereich stehen außerdem eine Menge praktischer Tools zur Verfügung, um neben dem Grundsatz der Zusammenarbeit im Team vor allem eine größtmögliche Automatisierung von Arbeitsabläufen zu ermöglichen.
Somit wäre der IT-Betrieb nicht mehr alleine für die Produktivumgebung zuständig, die Entwicklung nicht mehr alleine für die Entwicklungsumgebung. Denn sämtliche Phasen und Aktivitäten im ALM beeinflussen grundsätzlich beide Umgebungen und können durch ein DevOps-Team gemeinsam am besten bearbeitet werden.
Wer sich eingehender mit dem DevOps-Gedanken beschäftigen möchte, findet vor allem auf Blogs und in Foren viele interessante und hilfreiche Beiträge zu diesem Thema.
Christian Wünch
Kontaktieren Sie Christian WünchChristian Wünch ist Consultant, Trainer und Coach bei der HOOD Group. Er berät unterschiedlichste Branchen aus Wirtschaft und Industrie auf den Gebieten der Systemanalyse und des Requirements Engineering. Seine Schwerpunkte liegen in der Analyse und Verbesserung von Systementwicklungsprozessen, RE-Einführungsstrategien sowie Requirements Management. Neben regelmäßigen Vorträgen und Veröffentlichungen für Konferenzen und Fachpresse zum Thema RE beschäftigt er sich mit den Möglichkeiten der Formalisierung von Anforderungen und sucht nach Wegen, natürlichsprachige Anforderungen für Systeme und Menschen verständlicher zu machen.