Management-Zusammenfassung zu diesem Beitrag:
Design Freeze, Feature Freeze und Code Freeze sind Begriffe, die bei dem Systems oder → Software Engineering dazu verwendet werden, einen Entwicklungsstand so zu belassen, wie er ist und keine Änderungen mehr zu erlauben.
In diesem Beitrag werden die drei Begriffe beschrieben und gegenübergestellt.
Im Systems oder Software Engineering können definierte Entwicklungsstände “eingefroren” werden. Design Freeze, Feature Freeze und Code Freeze bezeichnen solche Zustände (oder auch Zeitpunkte), die typischerweise vorab geplant und durch einen Meilenstein abgebildet werden. Ziel ist es generell, durch diese Freezes einen stabilen Verlauf in der (weiteren) Entwicklung zu erhalten.
1. Einleitung und Grundlagen
Die Begriffe Design, Feature und Code Freeze können wie folgt charakterisiert werden:
- Design Freeze: Bei einem Design Freeze wird die System- oder → Softwarearchitektur als nicht mehr veränderbar definiert
- Feature Freeze: Nach einem Feature Freeze darf an einer Feature-Spezifikation keine Änderung mehr durchgeführt werden, sodass direkt in die Umsetzung / Codierung übergegangen werden kann
- Code Freeze: Der Programm-Code darf nach einem Code Freeze nicht mehr verändert werden. Dies dient dazu, Releases für die Freigabe fertigzustellen und einen systematischen → Softwaretest (mit Integrations- und Systemtest) zu ermöglichen
Abbildung 1 zeigt die Beschreibung der drei Begriffe.
Abbildung 1: Design, Feature und Code Freeze in der Übersicht
Generell sind Freezes Verbote von spezifischen Weiterentwicklungstätigkeiten an einzelnen Versionen. Diese Verbote werden aber benötigt, um nächste Schritte bei der Weiterentwicklung zu ermöglichen, so beispielsweise um spezifizierte Features als Code umsetzen zu können.
1.1 Andere Freezes
Folgende Freezes sind ebenfalls im Kontext meiner Tätigkeitsfelder (“Projekte, Prozesse und Requirements”) zu finden:
- Spezifikationsfreeze: Bezeichnet einen abgeschlossenen Stand von Requirements, die typischerweise in einem Spezifikationsdokument wie dem → Lastenheft oder dem → Pflichtenheft zusammengefasst werden
- Software Freeze: Ist in der Regel das Gleiche wie der Code Freeze: Die Software darf nicht mehr verändert werden
- String Freeze: Die Strings (zur Beschriftung von Bedienoberflächen) dürfen nicht mehr verändert werden. Dies ist insbesondere bei Softwaresystemen relevant, die mehrsprachig sind, da Zeit für Übersetzungen eingeplant werden müssen
- → Glossar Freeze: Hierunter wird verstanden, dass Glossarbegriffe nicht mehr verändert werden dürfen, um so im → Requirements Engineering Anforderungen stabil ableiten zu können
- Freeze im → Change Management: Beim Vorgehen nach Lewin wird ein Change-Prozess unterteilt in die Phasen “Unfreezing — Changing — Refreezing”
Auch zu finden sind die Begriffe Definition Freeze, Request Freeze, Resource Freeze, die in diesem Beitrag nicht erläutert werden. Weitere Freezes finden sich in der Wikipedia /#Wiki-Freeze/.
1.2 Freezes im Projektmanagement
Im → Projektmanagement dienen Freezes generell dazu, Stände von Artefakten und Liefergegenständen (Deliverables) zu fixieren. Hierunter fallen auch Planungsstände, die in Baselines übergehen. Wenn Änderungen an Baselines vorgenommen werden sollen, so geschieht dies in der Regel im Änderungsmanagement über → Change Requests.
Wenn man im Projekt Beschaffungsvorgänge hat, so sind Freezes verpflichtend, um Angebote von potenziellen Lieferanten einzuholen.
2. Zeitliche Abfolge
Eine zeitliche Abfolge der drei Freezes ist in Abbildung 2 in Form von Meilensteinen auf einem Zeitstrahl dargestellt.
Abbildung 2: Design, Feature und Code Freeze: Zeitliche Einordnung
Die Darstellung der Abstände der drei Freezes ist in Abbildung 2 zwar gleich, in der Realität können die Zeitabstände aber beliebig sein.
Um zu verdeutlichen, dass nach den einzelnen Freezes an einer neuen Version gearbeitet werden darf, kann Abbildung 3 herangezogen werden. Die orangen Pfeile deuten den zeitlichen Übergang zwischen zwei Versionen mit den entsprechenden Freezes an. Wann die Freezes an der Version 2 erfolgen, ist hier nicht eingezeichnet / festgelegt.
Abbildung 3: Design, Feature und Code Freeze: Zeitliche Einordnung bei zwei Versionen
3. Häufige Fragen und Antworten (FAQ) zu den Freezes
Einige Fragen zu den Freezes werden häufig gestellt – diese werden hier wiedergegeben.
- F: Müssen immer Freezes bei Systems- oder Software-Engineering-→ Vorhaben eingesetzt werden?
A: Ja, das ist zumindest ratsam. - F: Schränken Freezes nicht zu sehr die dynamische Entwicklung ein?
A: Wenn man auf Freezes verzichtet und entsprechend späte Veränderungen zulässt, so können die Kosten der Entwicklung dramatisch ansteigen. Dies zu abzuwägen: Wenn das Risiko der Verteuerungen und Verzögerungen getragen werden kann, so können Freezes eingeschränkt werden. - F: Braucht man bei agilem Vorgehen Freezes?
A: Generell wird das agile Vorgehen dazu, Änderungen möglichst lange zu erlauben, also nach Möglichkeit Freezes so spät wie möglich durchzuführen. Dennoch wird man in der Praxis um Freezes nicht ganz herumkommen.
Haben Sie noch weitere Fragen oder möchten Sie Ergänzungen an der FAQ vornehmen? Am besten schreiben Sie mir hierzu eine E‑Mail an: kontakt@peterjohann-consulting.de.
A. Präsentationen, Literatur und Weblinks
A.1 Meine öffentliche Präsentation
- -
A.2 Literatur
- /Ludewig23/ Jochen Ludewig, Horst Lichter: Software Engineering. Grundlagen, Menschen, Prozesse, Techniken, dpunkt, Heidelberg 4. Auflage 2022, ISBN 978–3‑86490–598‑8
- /Sommerville20/ Ian Sommerville: Modernes Software-Engineering: Entwurf und Entwicklung von Softwareprodukten, Pearson Studium, München 2020, ISBN 978–3‑86894–396‑2
A.3 Weblinks
Folgende Weblinks liefern Informationen zu den Freezes im Systems oder Software Engineering:
- /#Wiki-Freeze/ Freeze in der deutschen Wikipedia
Legende zu den Weblinks
/ / Verweis auf eine Website (generell)
/*/ Verweis auf eine Website, die als Buch-Ergänzung dient
/#/ Verweis auf einzelnes Thema auf einer Website
/#V/ Verweis auf ein Video auf einer Website
Letzte Aktualisierung: 14.03.2023 © Peterjohann Consulting, 2005–2023