Was ist ALM (Application Lifecycle Management)?

Luftaufnahme einer schönen Sommerlandschaft mit Nebel im Morgengrauen

Autoren

Camilo Quiroz-Vázquez

IBM Staff Writer

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

Was ist ALM (Application Lifecycle Management)?

ALM (Application Lifecycle Management) ist die Verwaltung von Softwareanwendungen von der Wiege bis zur Bahre – von der Konzeption und Entwicklung über die Bereitstellung, Überarbeitungen und Wartung bis hin zur Ausmusterung.

ALM umfasst die Zusammenarbeit von DevOps- und Geschäftsteams über den gesamten Anwendungslebenszyklus hinweg, um funktionsfähige Anwendungen bereitzustellen und auszuliefern, die sämtliche Geschäftsziele unterstützen. Es umfasst zahlreiche verwandte Disziplinen, darunter Anforderungsmanagement, Computerprogrammierung,Softwareentwicklung, Softwaretests und -wartung, Change Management, Continuous Integration, Projektmanagement und vieles mehr.

Application Development ist ein kollaborativer Prozess, der am besten funktioniert, wenn alle Stakeholder einen Einblick in den Prozess haben. ALM-Tools optimieren die Erstellung von Anwendungen durch eine definierte Methodik, die darauf abzielt, hochwertige Produkte zu entwickeln. ALM-Tools helfen dem IT-Betrieb bei der Automatisierung von Prozessen und Workflows, die eine schnellere Bereitstellung und bessere Wartung über den gesamten Anwendungslebenszyklus hinweg führen.

Die Implementierung einer erfolgreichen Strategie für die Verwaltung des Anwendungslebenszyklus erfordert ein umfassendes Verständnis der einzelnen Phasen des ALM und die Ausarbeitung einer klaren Strategie und eines Plans für die Entwicklung, Bereitstellung und darüber hinaus. Für eine erfolgreiche Produkteinführung müssen die Teams jeden Schritt des Prozesses mit der nötigen Aufmerksamkeit behandeln. Da Unternehmen immer mehr auf Anwendungen angewiesen sind, um ihre Geschäftsziele zu erreichen, ist es wichtig, dass sie über Tools und Technologien verfügen, mit denen Apps bereitgestellt werden können, die den Anforderungen der Benutzer vollends entsprechen.

Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

Phasen des Application Lifecycle Managements

Es gibt fünf Phasen des Application Lifecycle Managements, deren effektive Umsetzung jeweils einen separaten Satz von Tools und Fachwissen erfordert. Zudem sollten Projektmanager einen Workflow für ALM definieren. Zwei gängige Workflows sind:

  • Das Wasserfallmodell ist ein sequenzieller ALM-Prozess mit einem klar definierten Ablauf von Schritten. So wie ein Wasserfall ausschließlich von oben nach unten fließt, durchlaufen Projekte in diesem Modell einen Schritt nach dem anderen in einer festen Reihenfolge. Entsprechend werden Projekte bei diesem Modell erst dann in die nächste Phase überführt, wenn sie von bestimmten Stakeholdern endgültig genehmigt wurden. Wasserfallmodelle eignen sich vor allem für Projekte mit vorhersehbaren Schritten und wenigen Variablen.

    Das Wasserfallmodell hat aufgrund seiner starren Struktur allerdings den Nachteil, dass es schwierig und kostspielig sein kann, frühere Entwicklungsphasen zu überarbeiten oder Änderungen vorzunehmen, wenn Probleme oder Blocker auftreten.

  • Die flexible Entwicklung verfolgt im Gegensatz dazu einen iterativen Ansatz, der kleinere, inkrementelle Schritte – sogenannte Sprints – und eine Priorisierung des Feedbacks sämtlicher Teammitglieder ermöglicht. Jeder Sprint konzentriert sich auf die Umsetzung eines bestimmten Aspekts des Gesamtprojekts. Dabei wird ständiges Feedback von den relevanten Teams angefordert und in den Prozess einbezogen.

    Mithilfe der flexiblen Methodik können sich Teams leichter an Veränderungen anpassen und den Entscheidungsprozess demokratisieren. In agilen Arbeitsabläufen sind die Schritte nicht so klar definiert wie in Wasserfallmodellen, was die Gesamtkostenabschätzung des Projekts erschweren kann.

Die 5 Phasen des Application Lifecycle Managements

Anforderungsmanagement

In der ersten Phase definieren die Stakeholder klar, warum sie eine bestimmte Anwendung benötigen und welche konkreten geschäftlichen Anwendungsfälle damit gelöst werden können. Stakeholder identifizieren die beabsichtigten Benutzergruppen, planen das Design der Benutzeroberfläche der Anwendung und berücksichtigen gesetzliche Compliance-Standards. Ein detailliertes und ganzheitliches Verständnis der Geschäftsanforderungen ist in dieser Phase überaus hilfreich, um Engpässe zu vermeiden.

In dieser Phase erstellen die Projektmanager zudem auch Zeitpläne, legen klare Verantwortlichkeiten für die verschiedenen Teams fest und schaffen klare Kommunikationswege. So legen sie einen Grundstein für den weiteren Verlauf des Projekts, der dringend notwendig ist, um die darauffolgenden Phasen effizient und zielorientiert anzugehen.

Entwicklung

Sobald die Anforderungen für die Anwendung klar sind, beginnen die Entwicklungsteams mit der Erstellung der Anwendung. Obwohl sich die Entwicklungsphase in erster Linie mit der Erstellung der Technik beschäftigt, sollten Geschäftsteams – einschließlich der Produktmarketing- und Vertriebsteams – weiterhin einbezogen werden. So kann sichergestellt werden, dass das Produkt die gewünschten Ziele vollständig erfüllt und die konkreten Anforderungen und Schwerpunkte nicht aus dem Fokus geraten. Die Teams legen während der Entwicklungsphase Zeitpläne und Anforderungen für die Tests fest, die in der nächsten Phase durchgeführt werden.

Tests und Qualitätssicherung

Sobald eine erste Version der Anwendung erstellt wurde, stellen umfassende Tests sicher, dass das Produkt die geschäftlichen und gesetzlichen Anforderungen erfüllt – einschließlich der Anforderungen an Sicherheit und Datenschutz. Dafür werden sowohl alltägliche Nutzungsszenarien simuliert als auch explizit versucht, Fehler in der Anwendung zu provozieren und Sicherheitslücken zu finden. Die Tester geben die Fehler, die während des Prozesses entdeckt werden, anschließend an das Entwicklungsteam weiter. Die Mitglieder des Geschäftsteams sollten auch in die Testphase einbezogen werden, um sicherzustellen, dass die Anwendung tatsächlich ihren konkreten Erwartungen entspricht.

Test-Management- und DevOps-Teams nutzen die kontinuierliche Integration (Continuous Integration, CI). Dabei handelt es sich um einen Prozess, der das Erstellen und Testen von neuem Code automatisiert. CI hilft Entwicklern dabei, diesen neuen Code zu integrieren und Probleme schnell zu identifizieren. Die Tests und die Qualitätssicherung sollten auch dann weiterhin fortgesetzt werden, wenn ein Produkt bereitgestellt wird.

Bereitstellung

Nachdem eine Anwendung ausreichend getestet wurde, wird sie den Benutzern zur Verfügung gestellt. Der Release-Management-Plan umfasst dabei auch eine definierte Struktur für die Wartung und zukünftige Aktualisierungen der Anwendung. Nach der Veröffentlichung muss die Anwendung ständig überwacht werden, um den Zustand der Anwendung aufrechtzuerhalten. Schließlich ist es weiterhin möglich, dass bei der Verwendung der Anwendung durch die Benutzer weitere Probleme auftreten oder Sicherheitslücken entstehen, die böswillige Akteure ausnutzen könnten.

Kontinuierliche Wartung und Optimierung

Wenn Anwendungen veröffentlicht werden, treffen sie auf reale Benutzer und Anwendungsfälle, die zu Fehlern oder Mängeln führen können, die vor der Bereitstellung nicht erkannt wurden. Software und Lösungen für das Application Performance Management helfen Unternehmen, die Anwendungsleistung in Echtzeit zu überwachen. Zudem helfen Tools zur Konfigurationsverwaltung bei der Wartung der Systeme, Server und Geräte, auf denen Anwendungen laufen. Auf diese Weise werden Unternehmen dabei unterstützt, ihre Geschäftsziele zu erreichen und die Benutzererfahrung maßgeblich zu verbessern.

Darüber hinaus kann es aufgrund neuer Technologien oder Geschäftsfälle notwendig werden, bestehende Anwendungen zu aktualisieren. DevOps-Teams implementieren oft Continuous Delivery (CD)-Pipelines, um den Prozess der Wartung und Automatisierung von Apps zu automatisieren. Wenn ein Entwickler neuen Code für eine Anwendung entwickelt, automatisieren Continuous-Delivery-Lösungen den Prozess der Erstellung einer Testumgebung für diesen Code. Wenn der neue Code sämtliche Testanforderungen erfüllt, wird er anschließend automatisch bereitgestellt. CD ermöglicht es den Teams, Aktualisierungen und Fehlerkorrekturen schneller vorzunehmen, was die Ausfallzeiten der Anwendungen reduziert.

Wenn ALM korrekt implementiert wird, rationalisiert es den Prozess der Anwendungs- und Softwareentwicklung und stellt gleichzeitig sicher, dass sämtliche Stakeholder ihren Beitrag leisten können. So lässt sich eine Anwendung erstellen, die aktiv zum Erreichen der Geschäftsziele beiträgt und sämtlichen Anforderungen und Erwartungen der Benutzer erfüllt oder sogar übertrifft – und das auf eine effiziente Weise, die im Vergleich zu einem weniger fokussierten Prozess Zeit und Geld sparen kann.

AI Academy

KI-Bereitschaft mit Hybrid Cloud

Das Programm, das von führenden IBM Experten geleitet wird, soll Führungskräften dabei helfen, das nötige Wissen zu erwerben, um die Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

DevOps und Application Lifecycle Management

Entwicklungs- und Wartungstools werden im Rahmen des Application Lifecycle Managements eingesetzt, um DevOps-Teams dabei zu helfen, den Prozess der Entwicklung, Bereitstellung und Überwachung neuer Anwendungen zu rationalisieren und zu automatisieren.

  • Eine zielgerichtete ALM-Praxis erleichtert es DevOps-Teams im Laufe des gesamten Entwicklungsprozesses, mit dem Unternehmen und anderen Teams zusammenzuarbeiten und deren Feedback einzubeziehen. Diese Fähigkeit hilft dabei, unterschiedliche Teams auf gemeinsame Unternehmensziele auszurichten.

  • Versionssteuerungstools (als Quellcode-Management-Tools bezeichnet) ermöglichen es Teams, Änderungen am Code und Aktualisierungen der Anwendungssoftware im Laufe der Entwicklung zu überwachen. Dadurch können Änderungen im Falle von Problemen mit einer neueren Version rückgängig gemacht werden oder Funktionsweisen früherer Versionen wiederhergestellt werden. Entwickler können also problemlos an einer Aktualisierung arbeiten, ohne dass sie sich Sorgen machen müssen, früheren Code zu verlieren.

  • Dank der Rückverfolgbarkeitsfunktionen können Teams die zahlreichen Komponenten einer Anwendung im Laufe ihres gesamten Lebenszyklus überwachen, um Probleme schnell zu erkennen. So erhält das Entwicklungsteam einen tiefgreifenderen Einblick in sämtliche Aspekte einer Anwendung und kann Probleme frühzeitig beheben oder sogar proaktiv vorbeugen.

  • ALM unterstützt DevOps-Teams auch während des Testmanagements und stellt sicher, dass nur funktionierender Code bereitgestellt wird. Entwickler müssen dadurch nicht das Risiko eingehen, eine fehlerhafte Version an die Benutzer bereitzustellen, sondern können sie zunächst ausgiebig in einer sicheren Umgebung testen.

Tools für das Application Lifecycle Management

ALM-Lösungen bieten End-to-End-Tools für die Erstellung und Verwaltung von Anwendungen. Diese Tools werden häufig als SaaS (Software as a Service) oder cloudbasierte Lösungen bereitgestellt und helfen bei der Verwaltung der konstant wachsenden Anzahl von Anwendungen, auf die Unternehmen angewiesen sind. Zudem bieten Governance-Tools den Projektmanagern Lösungen zur Aufrechterhaltung der Kommunikation und der Feedbackschleifen zwischen den unterschiedlichen Teams.

Darüber hinaus bieten ALM-Lösungen auch Möglichkeiten, den Anforderungsmanagementprozess zu organisieren. Dies trägt dazu bei, dass Unternehmen all ihre Geschäftsziele erreichen, wobei sie für jedes einzelne Projekt geschätzte Zeitpläne und Kostenanalysen erstellen können. ALM-Tools gewähren ihnen einen besseren Einblick in den Lebenszyklus von Anwendungen und ermöglichen es, Silos aufzubrechen und eine effizientere Anwendungsentwicklung zu erzielen.

Herausforderungen beim Application Lifecycle Management

Zwei der größten Herausforderungen bei der Implementierung von ALM-Prozessen sind das Erzielen einer effizienten Skalierbarkeit und die Schwierigkeit, für eine durchgehende Sichtbarkeit zu sorgen. Die Bereitstellung von Updates, Fehlerbehebungen und neuem Code in einem komplexen System von Anwendungen ist eine schwierige Aufgabe, besonders wenn dabei der kontinuierliche Betrieb für die Benutzer aufrechterhalten werden muss.

Diese Aufgabe wird zusätzlich erschwert, wenn Anwendungen und Workloads auf Multicloud- und Hybrid-Cloud-Plattformen verteilt sind und kritische Aspekte des Anwendungsmanagements wie die Einhaltung von Vorschriften auf bestimmte Abteilungen mit ihren jeweils eigenen Experten beschränkt sind. Derartige Silos können für Komplikationen bei Echtzeit-Updates von Anwendungen sorgen und es gleichzeitig schwierig machen, Vorschriften einzuhalten, eine effiziente Leistung zu erzielen und weitere wichtige Faktoren zu gewährleisten.

Um diese Herausforderungen zu meistern, sollten Unternehmen ALM-Lösungen implementieren, die eine abteilungsübergreifende Transparenz und Einblicke bieten. Dabei ist es wichtig, dass diese von Teammitgliedern mit unterschiedlichen Fachkenntnissen verstanden werden können. ALM-Lösungen integrieren vorhandene Tools und Plattformen, um den Benutzern einen zentralen Überblick über die Daten zu ermöglichen.

ALM, SDLC und PLM: Was ist der Unterschied?

Die Überwachung des Lebenszyklus von Anwendungen, Software oder anderen Technologien bedeutet, sie von der ersten Konzipierung bis zu ihrem End-of-Life (EOL) zu verwalten. Es gibt allerdings noch weitere Entwicklungsmethoden, die den Begriff „Lebenszyklus“ verwenden, darunter Software Development Lifecycle (Softwareentwicklungszyklus, SDLC) und Product Lifecycle Management (Management des Projektlebenszyklus, PLM). Da einige Unterschiede zwischen diesen Prozessen bestehen, sollten die Begriffe nicht synonym verwendet werden. Um dies zu verdeutlichen, ist es hilfreich, die Unterschiede genauer aufzuschlüsseln: Eine kurze Aufschlüsselung der Unterschiede:

Software Development Lifecycle (SDLC)

Dieser Prozess bezieht sich auf die Methodik, die zur Entwicklung hochwertiger Software verwendet wird. Softwareentwicklungsteams konzentrieren sich dafür auf die Technologie, das Testen und die Bereitstellung einer bestimmten Software. SDLC bildet dabei eine der Phasen der Verwaltung des Anwendungslebenszyklus, die sich auf den Softwareentwicklungsprozess konzentriert. ALM hingegen ist im direkten Vergleich ein allgemeinerer Begriff, der die Planung, Entwicklung, Bereitstellung und Optimierung einer Anwendung umfasst.

Product Lifecycle Management (PLM)

Dieser Prozess verwaltet das Design, die Entwicklung und den Verkauf eines bestimmten Produkts. Im Gegensatz zu ALM beinhaltet PLM oft die Herstellung eines physischen Produkts anstelle von (oder zusätzlich zur) Software. PLM konzentriert sich auch stärker auf Aspekte wie die Verpackung, das Marketing und den Verkauf eines Produkts, wobei ein Hauptaugenmerk darauf liegt, die Markteinführungszeit zu verkürzen.

Weitere Lösungen
IBM Concert

Optimieren Sie die Anwendungsverwaltung und erhalten Sie KI-generierte Erkenntnisse, auf die Sie reagieren können, indem Sie IBM Concert verwenden, eine generative KI-gestützte Technologieautomatisierungsplattform.

IBM Concert erkunden
Application Performance Management-Software und -Lösungen

Verbinden Sie die Full Stack Observability mit dem automatisierten Application Resource Management, um Leistungsprobleme zu beheben, bevor sie sich auf die Customer Experience auswirken.

Application Performance Management Lösungen erkunden
Application Management Services für die Hybrid Cloud

Entdecken Sie hochinnovative Services von IBM Consulting für die Verwaltung komplexer Hybrid- und Multicloud-Umgebungen.

Application Management Services erkunden
Machen Sie den nächsten Schritt

Mithilfe von KI liefert IBM Concert wichtige Erkenntnisse über Ihre Abläufe und gibt anwendungsspezifische Empfehlungen zur Verbesserung. Entdecken Sie, wie Concert Ihr Unternehmen voranbringen kann.

Entdecken Sie Concert Zur selbstgesteuerten Tour