In dem heutigen Blogbeitrag wollen wir uns mit den unterschiedlichen Phasen innerhalb eines modernen Application Lifecycle Managements (ALM) auseinandersetzen und die Eigenschaften genauer betrachten. Doch was versteht man eigentlich genau unter Application Lifecycle Management?

„Application Lifecycle Management (ALM) soll einen Rahmen aufspannen, in dem man die Planung, die Entwicklung, den Betrieb und die Wartung von Software betrachtet.“

ALM

Wir beginnen also mit der Idee eines Produktes, gehen über seine Entstehung zu seiner Auslieferung und Inbetriebnahme und schließen mit der End-of-Line-Phase. Darüber hinaus wird die kontinuierliche Weiterentwicklung betrachtet, inklusive der Services und Support. Dabei muss nicht nur der Rahmen des Produkts berücksichtigt werden, sondern auch das komplette Product Lifecycle Management.

Zu Beginn sollten Sie deshalb auch beispielsweise folgende Fragen berücksichtigen:

Wie wird das Produkt nach der Entwicklung verbreitet? Reicht ein USB-Stick oder soll die Software über einen Server verteilt werden? (Distribution)

Wie geht das Projekt mit Änderungen um? Welche Änderungen werden implementiert und wer wird die Änderungen bearbeiten? (Change Management)

Wie setze ich mein(e) Entwicklerteam(s) am effizientesten ein? Wie kann ich Teams skalieren und unabhängig voneinander einsetzen? (Branching & Merging)

Sie sehen also, Application Lifecycle Management und Product Lifecycle Management sind Disziplinen, die sich nicht klar voneinander trennen lassen und sich gegenseitig beeinflussen.

Aus diesem Grund wagen wir einen genaueren Blick in die unterschiedlichen Phasen in einem modernen Application Lifecycle.

Die Define Phase:

Die Ziele und die Anforderungen der Stakeholder (Kundenanforderungen) an das System sind Gegenstand für die Definition (Phase „Define“) der Software. Innerhalb dieser Phase werden aus den meist natürlich-sprachlich formulierten Anforderungen (Problem Space) Features (Solution Space) für das System definiert, welche den Nutzern zur Verfügung stehen.

Die Define Phase liefert damit nicht nur Antworten auf die Frage was der Kunde sich wünscht, sondern auch wie die Umsetzung aussehen wird. Vorgehens- und Informationsmodelle werden festgelegt, Teams skaliert und eine erste Roadmap mit Meilensteinen definiert.

Die Develop Phase:

In der Phase „Develop“ des betrachteten ALM Prozesses werden Features z.B. durch Klassen-, Sequenz- oder Datenflussdiagramme verfeinert, sodass auf dieser Basis der Code des Systems implementiert, Builds erstellt und getestet werden können.

In der Develop Phase befinden wir uns schon in der Herstellung unseres Produktes. Die Architektur setzt die Rahmenbedingungen für die Entwicklung. Die Entwicklung erstellt daraufhin unter Berücksichtigung der Rahmenbedingungen das Produkt und die Tester entwickeln parallel dazu die ersten Testfälle und Testpfade. In letzter Zeit werden in dieser Phase vor allem Praktiken aus dem agilen Umfeld eingesetzt. Iterative Entwicklungen liefern Ergebnisse in kurzer Zeit und helfen so ein schnelles Feedback der Stakeholder zu erhalten.

Sie sehen also, je nach Projektgröße und Laufzeit gibt es einige Dinge, die in einem Application Lifecycle Management berücksichtigt werden müssen. Im nächsten Blogbeitrag widmen wir uns den anderen Phasen und betrachten die nötigen Randbedingungen.