Ein Software Architekt nimmt im Software-Engineering eine wesentliche Rolle ein, die je nach Unternehmen sehr unterschiedlich interpretiert und durch die jeweiligen Menschen noch unterschiedlicher ausgefüllt wird. Deshalb gibt es auch nicht DEN Software Architekten. Die Bezeichnung »Software Architect« stammt aus dem Englischen. Trotz der im Deutschen korrekten Schreibweise »Softwarearchitekt« sind auch hier die Schreibweisen »Software Architekt« und »Software-Architekt« geläufig.
Was sind besondere Eigenschaften und Merkmale von Software Architekten?
Kennen Sie einen typischen Software Architekten oder arbeiten sogar mit ihm zusammen? Jeder füllt diese Rolle anders aus und hat besondere Eigenschaften und Aufgaben. Im Gegensatz zu anderen Rollen im Software-Engineering scheint die Bandbreite der unterschiedlichen Interpretationen viel größer zu sein. Deshalb verwundert es nicht, dass es zahlreiche Analogien aus anderen Bereichen gibt, um den Software Architekten, das unbekannte Wesen, etwas greifbarer zu machen. In vielen Präsentationen zu Softwarearchitektur sieht man immer wieder solche Analogien. Gregor Hohpe und Rebecca Whirfs-Brock haben mich mit ihren Vorträgen bei der Konferenz für Software Architektur OOP inspiriert, eine (sicherlich unvollständige) Aufstellung von Charakterisierungen zu machen.
Hier meine Sammlung von Analogien, die die Aufgaben des Software Architekten je nach Ausprägung beschreiben:
- Architekt als Generalplaner: Der Architekt plant alles ganz genau voraus und macht dann den Entwicklern klare Vorgaben bezüglich der Umsetzung. Er ist als einzelne Instanz, die über die Integrität des Gesamtsystems wacht, unabdingbar. (Siehe Martin Fowler, Architectus Reloadus)
- Architekt als Gärtner: Der Architekt gibt Leitplanken vor, wie ein Gärtner einen Garten strukturiert. Darin wächst dann alles eigenständig und der Architekt beobachtet den Fortschritt und greift korrigierend ein.
- Architekt als Mentor und Coach: Der Architekt versteht sich als Kümmerer im Projekt und klinkt sich immer wieder an unterschiedlichen Stellen ein. Er hilft Kollegen und unterstützt sie, auch bei Implementierungsaufgaben. Dadurch hat er einen sehr guten Überblick über das gesamte System und ist sehr nah an der Entwicklung dran. (Siehe Martin Fowler, Architectus Oryzus)
- Architekt als Reiseführer: Der Architekt nimmt andere Rollen in der Entwicklung mit auf eine Reise und kann zu allem etwas erläutern.
- Architekt als Barkeeper: Der Architekt mixt verschiedene Dinge zusammen: Insbesondere Business und Technologie. Dabei versteht er das Business und zeigt durch die Technologie neue Möglichkeiten auf, die er dann auch realisieren kann.
- Architekt im Aufzug, Architekt als Mediator: Der Architekt ist in einem Aufzug unterwegs, der zwischen verschiedenen Stockwerken eines Unternehmens fährt. Diese Stockwerke symbolisieren alles von der Entwicklung bis zum Vorstand. Ein Architekt wird dadurch charakterisiert, wie viele Stockwerke er fahren kann, das heißt auf welchen Ebenen er mit den Menschen sprechen kann und auch zwischen den verschiedenen Ebenen vermitteln. Das bezieht sich einerseits auf die Fähigkeit, zwischen Abstraktionsebenen zu springen und andererseits auf die Fähigkeit mit Menschen unterschiedlicher Profession in der Sprache zu sprechen.
- Architekt als Verkäufer von Optionen, Architekt als Ökonom: Der Architekt betrachtet die Architektur als Menge von Entscheidungen mit ökonomischem Einfluss auf die Entwicklung und die Zukunft des Softwaresystems. Insbesondere ermöglicht der Architekt es, bestimmte Änderungen am System in der Zukunft kostengünstig machen zu können. Dadurch sind in der Gegenwart Investitionen nötig (ähnlich wie bei Optionsscheinen, die es einem erlauben, in der Zukunft bestimmte Geschäfte zu einem festgelegten Preis zu tätigen).
- Architekt als Stammesältester: Der Architekt als Respektsperson, die aufgrund ihrer Historie und Verdienste einen hohen Einfluss und Anerkennung genießt.
- Architekt als Pfadfinder: Der Architekt als Entdecker neuer Wege mit einem Sinn für gute Taten.
- Architekt als Designer: Der Architekt als Gestalter eines Softwaresystems, der wichtige und weitreichende Entscheidungen über das System trifft.
- Architekt als Phantombildzeichner: Der Architekt als „Extrahierer und Dokumentierer“ von existierender Softwarearchitektur. Wenn Zeugen einen Verbrecher gesehen haben, so können sie ihn oft zumindest grob beschreiben, obwohl sie nie in der Lage wären, ihn zu zeichnen. Diese Aufgabe kommt dem Phantombildzeichner zu, der fundiertes Wissen über die menschliche Anatomie hat und die Kunst versteht, Informationen den Menschen zu entlocken und zu dokumentieren. Die gleiche Rolle können gute Softwarearchitekten einnehmen. Mit ihrem fundierten Wissen über Architektur und Dokumentation können sie gemeinsam mit Entwicklern Informationen extrahieren und geeignet dokumentieren. Obwohl es nicht direkt zu erwarten ist, können viele Entwickler und sogar viele Softwarearchitekten ihre Architektur nicht gut visualisieren, dokumentieren und kommunizieren. Deshalb ist der Phantombildzeichner oft sehr hilfreich.
- Architekt als Technologieexperte: Der Architekt als Kenner von Technologien in einem bestimmten Technologiebereich. Diese Übersicht erlaubt ihm, Technologien zu identifizieren, zu bewerten und auszuwählen.
- Architekt als Domänenexperte: Der Architekt als Kenner der Domäne, für die ein System entwickelt wird.
- Architekt als Möwe: Der Architekt stürzt sich auf ein bestimmtes Thema herab, wirbelt dort einigen Staub auf und fliegt dann wieder von dannen.
- Architekt als Astronaut: Der Architekt bewegt sich in ganz anderen Sphären und ist so weit von der Entwicklung weg, dass er kaum was über den System weiß, wenig Einfluss hat und bei den Entwicklern wenig Wertschätzung erfährt.
- Architekt im Elfenbeinturm: Der Architekt ist eher wissenschaftlich angehaucht und schottet sich von der eigentlichen Entwicklung ab. Damit geht es ihm so ähnlich wie dem Astronauten.
- Architekt als Powerpoint-Künstler: Der Architekt als Ersteller von schönen Powerpoint-Bildern, die mit der Realität (dem Code) häufig wenig zu tun haben und ihm deshalb bei Entwicklern wenig Respekt einbringen.
Diese Analogien greifen akzentuiert bestimmte (positive wie negative) Eigenschaften des Software Architekten heraus und machen sie verständlich. Letztlich dürfte natürlich keine der Analogien einen Software Architekten wirklich komplett beschreiben und sie schließen sich auch nicht gegenseitig aus. Sie erläutern aber sehr gut verschiedene Persönlichkeitstypen und verschiedene Arbeitsauffassungen.
Die Liste mit Analogien für Software Architekten ist bestimmt noch viel länger und darf gerne in den Kommentaren ergänzt werden!
Keine einheitliche Definition von Software Architekt
Da es auch keine einheitliche Definition von Softwarearchitektur gibt, ist es natürlich kein Wunder, dass auch bei Software Architekten keine einheitliche Auffassung existiert. Die Vielfalt der Analogien sollte aber sowohl Software Architekten selbst helfen, über ihr Tun zu reflektieren und anderen Personen die Gelegenheit eröffnen, Software Architekten besser zu verstehen.
Unabhängig von der Analogie scheint Software Architekt aber ein toller Job zu sein. Zum wiederholten Male landete er bei „Best Jobs in America (CNN Money)“ auf dem ersten Platz :-). Das Fraunhofer IESE sucht übrigens regelmäßig Software Architekten. Schauen Sie gerne auf unserer Karriereseite vorbei.
Aber wie wird man denn eigentlich Software Architekt? Besuchen Sie unser Seminar »Softwarearchitektur« am Fraunhofer IESE und profitieren Sie von unserer Expertise!
Nach dem Seminar haben Sie das Wissen, um …
- Architekturen in Ihrem Unternehmen einzusetzen. Unsere Methodik erlaubt den Teilnehmern, schnell einen praktischen Einstieg in das Thema Architektur zu finden und nach dem Seminar Architekturen eigenständig zu definieren, zu verwenden und zu bewerten.
- Architekturen pragmatisch zu nutzen. Architekturen sind kein Selbstzweck, daher definiert unsere Methodik klare Anwendungsfälle. Insbesondere legen wir das Augenmerk auf Verwendungsszenarien für Architekturdokumentation: Wie kommt man von der Architektur zu etwas, das bei der Entwicklung und Evolution einsetzbar ist und in der täglichen Praxis hilft.
- Architekturen mit anderen Aktivitäten des Software Engineering zu verzahnen. Ergebnisse und industrielle Fallbeispiele zeigen, wie Architekturen über den gesamten Lebenszyklus hinweg genutzt werden können.
- technologische Trends und Hypes einschätzen zu können. Der Name Fraunhofer steht für die objektive Darstellung von Inhalten. Im Gegensatz zu Wettbewerbern vermitteln wir eine neutrale Sicht auf das Thema.
Mehr zum Themenfeld Software-Architekur beim Fraunhofer IESE finden Sie auf unserer Website:
Gustav Sucher sagt:
Den Architekt als Möwe finde ich persönlich am interessantesten. Dieser Architekt sollte eindeutig die Übersicht haben. Ich würde mich eher als Architekt für Powerpoint-Künstlerei bezeichnen. Schließlich wollen die Kunden auch sehen, was ihnen bevor steht. Danke für den tollen Beitrag!