© Excellent backgrounds/Shutterstock.com
Langlebige Softwarearchitektur und Qualitätsansprüche

Evolution statt Diktatur


Wie entstehen gute, moderne, State-of-the-Art-Softwaresysteme, die nicht in drei bis fünf Jahren einem Ablösungsprojekt zum Opfer fallen? Antwortmöglichkeit 1: Durch die Arbeit eines einzelnen, genialen Meisters, der alle Einflüsse austariert und einen detaillierten Entwurf der Wahrheit erstellt, an den sich alle halten. Antwortmöglichkeit 2: Durch die Nutzung individueller Kompetenzen, um einen groben Rahmen auszugestalten und kontinuierlich weiterzuentwickeln. Ich bin ein Freund der zweiten Antwort.

Kleine Projekte werden oft belächelt. Die paar Leute zu organisieren, sei keine Kunst, große Projektrisiken gäbe es nicht. In solchen Umfeldern könne noch jeder mit jedem reden. Man könne sich die technische Basis einfach ausmachen und zur Not ist leicht etwas geändert. Als Entwickler arbeitet man gerne in einem solchen Projekt. Die Motivation ist hoch, der Einfluss auf das Ergebnis ist sichtbar, und bei Problemen vergräbt man sich in technische Details statt im politischen Wirrwarr.

Was wäre, wenn große Projekte auch so funktionieren würden? Was wäre, wenn wir nicht versuchen, das Erfolgsrezept von kleinen Projekten zu verändern, sondern ein Großprojekt einfach als Sammlung von kleinen Projekten mit überschneidenden Zielen sehen? Das ist nicht einfach, aber viele IT-Firmen turnen vor, wie es gehen kann. Wichtig ist, dass der übergreifende Rahmen nicht zu breit, komplex und inhaltlich wichtig wird. Dass die Gesamtarchitektur unseren Kleinprojekten so wenig Freiheit wie möglich nimmt, ihre Unabhängigkeit stärkt und so viel Verantwortung wie möglich überträgt. Dieser Artikel stellt Techniken und Konzepte vor, die helfen, diese Idee umzusetzen. Große Vorhaben werden dadurch potenziell risikoärmer, reaktionsfähiger, schneller, innovativer und für Entwickler interessanter.

Wichtig ist eine schlanke Makroarchitektur

In Stefan Zörners Artikel auf Seite 32 wird der bindende Rahmen für alle Entwickler als Makroarchitektur bezeichnet. Nachdem es sich um eine Form von Standardisierung handelt, lässt sich dieser Rahmen schwer ändern, wirkt sich also negativ auf die Geschwindigkeit von Änderungen aus, die den Rahmen betreffen. Viele Firmen versuchen folglich nichts in der Makroarchitektur vorzugeben, was sich schnell ändern muss. Möchte man langlebige Systeme bauen, ist Änderung jedoch die einzige Konstante. Nicht nur in der Domäne, auch und besonders auf Seiten der Technologie. Langlebige Systeme sind wandlungsfähige Systeme, und die Makroarchitektur sollte Änderungen nicht erschweren, sondern sie erleichtern. Sie ist in der modernen Ausprägung deshalb schlank. Die Inhalte der Makroarchitektur kann man in zwei Kategorien einteilen:

  • Harte Regeln: Vorgaben, die als Rahmenbedingung für die eigene Entwicklungstätigkeit gelten. Eine zulässige Lösung muss sich an diese Regeln halten. Auch sehr schlanke Makroarchitekturen stellen typischerweise Regeln auf, um Logging und Monitoring effektiv zu ermöglichen oder den Zugriff auf sicherheitsrelevante Fremdartefakte zu regeln.

  • Vorschläge: Ideen und Lösungen, die einen präferierten Weg aufzeigen. Dieser weiche Teil der Makroarchitektur enthält z. B. Prinzipien, Bibliotheken oder Konzepte. Das Team oder der Entwickler entscheidet selbst über deren Anwendung und muss abwägen, ob die individuellen und gemeinsamen Ziele damit zu erreichen sind.

Der Netflix RSS Reader ist ein Beispiel für einen solchen Vorschlag [1]. Es handelt sich um eine Beispielapplikation, die das Zusammenspiel der wichtigsten Projekte des Netflix Open Source Stacks (OSS) illustriert. Als Rezept (Recipe) gedacht gibt es Einsteigern einen Startpunkt für die Konstruktion neuer Services. Es entsteht ein Umfeld, in dem unerfahrene Entwickler schnell loslegen können, erfahrene Entwickler aber Innovationen einbringen können ohne behindert zu werden. Experten weichen an manchen Stellen von diesem Rezept ab, um besondere Ziele zu erreichen oder vielversprechende Technologien aufzugreifen. Irgendwann können diese Abweichungen das Rezept, also den etablierten Standard, bereichern und verbessern. Dies ist dann eine evolutionäre Weiterentwicklung der Architektur.

Wir sollten uns im ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang