ALM und DevOps als Gestalter und Begleiter einer modernen industriellen Softwareentwicklung
Ein Softwareprodukt verläuft in seinem Lebenszyklus mehrere typische Phasen, die sich unabhängig von der Art und Komplexität der Software auch in anderen Softwareprojekten wiederfinden. Obwohl die Softwareentwicklung kein Einheitsformat hat und immer mehr von Agilität und Flexibilität geprägt wird, ermöglicht sie bei einem industriellen Ansatz, die besten Ergebnisse zu erzielen, indem sich bewerte industrielle Methoden, Prozesse und Geschäftsmodelle über alle Phasen des Softwareentwicklungsprozesses und darüber hinaus über den gesamten Produktlebenszyklus erstrecken.
Definition
Die Software-Industrie ist relativ jung. Application Lifecycle Management (ALM) bezieht sich auf das klassische Konzept des Product Lifecycle Managements (PLM), das ursprünglich in der Fertigungsindustrie zum Einsatz kommt. Das Konzept des ALM zielt darauf ab, die im Lebenszyklus eines Softwareprodukts laufenden Managementprozesse zu industrialisieren, zu automatisieren, zu optimieren und zu vereinheitlichen.
Das ALM besteht aus mehreren phasenspezifischen Managementprozessen und umfasst Anforderungsmanagement, Softwarearchitektur, Design, Programmierung und Implementierung, Integration, Tests, Betrieb und Wartung, Konfigurations- und Änderungsmanagement sowie Projekt-, Lizenz- und Release-Management.
Im Gegensatz zu vereinzelten spezialisierten Engineering- und Management-Tools, die für bestimmte Phasen des Lebenszyklus ausgelegt sind, gibt es komplette ALM-Lösungen, die alle Lifecycle-Phasen vom Anforderungs-Engineering bis hin zur Analyse der Kundenerfahrungen abdecken und alle Prozesse im Rahmen eines Managementsystems konsolidieren. Fortgeschrittene integrierte ALM-Systeme unterstützen weitere Managementaktivitäten wie Projektplanung, Aufwandsschätzung, Aufgabenverwaltung, Berichterstattung, Statistiken, Überwachung und Kontrolle.
3 Bereiche der ALM-Prozesse für die Integration des vollständigen Produktlebenszyklus
ALM beschränkt sich nicht nur auf den Softwareentwicklungszyklus (Software Development Life Cycle, SDLC). Es umfasst den kompletten Lebenszyklus und den gesamten Zeitraum einer Anwendung: von der ersten Idee, durch Design, Implementierung und Betrieb, bis zur Außerbetriebsetzung und Abschaffung. Die ALM-Prozesse lassen sich in die folgenden drei Bereiche einteilen:
1. Entwicklung (Development)
- Anforderungsdefinition, -analyse und -management,
- Architektur
- Design
- Implementierung/Programmierung
- Tests
- Fehlerbehebung
- Optimierung und Weiterentwicklung
- Bereitstellung von BugFixes und Software-Updates/-Upgrades
2. Steuerung (Governance)
- Projektmanagement mit Aufgabenstellung
- Kontrolle
- Kommunikation
- Workflow und Dokumentenmanagement im gesamten Produktlebenszyklus
- Marktanalyse und Portfolio-Management
- Verifizierung der Anforderungen
- Analyse der Kunden-/Betriebserfahrungen
- Wirtschaftlichkeitsüberprüfung
- Qualitätssicherung
3. Betrieb (Operations)
- Administration
- Wartung
- Monitoring
- Sicherheitsüberwachung und -Analyse
- Configuration-, Change- und Lizenzmanagement
- Installation von Software-Updates und -Upgrades
Software Development Life Cycle (SDLC)
Obwohl SDLC ein grundlegender Teil der Entwicklung ist, ist er jedoch nicht mit dem gesamten ALM-Zyklus gleichzustellen. Nach der Implementierung der Anwendung ist die Bereitstellung der nächste Schritt, in dem die Anwendung in einer Produktivumgebung installiert und in den Wirkbetrieb überführt wird.
Sobald die Anwendung keinen geschäftlichen Nutzen hat und den neuen Anforderungen nicht mehr entspricht, erreicht sie das Ende des Lebenszyklus und wird abgeschafft.
Die Steuerung (Governance) ist der entscheidende Bereich, der sowohl die Projektziele als auch die Projektorganisation, Methoden und Verfahren im Lebenszyklus bestimmt und von dem der Projekterfolg abhängt. Der Bereich Betrieb (Operations) beginnt nach den erfolgreichen vollständigen Tests der Anwendung und erstreckt sich bis zu ihrer Außerbetriebssetzung.
Zusammenhänge
Alle drei ALM-Bereiche – Development, Gevernance und Operations – sind eng miteinander verbunden. Sie können in einzelnen Phasen des ALM-Zyklus parallel laufen und sind stark durch agile Produktentwicklung und moderne plattformübergreifende DevOps-Methoden (Development & Operations) geprägt. Mit ALM und DevOps werden die Organisation, Methoden, Vorgehensmodelle und Praktiken der Softwareentwicklung, des Projektmanagements und des Betriebs auf ein höheres Niveau gestellt, das den wachsenden technologischen und Marktanforderungen am besten entspricht und einen logischen Übergang der Softwareentwicklung zur Industrie 4.0 ermöglicht.
Fazit
ALM bietet neue Geschäftsmodelle und verändert sowohl die Prozesse als auch die Beziehung zwischen dem Softwarehersteller und den Kunden. Ein ALM-System kann sowohl aus Perspektive des Softwareherstellers (Softwareentwicklung, Vermarktung, Vertrieb, Support, Funktionsverbesserung und -erweiterung) als auch aus Perspektive des Kunden (Evaluierung, Pilotierung, Integration, Installation/Rollout, Betrieb) betrachtet werden. ALM-Tools erweisen sich als effektive Prozessmanagementlösungen, die die beiden Gruppen – den Softwarehersteller und die Kunden – verbinden und die Qualität der Anwendungssoftware nachhaltig verbessern. Das ist eine Win-Win-Situation, in der der Hersteller und die Kunden viele Vorteile aus den Funktionen einer ALM-Lösung ziehen und zur Steigerung der Softwarequalität aktiv beitragen.