t2informatik » Wissen kompakt » Twin Peaks Modell

Was ist das Twin Peaks Modell?

Wie lassen sich die Anforderungen und die Architektur eines Systems parallel entwickeln?

Twin Peaks Modell – Definition

Das Twin Peaks Modell beschreibt, wie Sie Anforderungen und Architektur eines Systems iterativ und parallel zueinander entwickeln. Es liefert die Antwort auf die Frage „Was muss zuerst entwickelt werden – die Anforderungen oder die Architektur?“ Es veranschaullicht die ineinander verflochtenen Aktivitäten des Requirements Engineerings und der Entwicklung der Systemarchitektur.

Der Ursprung des Modells

Das Twin Peaks Modell ist eine vereinfachte Version des Spiralmodells und geht auf Professor Bashar Nuseibeh zurück, der im Jahre 2001 dafür plädierte, die Anforderungsermittlung und den Architekturentwurf verzahnt und parallel zu organisieren. Er hatte erkannt, dass eine sequenzielle Reihenfolge  aus „Requirements first, Design second“ bei innovativen Systemen nicht zweckmäßig ist.

Twin Peaks Modell
\

Parallel und iterativ

Anforderungen und die Architektur eines Systems sind stark voneinander abhängig. Das Twin Peaks Modell verfolgt den Gedanken, beides iterativ und parallel zu entwickeln.

Die Visualisierung der Twin Peaks

Visualisiert wird das Twin Peaks Modell mit zwei gleichartigen Bergen (daher Twin Peaks genannt); der eine Berg repräsentiert die Anforderungen, der andere die Architektur. Beide sind gleich hoch und gleich wichtig. Sie beginnen mit groben Anforderungen und Architekturmodellen und verfeinern sie parallel zueinander im gegenseitigen Wechsel. So gelangen Sie vom schmalen Gipfel der Berge mit zunehmender Detaillierung zu neuen Anforderungen und Architekturelementen.

Anforderungen und Architektur im Twin Peaks Modell

Die parallele Entwicklung

Viele IT Organisationen stehen vor der Frage, wie sie bei der Entwicklung eines neuen Systems vorgehen sollen. Gilt es zuerst Anforderungen zu erfassen oder wäre es besser, zuerst die Softwarearchitektur zu entwerfen? Anforderungen können sich ändern, neue Technologien erscheinen und frühere Designentscheidungen in Frage stellen. Es empfiehlt sich daher zu Beginn, die wichtigsten Anforderungen an ein System rudimentär zu entwerfen. Entwickeln Sie mit diesen Anforderungen einen Prototypen oder ein Minimum Viable Product (MVP), holen Sie sich Feedback der Stakeholder ein und überarbeiten Sie Ihren Entwurf. Leiten Sie daraus neue Anforderungen ab und bewerten und priorisieren Sie vorhandene Anforderungen erneut. Und setzen Sie  die priorisierten Anforderungen wieder in der Architektur um. 

Die Kommunikation bei paralleler Entwicklung

Das Twin Peaks Modell beschreibt ein dynamisches Zusammenspiel zwischen Anforderungen und Architektur. Für dieses Zusammenspiel ist eine gute Kommunikation zwischen den Projektbeteiligten essentiell. Idealerweise gibt es in dem Projektteam sowohl einen Anforderungsanalysten als auch einen Systemarchitekten. Beide arbeiten gleichzeitig und iterativ. So werden einerseits Probleme bei Architekturbeschränkungen besser verstanden und anderseits Architekturen auf Basis von Anforderungen besser entwickelt oder angepasst. Natürlich benötigt der Systemarchitekt einen hervorragenden Überblick über das System und seine Umgebung. Er beurteilt die Auswirkungen und Abhängigkeiten von Anforderungen auf die Architektur und kommuniziert Anforderungen, die sich aus verschiedenen Architekturalternativen ergeben.

Vorteile der parallelen Entwicklung

Anforderungen und die Architektur eines Systems sind stark voneinander abhängig. Das Twin Peaks Modell verfolgt den Gedanken,  parallel auf Anforderungen und Architektur zu achten. Dadurch ergeben sich verschiedene Vorteile: 

  • Die Detaillierung und Konkretisierung von Anforderungen erfolgt genauso schrittweise wie die Erforschung passender Architekturalternativen. Somit wächst die Architektur anhand der Anforderungen und Architekturentscheidungen können zu Konkretisierung und Neubewertungen von Anforderungen führen.
  • Die Architektur steht im Fokus und lässt sich so gestalten, dass sowohl die gesetzten Ziele als auch funktionale und nicht-funktionalen Anforderungen erfüllt werden. Gleichzeitig wird ein Architecture-Indifferent Design mit einer Vernachlässigung der Architektur vermieden, bei der Entwickler vorhandene oder in der Domäne übliche Architekturen (Presumptive Architecture) verwenden.
  • Projekt- und Produktrisiken lassen sich durch die Evaluation von Alternativen mittels Analysen, Simulationen, Prototyping oder Refactoring reduzieren.
  • Die Nachvollziehbarkeit wird erhöht, denn Architekturentscheidungen lassen sich auf Anforderungen und vice versa zurückführen.
  • Inkonsistenzen zwischen Anforderungen und Architektur werden vermieden.
  • Ohne frühzeitige Architekturbewertung werden kritische Anforderungen leicht übersehen. Dies führt häufig zu Nacharbeiten, verspäteten Designänderungen und hohen Kosten. Mit dem Twin Peaks Modell lässt sich dies vermeiden.

Twin Peaks Modell Guide - t2informatik Download

Jetzt den Twin Peaks Modell Guide kostenlos downloaden.

Alles Wichtige über das Twin Peaks Modell und die Vorteile paralleler Entwicklung von Architektur und Anforderungen auf 6 Seiten zum Mitnehmen.

Hier klicken »

Herausforderungen für Unternehmen

Die Architektur im Blick behalten

Wenn Sie sich mit Software- und Systementwicklung beschäftigen, haben Sie vielleicht auch schon die Erfahrung gemacht, dass es im Laufe der Zeit zu einer Architekturverschlechterung kommt. Trotz agiler Methoden wie Scrum und Kanban passiert es immer wieder, dass sich der Fokus beim Zusammenspiel aus Anforderungen und Architektur verschiebt und die Systemarchitektur etwas in den Hintergrund tritt. Um dies zu vermeiden sollten IT-Organisationen über den Lebenszyklus eines Produkts hinweg folgende Fragen im Blick behalten:

  • Welche Softwarearchitekturen sind bei sich ändernden Anforderungen stabil und wie wählen wir diese aus?
  • Welche Anforderungen sind stabiler als andere und wie identifizieren wir sie?
  • Welche Anforderungen sind volatil und wie identifizieren wir sie?
  • Wie gelingt die zukunftssichere Skalierung von Systemen?
  • Wie erreiche ich eine Modularisierung von Systemen?

Gerne stellen wir Ihnen Wissen, Erfahrung und 100% Leidenschaft für Ihre Softwareentwicklung und Anforderungsanalyse zur Verfügung. Wir helfen Ihnen bei der Erhebung, Strukturierung und Verwaltung von Anforderungen und achten dabei auf Konsistenz, Vollständigkeit und Nachvollziehbarkeit. Wir entwerfen eine robuste Systemarchitektur, identifizieren technische Zusammenhänge und berücksichtigen Stakeholder, Ziele und Randbedingungen.

Hier erfahren Sie mehr zum Thema Softwareentwicklung »

Weitere Details und Hintergründe ...
Share This