Was ist ALM?
Application Lifecycle Management (ALM) ist die Erstellung und Pflege einer Softwareanwendung, bis sie nicht mehr verwendet wird. Es umfasst mehrere Prozesse, Tools und Mitarbeiter, die zusammenarbeiten, um jeden Aspekt des Lebenszyklus zu verwalten, wie Ideen, Design und Entwicklung, Tests, Produktion, Support und eventuelle Redundanz.
ALM wird auch als integriertes Application Lifecycle Management bezeichnet, da verschiedene Softwareexperten wie Entwickler, Analysten, Tester und Change Manager während des gesamten Anwendungslebenszyklus zusammenarbeiten. Die Zusammenarbeit zwischen Teams und der Einsatz verschiedener unterstützender Tools stellen sicher, dass die Anwendungsentwicklung den Geschäftszielen entspricht und das Projekt erfolgreich ist.
Warum ist ALM wichtig?
Bei der traditionellen Softwareentwicklung waren die verschiedenen Bereiche des Softwareentwicklungsprozesses vollständig getrennt. Eine solche Fragmentierung führte zu Prozessineffizienzen, Lieferverzögerungen, unerwarteten Änderungen des Umfangs und Kostenüberschreitungen. Application Lifecycle Management (ALM) löst diese Probleme effektiv, indem mehrere Disziplinen, Praktiken und Teams unter einem Dach integriert werden. Die Zusammenarbeit erleichtert das Erstellen, Bereitstellen und Verwalten komplexer Software.
ALM bietet während der gesamten Lebensdauer einer Softwareanwendung mehrere Vorteile.
Gibt eine klare Projektrichtung
ALM-Prozesse und -Tools helfen Entwicklungs- und Testteams bei der Planung und Umsetzung ihrer Projektstrategie. Sie können die Projektanforderungen genauer abschätzen und die Zukunft der Anwendung besser abbilden. Sie können auch Entscheidungen in Echtzeit treffen und den Plan effektiv anpassen, wenn sich die Situation ändert.
Erhöht die Sichtbarkeit in Teams
Die in ALM verwendeten Tools und Techniken schaffen eine konsistente Projektansicht für alle Teams. Jeder kennt die bisher geleistete Arbeit und die Aufgaben, die noch übernommen werden müssen. Verschiedene Teams können zusammenarbeiten, um die nächsten Schritte in der Anwendungsentwicklung zu priorisieren.
Verbessert die Teamzufriedenheit
Teams kommunizieren besser und arbeiten effektiver zusammen. Diese Kommunikation verbessert die Produktivität und erhöht die Zufriedenheit der Mitarbeiter und das Engagement am Arbeitsplatz.
Steigert Entwicklungsgeschwindigkeit und Qualität
Wenn ein Softwareentwicklungsteam ALM-Prinzipien befolgt, arbeiten Entwickler und Tester effizient zusammen, um die Softwarequalität zu verbessern. Sie können die Automatisierung verwenden, um den Quellcode häufig zu testen und Codierungsfehler frühzeitig zu beheben. Durch das Testen des gesamten Codes für jede Änderung können Teams neue Softwarefunktionen schneller und sicherer bereitstellen.
Was sind die Stufen von ALM?
Der Lebenszyklus einer Anwendung besteht aus fünf Phasen:
Erfassung der Anwendungsvoraussetzungen
In der Anfangsphase definieren die relevanten Stakeholder, was sie von der Anwendung erwarten. Sie analysieren, wie die Anwendung sie dabei unterstützt, ihre Geschäftsziele und Anforderungen an die Einhaltung gesetzlicher Vorschriften zu erreichen. Anforderungsverwaltung beinhaltet in der Regel das Schreiben von Benutzererfahrungen, die zeigen, wie verschiedene Benutzer mit der Anwendung interagieren.
Beispiel zur Erfassung der Anwendungsanforderungen
Eine Bank möchte eine Mobile-Banking-Anwendung erstellen. Es definiert zwei Benutzer: Kunden und Administratoren. Das Anforderungsverwaltungs-Team identifiziert zwei Benutzererfahrungen:
- Eine Kunden-Benutzererfahrung, die besagt, dass Kunden die Anwendung verwenden, um eine Anfrage zur Eröffnung eines neuen Bankkontos einzureichen.
- Eine Administrator-Benutzererfahrung die besagt, dass Administratoren die Anwendung verwenden, um Kundendokumente zu genehmigen.
Außerdem stellt das Anforderungsverwaltungsteam fest, dass das Softwaresystem der Anwendung Sicherheitsstandards entsprechen sollte, die den Datenschutzgesetzen entsprechen.
Anwendungsentwicklung
In der Entwicklungsphase arbeiten verschiedene Teams zusammen, um die Anforderungen in eine funktionierende Anwendung umzusetzen. Diese Schritte sind ein Beispiel:
- Projektmanager schätzen den Zeit- und Entwicklungsaufwand.
- Entwickler identifizieren die Entwurfsaufgaben und Programmieraktivitäten.
- Qualitätsanalysten fügen Überprüfungsaufgaben und Prüfpunkte für Qualitäts- und Fortschrittsprüfungen hinzu.
Die Entwicklungs- und Testteams planen auch einen Zeitplan für ihre Softwareprojekte. Sie identifizieren alle gegenseitigen Abhängigkeiten zwischen den Anforderungen und legen die Reihenfolge fest, in der neue Funktionen vervollständigt und freigegeben werden sollen.
Beispiel für Anwendungsentwicklung
Das IT-Team der Bank erstellt einen Entwicklungsplan für die mobile Anwendung. Die Teammitglieder stellen fest, dass sie zuerst die User Story des Kunden vervollständigen müssen, und testen sie dann gründlich, bevor sie mit den Anforderungen des Administrators beginnen. Sie wissen jedoch, dass sie beide Anforderungen erfüllen müssen, bevor sie das neue Produkt auf den Markt bringen. Sie codieren die Anwendung und geben sie in zwei Monaten an eine Beta-Gruppe weiter.
Anwendungstests
In der Softwaretestphase bewerten Qualitätsanalysten die Anwendung, um zu überprüfen, ob sie die Anforderungen erfüllt. Sie identifizieren und priorisieren Softwarefehler oder Bugs, die das Softwareentwicklungsteam dann behebt. Anwendungstests und -entwicklungen laufen oft gleichzeitig während des Lebenszyklus der Anwendung ab. Beispielsweise verwenden agile Entwicklungsmethoden automatisierte Testtools, um jedes Mal, wenn Entwickler eine Softwareänderung vornehmen, die gesamte Codebasis zu testen.
Beispiel für Anwendungstests
Das Qualitätssicherungsteam der Bank überprüft den Geschäftsfall der Kontoeröffnung für ihre Mobile-Banking-Anwendung. Sie stellen fest, dass ein Kunde nur einen Führerschein als Ausweisnachweis auswählen kann. Da die Bank auch Reisepässe als Ausweisnachweis akzeptiert, bittet sie das Entwicklungsteam, den Antrag zu aktualisieren, um diese Informationen aufzunehmen.
Anwendungsbereitstellung
Während der Bereitstellung geben die Entwickler die Anwendung für Endbenutzer frei. Die Versionsverwaltung umfasst auch die Planung, wie das Team Softwareänderungen im Laufe der Zeit einsetzt. Agile Entwicklungsteams automatisieren die Bereitstellung, um die Veröffentlichung neuer Funktionen und Updates zu beschleunigen. Tools und Services wie AWS CodeDeploy bieten eine bessere Bereitstellungskontrolle und minimieren Fehler in der Produktion.
Beispiel zur Anwendungsbereitstellung
Das mobile Anwendungsteam der Bank verwendet einen Cloud-Server, um den Anwendungscode zu hosten, sodass Administratoren von einer Website aus darauf zugreifen können. Sie stellen den Code auch in den App Stores beliebter mobiler Plattformen bereit, sodass Kunden ihn direkt herunterladen können.
Wartung der Anwendung
In der Wartungsphase arbeiten Support- und Entwicklungsteams zusammen, um verbleibende Fehler zu beheben, neue Updates zu planen und das Produkt weiter zu verbessern. Sie integrieren Benutzerfeedback und veröffentlichen neue Funktionen, die für Kunden relevant sind. Die Teams verwenden auch Tools wie AWS X-Ray und AWS CloudTrail, um die Anwendungsleistung und -nutzung in der Wartungsphase zu überwachen. Im Laufe der Zeit, mit fortschreitender Technologie, könnten sie auch beschließen, eine neue Anwendung auf modernen Systemen zu erstellen und die aktuelle nicht mehr zu verwenden.
Beispiel zur Anwendungswartung
Das IT-Team der Bank überwacht die Leistung ihrer mobilen Anwendungen und stellt fest, dass sie langsamer wird, wenn Kunden Dokumente hochladen. Sie nehmen Systemänderungen vor und verbessern das Design, bevor sie das nächste Update veröffentlichen.
Was sind ALM-Tools?
ALM-Tools (Application Lifecycle Management) sind Software, die Entwickler, Analysten und andere Stakeholder für das Anwendungsmanagement verwenden. Sie bieten eine standardisierte Umgebung, in der jeder kommunizieren und zusammenarbeiten kann. Im Folgenden werden einige allgemeine Funktionen einer integrierten ALM-Suite aufgeführt.
Projektmanagement
Die meisten ALM-Tools sind im Wesentlichen Projektmanagement-Tools. Sie können den Projektstatus in allen Phasen von ALM einsehen. Die Tools zeigen detaillierte Aufgaben und beinhalten Funktionen zur Schätzung und Projektplanung.
Anforderungsverwaltung
Ein ALM-Tool fungiert als zentrales Repository für die Benutzeranforderungen Ihrer Anwendung. Sie können die Benutzererfahrungen zusammen mit technischen und funktionalen Spezifikationen verknüpfen. Beispielsweise kann die Anwendungsanforderung für den Benutzerzugriff die technische Anforderung einer Passwortverschlüsselung haben.
Quellcode-Verwaltung
Viele ALM-Tools bieten Entwicklern Optionen, um Codeänderungen zu verfolgen. Verschiedene Entwickler können an einer einzigen Codebasis arbeiten, Änderungen vornehmen und kombinieren und den Entwicklungsprozess effizient verwalten.
Testverwaltung
Analysten verwenden ALM-Tools, um Softwaretests für eine kontinuierliche Integration zu schreiben und zu verwalten. Dieser Entwicklungsansatz testet automatisch jede Codeänderung an der Anwendung. Es verbessert die Qualitätssicherung und unterstützt die kontinuierliche Bereitstellung neuer Anwendungsfunktionen für Ihre Kunden.
Weitere Funktionen
ALM-Tools können mehrere andere Funktionen für ein effektives Management enthalten, wie zum Beispiel:
- Chat-Unterstützung in Echtzeit
- Projektportfoliomanagement
- Visualisierungstools wie Diagramme und Grafiken
Wie ist ALM im Vergleich zu anderen Lifecycle-Management-Methoden?
Der Lebenszyklus wird in der Technologie häufig verwendet, um sich auf den gesamten Prozess der technologischen Innovation und Unterstützung zu beziehen. Im Folgenden geben wir andere ähnliche Begriffe an.
Lebenszyklus der Softwareentwicklung
Der Software Development Lifecycle (SDLC) ist eine systematische Methode, mit der Sie qualitativ hochwertige Software kostengünstig produzieren können. Softwareentwicklungsteams verwenden den schrittweisen Ansatz des SDLC, um Software effektiv zu entwerfen, zu entwickeln, zu testen und bereitzustellen.
ALM vs. SDLC
SDLC beschreibt die Phase der Anwendungsentwicklung ausführlicher. Es ist Teil von Application Lifecycle Management (ALM). ALM umfasst den gesamten Lebenszyklus der Anwendung und setzt sich über SDLC hinaus fort. ALM kann während des Lebenszyklus einer Anwendung über mehrere SDLCs verfügen.
Produktlebenszyklus-Management
Produktlebenszyklus-Management (PLM) verwaltet das Design, die Produktion und den Verkauf physischer Produkte, insbesondere in der Fertigungs- und Maschinenbauindustrie.
ALM vs. PLM
ALM bezieht sich hauptsächlich auf Softwarekomponenten, während PLM auf das Vorhandensein einiger Hardware, Elektronik oder anderer physischer Komponenten im Produkt hinweist. Während die zugrunde liegenden Prinzipien von PLM und ALM dieselben sind, unterscheidet sich die Anwendung dieser Prinzipien.
Beispielsweise umfasst die Entwicklungsphase von PLM Fertigungsspezifikationen und die Produktmarketingphase umfasst das Verpackungsdesign. Aufgrund dieser Unterschiede verfügt PLM über eigene Tools. Sie können bestimmte ALM-Tools für Ihr spezifisches PLM anpassen und einrichten.
Was ist Anwendungs-Governance in ALM?
Anwendungs-Governance ist eine Reihe von Richtlinien, Verfahren und Regeln, mit denen Unternehmen Ressourcen während des Anwendungslebenszyklus effizient zuweisen. Es trägt zur Verkürzung der Lieferzeiten bei und schafft klare Verantwortlichkeit und Kontrolle während des gesamten Application-Lifecycle-Management-Prozesses (ALM). Eine starke Governance stellt sicher, dass die Anwendung die Datensicherheits-, Regulierungs- und Compliance-Anforderungen des Unternehmens erfüllt.
Die Anwendungs-Governance umfasst Folgendes:
- Datensicherheit und Benutzerzugriff
- Überprüfungen, Audits und Rollbacks von Anwendungen
- Zentrales Management der Ressourcen
- Leistungs- und Systemüberwachung
Was ist Anwendungs-Governance in ALM?
Anwendungs-Governance ist eine Reihe von Richtlinien, Verfahren und Regeln, mit denen Unternehmen Ressourcen während des Anwendungslebenszyklus effizient zuweisen. Es trägt zur Verkürzung der Lieferzeiten bei und schafft klare Verantwortlichkeit und Kontrolle während des gesamten Application-Lifecycle-Management-Prozesses (ALM). Eine starke Governance stellt sicher, dass die Anwendung die Datensicherheits-, Regulierungs- und Compliance-Anforderungen des Unternehmens erfüllt.
Die Anwendungs-Governance umfasst Folgendes:
- Datensicherheit und Benutzerzugriff
- Überprüfungen, Audits und Rollbacks von Anwendungen
- Zentrales Management der Ressourcen
- Leistungs- und Systemüberwachung
Wie kann Amazon bei Ihrem ALM helfen?
AWS-Management- und Governance-Services unterstützen Unternehmen, damit Sie schneller innovativ sein können und trotzdem die Kontrolle über Kosten, Compliance und Sicherheit behalten. Diese Dienste verwalten hochdynamische Cloud-Ressourcen in großem Umfang und bieten gleichzeitig eine einzige Steuerungsebene für das Management. Sie können auch die AWS-Management- und Governance-Services nutzen, um die Ressourcennutzung zu bewerten und Möglichkeiten zur Kostensenkung zu ermitteln.
Sie können zum Beispiel diese Services nutzen:
- AWS-Budgets zur Planung der Kostenkontrolle und Budgetierung Ihrer Ressourcen in AWS.
- AWS-Organisationen unterstützen die zentrale Governance und Verwaltung über AWS-Konten hinweg.
- AWS CloudFormation zur Modellierung und Bereitstellung Ihrer Cloud-Infrastrukturressourcen.
Beginnen Sie mit Application Lifecycle Management (ALM), indem Sie noch heute ein AWS-Konto erstellen.
Application Lifecycle Management in AWS – nächste Schritte
Sie erhalten sofort Zugriff auf das kostenlose Kontingent von AWS.
Beginnen Sie mit der Entwicklung in der AWS-Managementkonsole.