Agile Softwareentwicklung lebt von Veränderung. "Heisse Anforderungsänderungen selbst spät in der Entwicklung willkommen" heißt es im agilen Manifest.
In den ersten Sprints werden oft Eingeständnisse bzgl. Design und Implementierung gemacht, um ein Minimal-Viable-Product zu erreichen, die später nachgebessert werden müssen. Darüber hinaus können zwischen den Sprints Anforderungen hinzukommen oder verändert werden. Das sollte nicht als Problem, sondern als potentieller Wettbewerbsvorteil angesehen werden.
Aber wie kann man dieser Forderung nach Veränderbarkeit in der Praxis gerecht werden? Hier kann das Open/Closed Prinzip Abhilfe verschaffen. Die grundlegende Idee dahinter lautet: designe deine Software so, dass sie offen für Erweiterungen und geschlossen gegenüber Modifikationen ist.
Meist wird dieses Prinzip nur im Kontext der konkreten Umsetzung im Code berücksichtigt. In diesem Vortrag wollen wir die Perspektive erweitern und es auch im taktischen und strategisch Design anwenden. Anhand von konkreten Code-Beispielen wird das Open/Closed Prinzip vorgestellt und dessen Anwendung in den verschiedenen Design-Ebenen erklärt.