Releasemanagement: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „= TMP = mini|350px|Zusammenhänge verschiedener Prozesse im Release Management Das '''Releasemanagement''' (oder ''Freigabemanagement''<ref>{{Literatur |Autor=Fabian Wolf |Titel=Fahrzeuginformatik: Eine Einführung in die Software- und Elektronikentwicklung aus der Praxis der Automobilindustrie |Verlag=Springer Fachmedien Wiesbaden |Ort=Wiesbaden |Datum=2018 |ISBN=978-3-658-21223-0 |DOI=10.1007/978-3-658-21224-7 |Online=http://li…“ |
Keine Bearbeitungszusammenfassung |
||
(25 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= | '''Releasemanagement''' - Managementaktivität, die sich mit der Freigabe und dem Übergang von Entwicklungsständen in einen operativen Zustand befasst | ||
[[ | |||
Das '''Releasemanagement''' ( | == Beschreibung == | ||
[[File:Releasemngt.jpg|mini|400px|Prozesse im Release Management]] | |||
Das '''Releasemanagement''' (''Freigabemanagement'', ''Release Engineering'') ist traditionell eine Managementaktivität, die sich mit der Freigabe bzw. dem Übergang von Entwicklungsständen in einen operativen Zustand befasst. | |||
Es ist Bestandteil bei der [[Produktentwicklung|Entstehung]] von Komponenten, Systemen oder Produkten. | |||
* Beispiele sind [[Entwicklungsstadium (Software)|Software]], Hardware (Elektrik oder Elektronik), mechanischer Bauteile, Computersysteme und die IT. | |||
* Es unterstützt die übergeordnete Leitung dieser Bereiche. | |||
* Weitere Begriffe, die im Zusammenhang mit Releasemanagement verwendet werden, sind [[Softwareverteilung|Auslieferung]] (Deployment) und Distribution. | |||
== Hintergrund == | == Hintergrund == | ||
Unter Freigabemanagement versteht man die Bündelung und Bereitstellung von Änderungen von Versionsständen zu einem sog. | Unter Freigabemanagement versteht man die Bündelung und Bereitstellung von Änderungen von Versionsständen zu einem sog. elease oder Versionspaket. | ||
Der Begriff findet häufig Verwendung in der Softwareentwicklung, jedoch bezieht sich die Aufgabe ganz allgemein auch auf z. | Der Begriff findet häufig Verwendung in der Softwareentwicklung, jedoch bezieht sich die Aufgabe ganz allgemein auch auf z. . lektronikentwicklung (vgl. [Bemusterung (Technik)|Musterstände]]), Prototypen, Systeme oder generelle Produkte. | ||
* Freigabemanagement ist eine Erweiterung der [[Versionsverwaltung]]. | |||
* Des Weiteren ist die Eingliederung eines freigegebenen Objektes in eine Infrastruktur oder Produktion bedeutend. | |||
* Als Beispiel kann man sich eine Software (oder Anteile davon) vorstellen, die bei einem Auftragnehmer kodiert wurde und nach Abschluss aller Tests an einen Auftraggeber übergeben wird, welcher diese in seinem Produkt weiterverwendet. | |||
Das Freigabemanagement interagiert mit dem [[Veränderungsmanagement|Veränderungs-]] und [[Konfigurationsmanagement]], sowie [[Integrationsmanagement]]. Es ist jedoch eine eigenständige Disziplin. Es bezieht außerdem Erfahrungen aus dem [[Produktmanagement]] generell. | Das Freigabemanagement interagiert mit dem [[Veränderungsmanagement|Veränderungs-]] und [[Konfigurationsmanagement]], sowie [[Integrationsmanagement]]. | ||
* Es ist jedoch eine eigenständige Disziplin. | |||
* Es bezieht außerdem Erfahrungen aus dem [[Produktmanagement]] generell. | |||
== Ziele == | == Ziele == | ||
{| class="wikitable options" | |||
|- | |||
! Ziel !! Beschreibung | |||
Als Grundziel dient das Freigabemanagement dem Bereitstellen von Entwicklungsständen. Das Ziel ist dabei die Abnahme (Übernahme) durch einen Kunden oder andere Partei. Es bildet damit die prozessuale Schnittstelle, z. B. beim Übergang von Software zu Hardware oder eines allgemeinen Produktes vom Ende der Entwicklungsphase zum Endverbraucher. | |- | ||
| Entwicklungsständen verfügbar machen || Als Grundziel dient das Freigabemanagement dem Bereitstellen von Entwicklungsständen. | |||
* Das Ziel ist dabei die Abnahme (Übernahme) durch einen Kunden oder andere Partei. | |||
Änderungen sind allgegenwärtiger Bestandteil in einer Produktentwicklung. Effektives Releasemanagement kann die negativen Folgen von mangelhaften Spezifikationen, Designs, Implementierungen oder Tests und deren Einfluss auf andere Prozesse, Systeme oder Geschäftspartner hemmen. | * Es bildet damit die prozessuale Schnittstelle, z. B. beim Übergang von Software zu Hardware oder eines allgemeinen Produktes vom Ende der Entwicklungsphase zum Endverbraucher. | ||
|- | |||
Hinweis: Das eigentliche [[Veränderungsmanagement]] beschäftigt sich explizit mit der Kontrolle von Änderungen innerhalb eines Produktlebenszyklus bzw. dessen Teilabschnitte. Das [[Anforderungsmanagement]] ist für ebenfalls als eigenständige Disziplin zu erwähnen. | | Risikominimierung von Änderungen || Änderungen sind allgegenwärtiger Bestandteil in einer Produktentwicklung. | ||
* Effektives Releasemanagement kann die negativen Folgen von mangelhaften Spezifikationen, Designs, Implementierungen oder Tests und deren Einfluss auf andere Prozesse, Systeme oder Geschäftspartner hemmen. | |||
Hinweis: Das eigentliche [[Veränderungsmanagement]] beschäftigt sich explizit mit der Kontrolle von Änderungen innerhalb eines Produktlebenszyklus bzw. dessen Teilabschnitte. | |||
Verschiedene Normen fordern Arbeitsprodukte, welche u. | * Das [[Anforderungsmanagement]] ist für ebenfalls als eigenständige Disziplin zu erwähnen. | ||
|- | |||
| Erfüllung von Standards und Normen || Verschiedene Normen fordern Arbeitsprodukte, welche u. . vom Releasemanagement generiert und erfüllt werden müssen. Beispiel: [[Automotive SPICE]], dort SPL.2 Product Release. | |||
Eine Freigabe steht auch in Bezug zu einer [[Verifizierung und Validierung]] einer Komponente, Systems oder Produktes. Sie dient als formelle Grundlage dafür. | |- | ||
| Einfluss auf Produktqualität || Eine Freigabe steht auch in Bezug zu einer [[Verifizierung und Validierung]] einer Komponente, Systems oder Produktes. Sie dient als formelle Grundlage dafür. | |||
|} | |||
== Aktivitäten == | == Aktivitäten == | ||
Einige Aktivitäten, die für eine Freigabe notwendig sind, sind z. B.: | |||
Einige Aktivitäten, die für eine Freigabe notwendig sind, sind z. B.: | |||
* Festlegung des Umfangs einer Freigabe (in Abstimmung mit dem Projektteam, dem Auftraggeber etc.) | * Festlegung des Umfangs einer Freigabe (in Abstimmung mit dem Projektteam, dem Auftraggeber etc.) | ||
* Festlegung des genauen Zeitplans einer Freigabe in Abstimmung mit dem Change- bzw. [[Produktmanagement]] | * Festlegung des genauen Zeitplans einer Freigabe in Abstimmung mit dem Change- bzw. [[Produktmanagement]] | ||
* [[Qualitätskontrolle]] der Freigabe anhand von festgelegten Kriterien bzw. Checklisten | * [[Qualitätskontrolle]] der Freigabe anhand von festgelegten Kriterien bzw. Checklisten | ||
* Dokumentation des Inhalts der Freigabe, dabei insbesondere Beschreibung der für die Rückwärts[[Kompatibilität (Technik)|kompatibilität]] relevanten Eigenschaften | * Dokumentation des Inhalts der Freigabe, dabei insbesondere Beschreibung der für die Rückwärts[[Kompatibilität (Technik)|kompatibilität]] relevanten Eigenschaften | ||
* Verwaltung der Versionshistorie (''[[Versionierung]]''), damit Sicherstellung der Reproduzierbarkeit | * Verwaltung der Versionshistorie (''[[Versionierung]]''), damit Sicherstellung der Reproduzierbarkeit | ||
== Ablauf, Bausteine und Phasen | == Ablauf == | ||
;Ablauf, Bausteine und Phasen | |||
=== Koordination und Anforderungen === | === Koordination und Anforderungen === | ||
Die Aufgabe wird meist von einem eigenständigen Releasemanager | Die Aufgabe wird meist von einem eigenständigen Releasemanager durchgeführt. | ||
* Inhaltlich bedeutet dies die Planung und Ausführung von Freigaben. | |||
* Dabei werden festgelegte Umfänge (Anforderungen und Kriterien) berücksichtigt. | |||
* Ein Verfügbar machen (intern oder extern) für den Endbenutzer bzw. Zielsystem ist dabei Hauptbestandteil der Aufgabe. | |||
Ein Zusammenspiel erfolgt mit dem [[Veränderungsmanagement]] ([[Change Management (ITIL)]]), [[Integrationsmanagement]], [[Testmanagement]] ([[Akzeptanztest]]s), [[Marketing]] etc. bzw. anderen Unternehmenseinheiten. Die meisten an einer Produktentwicklung beteiligten Einheiten werden über das Freigabemanagement angesprochen bzw. es werden Ergebnisse aus den einzelnen Bereichen eingefordert. Unabhängig von einer Freigabe läuft die Produktentwicklung meist weiter. Jedoch kann eine Freigabe (je nach Umfang und Zielsetzung) auch einen Abschluss bzw. Neubeginn einer Projektphase darstellen ([[Meilenstein (Projektmanagement)|Meilensteine]]). | Ein Zusammenspiel erfolgt mit dem [[Veränderungsmanagement]] ([[Change Management (ITIL)]]), [[Integrationsmanagement]], [[Testmanagement]] ([[Akzeptanztest]]s), [[Marketing]] etc. bzw. anderen Unternehmenseinheiten. | ||
* Die meisten an einer Produktentwicklung beteiligten Einheiten werden über das Freigabemanagement angesprochen bzw. es werden Ergebnisse aus den einzelnen Bereichen eingefordert. | |||
* Unabhängig von einer Freigabe läuft die Produktentwicklung meist weiter. | |||
* Jedoch kann eine Freigabe (je nach Umfang und Zielsetzung) auch einen Abschluss bzw. Neubeginn einer Projektphase darstellen ([[Meilenstein (Projektmanagement)|Meilensteine]]). | |||
=== Planung === | === Planung === | ||
Die Planung der Freigabe ist als eigenständiges Projekt zu verstehen. Es müssen Zeitpläne erstellt werden, Umfänge abgeschätzt und festgelegt, Kommunikation mit [[Stakeholder]]n etc. bewältigt werden, alles was notwendig ist um eine Freigabe zu ermöglichen. | Die Planung der Freigabe ist als eigenständiges Projekt zu verstehen. | ||
* Es müssen Zeitpläne erstellt werden, Umfänge abgeschätzt und festgelegt, Kommunikation mit [[Stakeholder]]n etc. bewältigt werden, alles was notwendig ist um eine Freigabe zu ermöglichen. | |||
=== Entscheidung === | === Entscheidung === | ||
Der Releasemanager entscheidet, wann ein System als Release zur Weitergabe freigegeben werden kann. Durch eine geeignete Release-Strategie muss dabei darauf geachtet werden, dass das System frei von schwerwiegenden Fehlern, also produktionssicher ist. In der traditionellen [[Entwicklungsstadium (Software)#Release Candidate|Softwareentwicklung]] ist dies meist der Fall, wenn der Entwicklungsprozess das Stadium [[Entwicklungsstadium (Software)#Release Candidate|Release Candidate]] erreicht. | Der Releasemanager entscheidet, wann ein System als Release zur Weitergabe freigegeben werden kann. | ||
* Durch eine geeignete Release-Strategie muss dabei darauf geachtet werden, dass das System frei von schwerwiegenden Fehlern, also produktionssicher ist. | |||
* In der traditionellen [[Entwicklungsstadium (Software)#Release Candidate|Softwareentwicklung]] ist dies meist der Fall, wenn der Entwicklungsprozess das Stadium [[Entwicklungsstadium (Software)#Release Candidate|Release Candidate]] erreicht. | |||
=== Risikoanalyse === | === Risikoanalyse === | ||
Das Freigabemanagement integriert die Arbeitsprodukte des Risikomanagement, wie z. B. Risikoanalysen, die für den betreffenden Release Gültigkeit haben. Zu jeder Freigabe werden diverse Risiken einer Freigabe abgeschätzt. Diese können sich von anderen Risiken unterscheiden und sind speziell zugeschnitten. | Das Freigabemanagement integriert die Arbeitsprodukte des Risikomanagement, wie z. B. Risikoanalysen, die für den betreffenden Release Gültigkeit haben. | ||
* Zu jeder Freigabe werden diverse Risiken einer Freigabe abgeschätzt. | |||
* Diese können sich von anderen Risiken unterscheiden und sind speziell zugeschnitten. | |||
=== Qualitätskontrolle === | === Qualitätskontrolle === | ||
Das Freigabemanagement integriert Test- und Prüfberichte (bereitgestellt von der Qualitätsabteilung) für den jeweiligen Release. Weiterhin spielen im Falle von Software auch Ergebnisse aus der [[Informationssicherheit]] eine Rolle (z. B. [[Penetrationstest (Informatik)|Penetrationstest]]) und können Einfluss auf eine Freigabe nehmen. | Das Freigabemanagement integriert Test- und Prüfberichte (bereitgestellt von der Qualitätsabteilung) für den jeweiligen Release. | ||
* Weiterhin spielen im Falle von Software auch Ergebnisse aus der [[Informationssicherheit]] eine Rolle (z. B. [[Penetrationstest (Informatik)|Penetrationstest]]) und können Einfluss auf eine Freigabe nehmen. | |||
=== Bereitstellung der eigentlichen Freigabe | === Bereitstellung === | ||
Das Freigabemanagement arbeitet entlang der Produktentwicklung und bereitet meist eine zyklische Herausgabe vor. Wenn die reine Entwicklung abgeschlossen ist, bedeutet das aber nicht gleichzeitig eine Veröffentlichung. Dazu müssen oft noch weitere Schritte erfolgen | ; Bereitstellung der eigentlichen Freigabe | ||
Das Freigabemanagement arbeitet entlang der Produktentwicklung und bereitet meist eine zyklische Herausgabe vor. | |||
* Wenn die reine Entwicklung abgeschlossen ist, bedeutet das aber nicht gleichzeitig eine Veröffentlichung. | |||
; Dazu müssen oft noch weitere Schritte erfolgen | |||
* Erstellung der Konfigurationsstände, welche alle Komponenten beinhaltet | * Erstellung der Konfigurationsstände, welche alle Komponenten beinhaltet | ||
* Zusammenstellung und Bezeichnung von Software-Quellcode, Hardwaredesigns, technischen Zeichnungen oder anderer Elemente | * Zusammenstellung und Bezeichnung von Software-Quellcode, Hardwaredesigns, technischen Zeichnungen oder anderer Elemente | ||
Zeile 64: | Zeile 94: | ||
=== Dokumentation === | === Dokumentation === | ||
Die Dokumentation dient z. B. der späteren Nachproduktion oder [[Rückverfolgbarkeit (Anforderungsmanagement)|Rückverfolgung]] von speziellen Releases für einzelne Kunden oder Plattformen. | Die Dokumentation dient z. B. der späteren Nachproduktion oder [[Rückverfolgbarkeit (Anforderungsmanagement)|Rückverfolgung]] von speziellen Releases für einzelne Kunden oder Plattformen. | ||
* Es sollte eine komplette Beschreibung der gesamten [[Systemumgebung]] und des zugrunde liegenden Systems (Programme, Versionen, Dokumente, Beschreibungen, [[Anleitung]]en, generelle Artefakte) erstellt werden. | |||
== Softwareentwicklung == | |||
;Zusammenhang mit Softwareentwicklung | |||
== Zusammenhang mit Softwareentwicklung | |||
=== Methodologie === | === Methodologie === | ||
Software-Freigabemanagement verändert sich als Aufgabe ebenso wie die Softwareentwicklung selbst. Im Falle von Groß-Softwareprojekten existieren eigene Release-Teams (bzw. Release-Engineering Teams) und eigene Abläufe, die sich je nach Projekt aufstellen, anpassen und optimieren. Als Beispiel arbeitet das Release-Team der Wikimedia Foundation ([[MediaWiki]]) mit sog. ''Release-Trains'' (Freigabezügen), welche wöchentlich stattfinden. | Software-Freigabemanagement verändert sich als Aufgabe ebenso wie die Softwareentwicklung selbst. | ||
* Im Falle von Groß-Softwareprojekten existieren eigene Release-Teams (bzw. Release-Engineering Teams) und eigene Abläufe, die sich je nach Projekt aufstellen, anpassen und optimieren. | |||
* Als Beispiel arbeitet das Release-Team der Wikimedia Foundation ([[MediaWiki]]) mit sog. ''Release-Trains'' (Freigabezügen), welche wöchentlich stattfinden. | |||
* Je nach Software-Kontext (z. B. Open Source Software) ergeben sich eigenständige Anforderungen und Herausforderungen. | |||
* Die hohe Komplexität (Datenmengen, Datenbanken, Schnittstellen, Benutzereingaben/UIs, Zielgeräte, Probleme usw.) von Software spiegelt sich u. . | |||
* auch bei der Freigabe wieder. | |||
* Dies kann am Beispiel der [[Corona-Warn-App]] detailreich nachvollzogen werden. | |||
=== Werkzeuge, Services, Methodologien === | === Werkzeuge, Services, Methodologien === | ||
Für Releasemanagement stehen verschiedene Werkzeuge zur Verfügung, je nach Produkt und Industrie. | Für Releasemanagement stehen verschiedene Werkzeuge zur Verfügung, je nach Produkt und Industrie. | ||
''Hinweis: Ein reines Werkzeug zur Versionskontrolle dient noch nicht zum eigentlichen Releasemanagement. Anteilig am Releasemanagement sind auch die sog. [[Versionshinweise]].'' | ''Hinweis: Ein reines Werkzeug zur Versionskontrolle dient noch nicht zum eigentlichen Releasemanagement. | ||
* Anteilig am Releasemanagement sind auch die sog. [[Versionshinweise]].'' | |||
==== Beispiele ==== | ==== Beispiele ==== | ||
* [[Apache Subversion]] (SVN) – Für das Projekt existieren eigenständige Software-Release Methoden für Entwickler, die sich beteiligen wollen. | |||
* [[Apache Subversion]] (SVN) – Für das Projekt existieren eigenständige Software-Release Methoden für Entwickler, die sich beteiligen wollen. | * [[DevOps]] – auch im DevOps existieren eigene Ansätze zum Releasemanagement. | ||
* [[DevOps]] – auch im DevOps existieren eigene Ansätze zum Releasemanagement. | * [[GitHub]] – Git basierte Plattform, mit eigenen Freigabemechanismen | ||
* [[GitHub]] – Git basierte Plattform, mit eigenen Freigabemechanismen | * [[GitLab]] – Git-basierte Plattform, mit eigenen Freigabemechanismen | ||
* [[GitLab]] – Git-basierte Plattform, mit eigenen Freigabemechanismen | |||
* [[Kontinuierliche Integration]] (CI/CD) | * [[Kontinuierliche Integration]] (CI/CD) | ||
** ''Hinweis: Kontinuierliche Integration kann als eine Art Weiterentwicklung der einfachen Versionskontrolle verstanden werden. Es kann ebenso automatische Releases verwalten. Es ist jedoch meist eine Kernfrage des Releasemanagement die genauen Inhalte (Features) und Defekte zu definieren und koordinieren.'' | ** ''Hinweis: Kontinuierliche Integration kann als eine Art Weiterentwicklung der einfachen Versionskontrolle verstanden werden. | ||
* ''Release Control'' | * Es kann ebenso automatische Releases verwalten. | ||
* Es ist jedoch meist eine Kernfrage des Releasemanagement die genauen Inhalte (Features) und Defekte zu definieren und koordinieren.'' | |||
* ''Release Control'' – Ein Softwareprodukt von [[Micro Focus]] | |||
== | == Informationstechnologie und ITIL == | ||
Das Freigabemanagement dient dem [[Service-Management|Service Management]] und ist Teil des [[ITSM|IT-Service-Management]] (ITSM). | ;Zusammenhang Informationstechnologie und ITIL | ||
Das Freigabemanagement dient dem [[Service-Management|Service Management]] und ist Teil des [[ITSM|IT-Service-Management]] (ITSM). | |||
* Es ist seit ITIL v3 eine eigenständige Prozesseinheit. | |||
Im Zusammenhang mit ITIL stehen das geforderte [[ITIL Definitive Hardware Library|Definitive Hardware Library]] und [[ITIL Definitive Software Library|Definitive Software Library]]. | Im Zusammenhang mit ITIL stehen das geforderte [[ITIL Definitive Hardware Library|Definitive Hardware Library]] und [[ITIL Definitive Software Library|Definitive Software Library]]. | ||
* Die Bedeutung ist jeweils die Archivierung (logische Verwaltung) von technischen bzw. Softwarekomponenten eines Unternehmens. | |||
* Das DSL wurde nach der Veröffentlichung von ITIL v3 zu DML (Definitive Media Library) umbenannt. | |||
== Neuartige oder angrenzende Entwicklungen == | == Neuartige oder angrenzende Entwicklungen == | ||
* [[Over-the-Air-Update]]s sind sowohl in der Telekommunikation, [[Internet der Dinge]], als auch Automobilindustrie | * [[Over-the-Air-Update]]s sind sowohl in der Telekommunikation, [[Internet der Dinge]], als auch Automobilindustrie teils im produktiven Einsatz und fordern ein robustes und geeignetes Freigabemanagement. | ||
* Im [[Cloud Computing]] werden bei [[Microsoft Azure]] sog. ''Feeds'' genutzt, um Pakete zu bündeln und verteilen. | * Im [[Cloud Computing]] werden bei [[Microsoft Azure]] sog. ''Feeds'' genutzt, um Pakete zu bündeln und verteilen. | ||
* Ein anderes Instrument sind [[Containervirtualisierung|Container]], speziell [[Docker (Software)|Docker]]. | * Ein anderes Instrument sind [[Containervirtualisierung|Container]], speziell [[Docker (Software)|Docker]]. | ||
* Release Management von [[Microservices]]. | * Release Management von [[Microservices]]. | ||
* [[App Store]]s – Spezifische Fragestellungen (auch Rechtliche | * [[App Store]]s – Spezifische Fragestellungen (auch Rechtliche ergeben sich für Software, die in sog. App Stores veröffentlicht wird. | ||
* Die NASA bietet seine für die Raumfahrt entwickelte Software der Öffentlichkeit an und hat dafür ein eigenständiges Programm aufgelegt. | * Die NASA bietet seine für die Raumfahrt entwickelte Software der Öffentlichkeit an und hat dafür ein eigenständiges Programm aufgelegt. | ||
== Normen == | == Normen == | ||
* [[ISO/IEC 20000]] | |||
* [[ISO/IEC 20000]] | |||
* [[Automotive SPICE]] | * [[Automotive SPICE]] | ||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
---- | |||
* [[Software Engineering]] | * [[Software Engineering]] | ||
* [[Softwarequalität]] | * [[Softwarequalität]] | ||
== | ==== Links ==== | ||
===== Weblinks ===== | |||
[[Kategorie: | # https://de.wikipedia.org/wiki/Releasemanagement | ||
[[Kategorie:Programmierung]] | |||
[[Kategorie:IT-Management]] | [[Kategorie:IT-Management]] | ||
</noinclude> |
Aktuelle Version vom 19. Dezember 2023, 11:02 Uhr
Releasemanagement - Managementaktivität, die sich mit der Freigabe und dem Übergang von Entwicklungsständen in einen operativen Zustand befasst
Beschreibung
Das Releasemanagement (Freigabemanagement, Release Engineering) ist traditionell eine Managementaktivität, die sich mit der Freigabe bzw. dem Übergang von Entwicklungsständen in einen operativen Zustand befasst.
Es ist Bestandteil bei der Entstehung von Komponenten, Systemen oder Produkten.
- Beispiele sind Software, Hardware (Elektrik oder Elektronik), mechanischer Bauteile, Computersysteme und die IT.
- Es unterstützt die übergeordnete Leitung dieser Bereiche.
- Weitere Begriffe, die im Zusammenhang mit Releasemanagement verwendet werden, sind Auslieferung (Deployment) und Distribution.
Hintergrund
Unter Freigabemanagement versteht man die Bündelung und Bereitstellung von Änderungen von Versionsständen zu einem sog. elease oder Versionspaket.
Der Begriff findet häufig Verwendung in der Softwareentwicklung, jedoch bezieht sich die Aufgabe ganz allgemein auch auf z. . lektronikentwicklung (vgl. [Bemusterung (Technik)|Musterstände]]), Prototypen, Systeme oder generelle Produkte.
- Freigabemanagement ist eine Erweiterung der Versionsverwaltung.
- Des Weiteren ist die Eingliederung eines freigegebenen Objektes in eine Infrastruktur oder Produktion bedeutend.
- Als Beispiel kann man sich eine Software (oder Anteile davon) vorstellen, die bei einem Auftragnehmer kodiert wurde und nach Abschluss aller Tests an einen Auftraggeber übergeben wird, welcher diese in seinem Produkt weiterverwendet.
Das Freigabemanagement interagiert mit dem Veränderungs- und Konfigurationsmanagement, sowie Integrationsmanagement.
- Es ist jedoch eine eigenständige Disziplin.
- Es bezieht außerdem Erfahrungen aus dem Produktmanagement generell.
Ziele
Ziel | Beschreibung |
---|---|
Entwicklungsständen verfügbar machen | Als Grundziel dient das Freigabemanagement dem Bereitstellen von Entwicklungsständen.
|
Risikominimierung von Änderungen | Änderungen sind allgegenwärtiger Bestandteil in einer Produktentwicklung.
Hinweis: Das eigentliche Veränderungsmanagement beschäftigt sich explizit mit der Kontrolle von Änderungen innerhalb eines Produktlebenszyklus bzw. dessen Teilabschnitte.
|
Erfüllung von Standards und Normen | Verschiedene Normen fordern Arbeitsprodukte, welche u. . vom Releasemanagement generiert und erfüllt werden müssen. Beispiel: Automotive SPICE, dort SPL.2 Product Release. |
Einfluss auf Produktqualität | Eine Freigabe steht auch in Bezug zu einer Verifizierung und Validierung einer Komponente, Systems oder Produktes. Sie dient als formelle Grundlage dafür. |
Aktivitäten
Einige Aktivitäten, die für eine Freigabe notwendig sind, sind z. B.:
- Festlegung des Umfangs einer Freigabe (in Abstimmung mit dem Projektteam, dem Auftraggeber etc.)
- Festlegung des genauen Zeitplans einer Freigabe in Abstimmung mit dem Change- bzw. Produktmanagement
- Qualitätskontrolle der Freigabe anhand von festgelegten Kriterien bzw. Checklisten
- Dokumentation des Inhalts der Freigabe, dabei insbesondere Beschreibung der für die Rückwärtskompatibilität relevanten Eigenschaften
- Verwaltung der Versionshistorie (Versionierung), damit Sicherstellung der Reproduzierbarkeit
Ablauf
- Ablauf, Bausteine und Phasen
Koordination und Anforderungen
Die Aufgabe wird meist von einem eigenständigen Releasemanager durchgeführt.
- Inhaltlich bedeutet dies die Planung und Ausführung von Freigaben.
- Dabei werden festgelegte Umfänge (Anforderungen und Kriterien) berücksichtigt.
- Ein Verfügbar machen (intern oder extern) für den Endbenutzer bzw. Zielsystem ist dabei Hauptbestandteil der Aufgabe.
Ein Zusammenspiel erfolgt mit dem Veränderungsmanagement (Change Management (ITIL)), Integrationsmanagement, Testmanagement (Akzeptanztests), Marketing etc. bzw. anderen Unternehmenseinheiten.
- Die meisten an einer Produktentwicklung beteiligten Einheiten werden über das Freigabemanagement angesprochen bzw. es werden Ergebnisse aus den einzelnen Bereichen eingefordert.
- Unabhängig von einer Freigabe läuft die Produktentwicklung meist weiter.
- Jedoch kann eine Freigabe (je nach Umfang und Zielsetzung) auch einen Abschluss bzw. Neubeginn einer Projektphase darstellen (Meilensteine).
Planung
Die Planung der Freigabe ist als eigenständiges Projekt zu verstehen.
- Es müssen Zeitpläne erstellt werden, Umfänge abgeschätzt und festgelegt, Kommunikation mit Stakeholdern etc. bewältigt werden, alles was notwendig ist um eine Freigabe zu ermöglichen.
Entscheidung
Der Releasemanager entscheidet, wann ein System als Release zur Weitergabe freigegeben werden kann.
- Durch eine geeignete Release-Strategie muss dabei darauf geachtet werden, dass das System frei von schwerwiegenden Fehlern, also produktionssicher ist.
- In der traditionellen Softwareentwicklung ist dies meist der Fall, wenn der Entwicklungsprozess das Stadium Release Candidate erreicht.
Risikoanalyse
Das Freigabemanagement integriert die Arbeitsprodukte des Risikomanagement, wie z. B. Risikoanalysen, die für den betreffenden Release Gültigkeit haben.
- Zu jeder Freigabe werden diverse Risiken einer Freigabe abgeschätzt.
- Diese können sich von anderen Risiken unterscheiden und sind speziell zugeschnitten.
Qualitätskontrolle
Das Freigabemanagement integriert Test- und Prüfberichte (bereitgestellt von der Qualitätsabteilung) für den jeweiligen Release.
- Weiterhin spielen im Falle von Software auch Ergebnisse aus der Informationssicherheit eine Rolle (z. B. Penetrationstest) und können Einfluss auf eine Freigabe nehmen.
Bereitstellung
- Bereitstellung der eigentlichen Freigabe
Das Freigabemanagement arbeitet entlang der Produktentwicklung und bereitet meist eine zyklische Herausgabe vor.
- Wenn die reine Entwicklung abgeschlossen ist, bedeutet das aber nicht gleichzeitig eine Veröffentlichung.
- Dazu müssen oft noch weitere Schritte erfolgen
- Erstellung der Konfigurationsstände, welche alle Komponenten beinhaltet
- Zusammenstellung und Bezeichnung von Software-Quellcode, Hardwaredesigns, technischen Zeichnungen oder anderer Elemente
- Bereitstellung von Benutzerhandbüchern, technischer Dokumentation usw.
- Bereitstellung/Vertrieb der Komponente, der Software, Hardware etc.
- Hilfestellung für die Ausbildung und Vorbereitung der Mitarbeiter
Dokumentation
Die Dokumentation dient z. B. der späteren Nachproduktion oder Rückverfolgung von speziellen Releases für einzelne Kunden oder Plattformen.
- Es sollte eine komplette Beschreibung der gesamten Systemumgebung und des zugrunde liegenden Systems (Programme, Versionen, Dokumente, Beschreibungen, Anleitungen, generelle Artefakte) erstellt werden.
Softwareentwicklung
- Zusammenhang mit Softwareentwicklung
Methodologie
Software-Freigabemanagement verändert sich als Aufgabe ebenso wie die Softwareentwicklung selbst.
- Im Falle von Groß-Softwareprojekten existieren eigene Release-Teams (bzw. Release-Engineering Teams) und eigene Abläufe, die sich je nach Projekt aufstellen, anpassen und optimieren.
- Als Beispiel arbeitet das Release-Team der Wikimedia Foundation (MediaWiki) mit sog. Release-Trains (Freigabezügen), welche wöchentlich stattfinden.
- Je nach Software-Kontext (z. B. Open Source Software) ergeben sich eigenständige Anforderungen und Herausforderungen.
- Die hohe Komplexität (Datenmengen, Datenbanken, Schnittstellen, Benutzereingaben/UIs, Zielgeräte, Probleme usw.) von Software spiegelt sich u. .
- auch bei der Freigabe wieder.
- Dies kann am Beispiel der Corona-Warn-App detailreich nachvollzogen werden.
Werkzeuge, Services, Methodologien
Für Releasemanagement stehen verschiedene Werkzeuge zur Verfügung, je nach Produkt und Industrie.
Hinweis: Ein reines Werkzeug zur Versionskontrolle dient noch nicht zum eigentlichen Releasemanagement.
- Anteilig am Releasemanagement sind auch die sog. Versionshinweise.
Beispiele
- Apache Subversion (SVN) – Für das Projekt existieren eigenständige Software-Release Methoden für Entwickler, die sich beteiligen wollen.
- DevOps – auch im DevOps existieren eigene Ansätze zum Releasemanagement.
- GitHub – Git basierte Plattform, mit eigenen Freigabemechanismen
- GitLab – Git-basierte Plattform, mit eigenen Freigabemechanismen
- Kontinuierliche Integration (CI/CD)
- Hinweis: Kontinuierliche Integration kann als eine Art Weiterentwicklung der einfachen Versionskontrolle verstanden werden.
- Es kann ebenso automatische Releases verwalten.
- Es ist jedoch meist eine Kernfrage des Releasemanagement die genauen Inhalte (Features) und Defekte zu definieren und koordinieren.
- Release Control – Ein Softwareprodukt von Micro Focus
Informationstechnologie und ITIL
- Zusammenhang Informationstechnologie und ITIL
Das Freigabemanagement dient dem Service Management und ist Teil des IT-Service-Management (ITSM).
- Es ist seit ITIL v3 eine eigenständige Prozesseinheit.
Im Zusammenhang mit ITIL stehen das geforderte Definitive Hardware Library und Definitive Software Library.
- Die Bedeutung ist jeweils die Archivierung (logische Verwaltung) von technischen bzw. Softwarekomponenten eines Unternehmens.
- Das DSL wurde nach der Veröffentlichung von ITIL v3 zu DML (Definitive Media Library) umbenannt.
Neuartige oder angrenzende Entwicklungen
- Over-the-Air-Updates sind sowohl in der Telekommunikation, Internet der Dinge, als auch Automobilindustrie teils im produktiven Einsatz und fordern ein robustes und geeignetes Freigabemanagement.
- Im Cloud Computing werden bei Microsoft Azure sog. Feeds genutzt, um Pakete zu bündeln und verteilen.
- Ein anderes Instrument sind Container, speziell Docker.
- Release Management von Microservices.
- App Stores – Spezifische Fragestellungen (auch Rechtliche ergeben sich für Software, die in sog. App Stores veröffentlicht wird.
- Die NASA bietet seine für die Raumfahrt entwickelte Software der Öffentlichkeit an und hat dafür ein eigenständiges Programm aufgelegt.
Normen
Anhang
Siehe auch
Links
Weblinks