Inhaltsverzeichnis:
Wie sieht der Release Management Prozess aus?
Release Management ist ein Balanceakt zwischen:
- Kunden Mehrwert und neuartige Funktionen bieten
- Priorisieren von Wertströmen gemäß den Geschäftsanforderungen
- Verbesserung der Geschwindigkeit und Qualität von Release-Bereitstellungen
- Die Produktstabilität wird nicht beeinträchtigt.
Nicht jede Software ist gleich. Abhängig von der Funktionalität und Anwendung des Programms variiert der Softwareentwicklungsprozess in Genauigkeit und Intensität. Beispielsweise wird Software, die für den Einsatz in Flugzeugen entwickelt wurde, strengen Tests unterzogen. Man muss eine umfangreiche Dokumentation erstellen und mehrere Korrekturen implementieren, wenn enge Leistungstoleranzen nicht eingehalten werden. Die funktionalen Anforderungen und Qualitätsmetriken sind streng und die Software muss viele Genehmigungsstufen durchlaufen, bevor sie sich jemals einem Flugzeug nähert.
Ein disziplinierter Release-Management-Prozess stellt sicher, dass Software gemäß den Bestimmungen der wichtigsten Stakeholder erstellt, getestet und bereitgestellt wird. Das Team überprüft die Software, um festzustellen, ob sie das tut, was sie tun soll und ob sie planmäßig bereit ist.
Das Release-Management kombiniert die folgenden Elemente:
- Die geschäftlichen Erfordernisse: Kunden das zu geben, was sie brauchen, wenn sie es brauchen.
- Die technischen Aufgaben der Qualitätssicherung und Compliance
- Die Verwaltung von Software-Programmen
Man kann sich das Release-Management demnach als den Klebstoff vorstellen, der die miteinander verbundenen, aber unterschiedlichen Aufgaben zusammenhält, die das Software-Engineering umfassen: Design, Entwicklung, Test, Bereitstellung, Wartung sowie Geschäfts- und Kundenanforderungen.
Eine Version umfasst mehr als nur die Kernfunktionen des Software-Entwicklung und Programmierung. Während Entwickler eine Veröffentlichung offensichtlich als erfolgreiche Lieferung eines fertigen Produkts betrachten, sind auch mehrere unterstützende Geschäftsaktivitäten beteiligt, z. B. die Schulung von Verkäufern und Mitarbeitern des Kundensupports sowie die Werbung und Vermarktung der neuen Version. Diese Aktivitäten müssen synchron zum Release-Tempo erfolgen, was den Release-Management-Prozess komplexer macht.
Darüber hinaus ist das Release-Management nicht nur für neu entwickelte Software gedacht. Modifizierte Software durchläuft denselben Prozess, um sicherzustellen, dass die Stakeholder das bekommen, was sie wollen.
Die eigentliche Version kann manuell oder zunehmend automatisiert werden, je nachdem, wie ausgereift der Release-Management-Prozess ist. Amazon verwendet einen automatisierten Veröffentlichungsprozess, um jede Sekunde eine neue Version zu erhalten. In der Vergangenheit waren wöchentliche, monatliche und vierteljährliche Updates für Softwareentwicklungsteams typischer.
Releases können in vielen verschiedenen Formen vorliegen: als physisches Produkt in einer Box, als Download von einer Website oder einem Server, als Push auf ein Gerät aus einem mobilen App Store oder als nahtloses Update einer webbasierten Anwendung.
Alle Software-Engineering-Gruppen verwenden das Release-Management, um den Prozess zu vereinfachen. Man kann es auf Software anwenden, die intern verwendet oder als Produkt verkauft wird. Große und kleine Softwareentwicklungsgruppen setzen Release Management in allen Branchen ein und können die resultierende Software verwenden, um ihre eigenen Produkte oder Systeme auszuführen oder als Produkt an sich an Kunden zu verkaufen.
Einer der Entwicklungsansätze, die für das Release-Management am förderlichsten sind, heißt DevOps, ein Begriff, der durch die Kombination von Entwicklung und Betrieb gebildet wird. Wie der Name schon sagt, versucht DevOps, die Koordination zwischen Entwicklern und Betrieben in der Softwareentwicklung zu verbessern, indem in allen Phasen der Softwareentwicklung eine Kombination aus Automatisierung und Überwachung eingesetzt wird, um die Markteinführungszeit zu verkürzen und die Kundenzufriedenheit zu verbessern.
Schlüsselbegriffe im Release Management
Um das Release-Management zu beherrschen, muss man häufig verwendete Begriffe verstehen.
Entwicklungsarbeitsauftrag:
Dies ist ein Arbeitsauftrag für die Entwicklung oder Änderung einer Softwareanwendung oder eines Systems.
DevOps-Team: Da es bei DevOps darum geht, die Koordination zwischen den Entwicklungs- und Betriebsfunktionen zu verbessern, wird der Begriff durch die Schaffung eines separaten Teams zu einer Fehlbezeichnung. Trotz des Namens bezieht sich der Begriff normalerweise auf wichtige Teammitglieder sowohl auf der Entwicklungs- als auch auf der Betriebsseite, die an der Koordinierung der beiden Funktionen arbeiten.
Installationsarbeitsauftrag:
Ähnlich wie bei einem Entwicklungsarbeitsauftrag dient ein Installationsarbeitsauftrag zur Installation einer Softwareanwendung, eines Systems oder einer Infrastrukturkomponente.
Product Owner:
Der Product Owner eines Entwicklungsprojekts ist der Hauptbeteiligte. Sie repräsentieren normalerweise das Unternehmen oder die (eventuellen) Benutzer des Produkts und definieren die Vision für ein Produkt.
Projektmanager:
Ein Projektmanager übernimmt die Richtung für ein einzelnes Produkt. Sie sind verantwortlich für die Definition der Produkt-Roadmap und -Vision sowie für die Aushandlung der Ergebnisse. In der Regel gehen die Kernaufgaben eines Projektmanagers nicht über ein einzelnes Produkt oder eine eng verwandte Produktfamilie hinaus.
Release:
Ein Release besteht aus einer oder mehreren Release-Einheiten.
Release Manager:
Der Release Manager hat die Aufgabe, alle Elemente eines Releases zu planen, zu koordinieren und zu verwalten. Dieser Manager muss beispielsweise auch die Arbeit an anderen Produkten koordinieren, die für die Integration in die neue Version vorgesehen sind.
Freigaberichtlinie:
Dies ist eine Reihe von Regeln für die Bereitstellung von Freigaben in der Live-Betriebsumgebung. Abhängig von Faktoren wie Auswirkungen und Dringlichkeit gelten für verschiedene Releases unterschiedliche Freigaberichtlinien.
Release Record:
Ein Release Record dokumentiert den Verlauf eines Releases von der Planung bis zum Abschluss des Entwicklungsprozesses.
Release Unit:
Dieser Begriff bezieht sich auf eine Reihe von Konfigurationselementen, die ein Team gleichzeitig testet und in der Live-Umgebung freigibt, um genehmigte Änderungen zu implementieren. Ein Konfigurationselement ist wiederum eine Komponente einer Infrastruktur, die unter Konfigurationsverwaltung steht. Auf diese Weise wird sichergestellt, dass die Attribute und die Leistung eines Produkts mit dessen Design, Anforderungen und Betriebsinformationen übereinstimmen.
Servicebesitzer:
Ein Servicebesitzer übernimmt eine hohe Verantwortung für einen bestimmten IT-Service. Sie sind weniger besorgt über den täglichen Betrieb, der zur Erbringung des Dienstes erforderlich ist. Das ist die Rolle eines Service Managers.
Qualitätsmanager:
Ein Qualitätsmanager stellt sicher, dass eine Version den festgelegten Standards entspricht. Möglicherweise werden ihnen Release-Manager gemeldet.
Release-Management-Metriken und KPIs
Sobald ein Release-Management-Prozess ausgereift ist, kann ein Release-Manager seine Aufmerksamkeit auf Leistungsmetriken richten, um den Prozess zu verbessern. Schauen wir uns einige an:
Release-Ausfallzeit
Dies ist die erste wichtige Metrik. Bei jeder Softwareversion besteht das Risiko von Ausfallzeiten, deren Länge zwischen einigen Minuten und mehreren Stunden oder sogar Tagen liegen kann. Ausfallzeiten sind an sich nicht schlecht. Es ist oft eine Notwendigkeit. Es ist jedoch wichtig, zwischen den verschiedenen Arten von Ausfallzeiten unterscheiden zu können. Die geschätzte Ausfallzeit ist beispielsweise eine Ausfallzeit, die erforderlich und in den Release-Zeitplan integriert ist. Es ist eine gute Idee, diese mit der tatsächlichen Ausfallzeit zu vergleichen, die nach der Veröffentlichung gemessen wird. Es gibt auch ungeplante Ausfallzeiten, die in einigen Releases ein Zeichen dafür sein können, dass Root-Probleme nicht behoben werden.
Art und Priorität der Versionen
Jede Version wird als Haupt-, Neben- oder irgendwo dazwischen eingestuft und erhält eine Priorität: hoch, mittel oder niedrig. Es sollte eine gute Mischung von Veröffentlichungen nach Größe und Priorität geben. Zu viele Hauptversionen für dasselbe Produkt können auf schwerwiegende Probleme bei der Qualitätssicherung hinweisen, während zu viele Versionen mit hoher Priorität darauf hindeuten, dass das Team zu viel Energie investiert, obwohl auch weniger Zeit reichen würde.
Die Anzahl der pünktlichen Releases
Da der pünktliche Release nicht gewährleistet ist, geht es ebenso um Verzögerungen. Es gibt einige interessante Informationen, die gesammelt werden müssen. Haben einige Entwicklungsteams beispielsweise verspätete oder pünktliche Releases als andere? Gibt es ein Muster für verspätete oder pünktliche Releases basierend auf der Priorisierung der Freigabe? Was sind die Hauptursachen für wiederholt verspätete Releases?
Ziele von Release Management
Effektiv durchgeführt, erhöht das Release-Management die Anzahl der erfolgreichen Releases eines Unternehmens und reduziert Qualitätsprobleme. Produktivität, Kommunikation und Koordination werden verbessert und das Unternehmen kann Software schneller bereitstellen und gleichzeitig das Risiko verringern.
Diese Verbesserungen bedeuten, dass das Team wiederholt Qualitätssoftware mit kürzeren Markteinführungszeiten erstellen kann, wodurch das Unternehmen besser auf die Betriebsumgebung reagieren kann.
Das Release-Management hilft auch dabei, den Entwicklungs- und Betriebsprozess zu standardisieren und zu optimieren. Das Team implementiert überprüfbare Release-Steuerelemente und erstellt so ein Repository für alle Releases während des gesamten Lebenszyklus. Ein einziger, gut dokumentierter Prozess, der für alle Releases befolgt werden muss, erhöht die organisatorische Reife. Die zunehmende Standardisierung und der Fokus auf Produkte ermöglichen es den Teams, nützlichere Lehren aus der Erfahrung zu ziehen und diese in zukünftigen Versionen anzuwenden.
So wird das Release-Management verbessert
Um die Release-Management-Funktionen eines Unternehmens zu verbessern, muss man den aktuellen Status des Release-Management-Prozesses kennen. Dies geschieht in der Regel auf zwei Arten:
- Quantitativ sollten einige grundlegende Metriken erfasst werden, darunter durchschnittliche Veröffentlichungszeiten, Art und Priorität der Veröffentlichungen, Anzahl der Fehler und Anzahl der verzögerten Veröffentlichungen. Diese dienen sowohl zur Ermittlung des aktuellen Status des Release-Managements als auch zur Ermittlung der Leistungsbasislinien.
- Es muss qualitativ mit den Personen gesprochen werden, die Teil des Release-Management-Prozesses sind, insbesondere dort, wo die Entwicklung mit dem Betrieb in Verbindung steht. Sie können auf Realitäten hinweisen, die in den Zahlen nicht auftauchen.
Um die Konsistenz zu verbessern, sollte ein regelmäßiger Release Zyklus eingerichtet werden. Im Laufe der Zeit werden die Prozesse, die gut funktionieren, zur Standardpraxis. Basierend auf der ersten Umfrage zum Release-Management kann man jetzt möglicherweise strengere Qualitätsanforderungen stellen und die Effizienz-Benchmarks verbessern.
Fazit
Release Management bietet Dir einen umfassenden Überblick über die Webanwendungen, Updates und Software-Lösungen Deines Unternehmens. Beim Entwicklungsprozess arbeitet es mit dem Change-Management zusammen, wodurch Unternehmen einen Einblick in den Entwicklungszyklus erhalten und mögliche Problem erkennen und Verbesserungen vornehmen können.
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen