Was ist Application Lifecycle Management (ALM)?

ALM (Application Lifecycle Management, auf Deutsch auch "Anwendungsmanagement", kurz AM genannt) steht für den gesamten Lebenszyklus eines Produkts oder einer Anwendung, von der Konzeption bis zur Stilllegung. Der Begriff wird im Rahmen von Softwareanwendungen verwendet, kann aber auch in anderen Systemen eingesetzt werden.

Der Lebenszyklus einer Anwendung umfasst in vielen Fällen diese Phasen:

  1. Anforderungsdefinition/-Spezifikation
  2. Entwicklung
  3. Testen
  4. Bereitstellung und Verteilung
  5. Wartung und Instandhaltung

Schematischer Überblick

Nachfolgend ein kurzer Überblick über die einzelnen Schritte und Phasen.

Anforderungsdefinition

Beginnen Sie mit der Idee auf dem weißen Blatt, erstellen Sie die Anwendungsfälle (Use Cases) und leiten Sie daraus die Anforderungen ab.

Der Lebenszyklus einer Anwendung sollte am Reißbrett beginnen, wo die relevanten Interessenvertreter definieren, was sie in der Anwendung haben müssen, um ihre Geschäftsprozesse abzubilden. Dies ist die Quelle für das Anlegen der Anforderungen.

Normalerweise wird die Anforderungsspezifikation von oben nach unten durchgeführt, und dies ist der Grund dafür, dass Anforderungen in vielen Fällen als hierarchische Baumstruktur dargestellt werden, wobei jeder Knoten eine Unteranforderung für seinen größeren übergeordneten Knoten darstellt.

Dennoch bevorzugen einige Entwicklungsansätze, vor allem die iterativen, Anforderungen als "flachere Strukturen" zu sehen, wobei die Anforderungen als Use Cases strukturiert und gegebenenfalls zu so genannten "Epics" aggregiert werden.

Zur guten Spezifikationspraxis gehört es, diese zu kategorisieren (z.B. nach Modul, Merkmal, etc.) und zu priorisieren: Was ist ein Muss, was kann später kommen, usw. In solchen Fällen ist ein einziger hierarchischer Baum möglicherweise nicht bequem genug, und alternative Methode können zu Rate gezogen werden und eine angemessenere Lösung bieten.

Entwicklungsphase

Nach der ersten Phase ist es an der Zeit, mit der Entwicklung und Programmierung der Anwendung zu beginnen.

Zu Beginn setzt sich das Team zusammen und teilt die Anforderungen der Anwendung in Teile und Phasen auf. Eine gute Praxis an dieser Stelle ist es, Vertreter der verschiedenen Teams anwesend zu haben: Entwicklung, Test, Produktmarketing, Support, IT, Vertrieb, usw. Die Idee hier ist, sicher zu stellen, dass die Anwendung, die entwickelt wird, allen realen Anforderungen und Notwendigkeiten entspricht und einfach zu benutzen, zu prüfen und zu verteilen ist.

Während der Entwicklungsphase sollten Tester damit beginnen, ihre Testfälle und Testumgebungen für die Testphase vorzubereiten. Sie sollten auch in ständigem Kontakt mit den Entwicklern stehen, Feedback zur Anwendung geben und ihnen bei Bedarf helfen, die entwickelten Features zu validieren, noch bevor sie dem Testteam "formell freigegeben" werden.

Es gibt viele verschiedene Entwicklungsmethoden, jede von ihnen mit ihren eigenen Vor- und Nachteilen. Eine populäre Methode ist die Agile Entwicklung.

Testphase

Während der Testphase haben die Tester die Aufgabe, zu überprüfen, ob die Anwendung den Anforderungen entspricht, die in den ersten Prozessschritten definiert wurden. Sie müssen auch sicherstellen, dass die Anwendung, selbst wenn dies nicht ausdrücklich in den Anforderungen definiert ist, die Erwartungen der Benutzer und aller anderen Beteiligten erfüllt, die sie während ihres gesamten Lebenszyklus unterstützen müssen.

Das Testen beginnt bereits in der Entwicklungsphase des Anwendungslebenszyklus, wenn Entwickler Unit- und Integrationstests als Teil ihrer Programmiertätigkeit durchführen sollten (heute ist es nicht ungewöhnlich, dass Continuous-Integration-Systeme in vielen Entwicklungsteams anzutreffen sind). Ergänzt wird dies durch die Arbeit des Testteams, das die Verifikation aller entwickelten Features durchführt, sowie die vollständige Integrationstests des gesamten Systems, sobald die Entwicklung abgeschlossen ist.

Während der Testphase identifizieren und berichten die Tester Probleme, die von der Entwicklung angegangen werden müssen. In Fällen, in denen nicht klar ist, ob die Probleme behoben werden sollen (oder ob es überhaupt Fehler gibt), sollte das Team Experten aus anderen Abteilungen hinzuziehen, um ihren Beitrag zu leisten. Die Entwicklungs- und Testphase endet, sobald die Anwendung ein Qualitäts- und Stabilitätsniveau erreicht hat, das gut genug für die Freigabe ist. Das wird durch das die Produktmarketing-Abteilung definiert. Es ist weder praktisch noch wirtschaftlich, "perfekte" Produkte zu entwickeln.

Wenn alle Phasen bis zu diesem Punkt des Lebenszyklus der Anwendung (Anforderungen, Entwicklung und Test) korrekt durchgeführt wurden, wurde so sicher gestellt, dass die Bereitstellungs- und Wartungsphasen einfacher, reibungsloser und damit kostengünstiger werden.

Bereitstellung und Verteilung

Der Einsatz und die Einführung hängen von der Art des Produkts ab:

  • On-Premises-Client-Server- oder Web-basierte Anwendungen, die in einem installierbaren Format veröffentlicht und dann auf dem Server des Kunden verteilt, installiert und konfiguriert werden müssen.
  • SaaS-Produkte, die auf den internen Servern des Unternehmens eingesetzt werden müssen.
  • Client-Anwendungen, die an die Kunden per Datenträger oder Download verteilt werden.
  • Nicht-Software-Produkte mit eigenem, individuellem Bereitstellungs- und Distributionsprozess.

Jede Produktart hat ihre eigenen, unterschiedlichen Attribute und Spezifikationen.

Wartungsphase

Die Wartung ist traditionell die längste Phase im Application Lifecycle Management, und sie ist auch diejenige, bei der die Teilnahme der Test- und Entwicklungsteams in der Regel am geringsten ist.

Wenn die Arbeit in den vorangegangenen Phasen effektiv durchgeführt wurde, wird der Wartungsaufwand für das Produkt deutlich geringer sein. Grundsätzlich gilt: Je näher das System an den tatsächlichen Bedürfnissen und Anforderungen des Anwenders ist und je mehr Probleme während der Testphase und Entwicklungsphase aufgetreten sind, desto weniger Probleme sind während der Wartungs- und Ausroll-Prozesse zu erwarten.

Ein wichtiger Teil der Wartungsphase ist die Definition des so genannten Ruhestands des Systems, der im Grunde genommen der Zeitpunkt ist, an dem Benutzer die Arbeit mit dem Produkt einstellen und entweder auf eine neuere Version umsteigen oder auf ein anderes Produkt migrieren sollten.

Zeta Test Management

Zeta Test Management unterstützt Sie im ALM-Zyklus unter anderem mit:

  • Erfassen und Bearbeiten von Anforderungs-Definitionen im Requirements Management.
  • Erstellen und Dokumentieren von Testfällen und Testergebnissen im Test Management.
  • Auswerten von Testergebnissen im Reporting.

Probieren Sie es doch einfach mal selbst aus: Zeta Test Management jetzt kostenlos testen!