Was ist eigentlich ein Softwarearchitekt?

Die Rolle des Softwarearchitekten wird je nach Unternehmen sehr unterschiedlich interpretiert und durch die jeweiligen Menschen noch unterschiedlicher ausgefüllt. Deshalb gibt es auch nicht DEN Softwarearchitekten.

Im Gegensatz zu anderen Rollen im Softwareengineering scheint jedoch die Bandbreite der unterschiedlichen Interpretationen viel größer zu sein. Deshalb verwundert es nicht, dass es zahlreiche Analogien aus anderen Bereichen gibt, um den Softwarearchitekten, 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 OOP 2017 inspiriert, eine (sicherlich unvollständige) Aufstellung von Charakterisierungen zu machen.

  • 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.

Gregor Hohpe @ OOP 2017: Architekt als Phantombildzeichner

  • 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 J
  • 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 Softwarearchitekten heraus und machen sie verständlich. Letztlich dürfte natürlich keine der Analogien einen Softwarearchitekten wirklich komplett beschreiben und sie schließen sich auch nicht gegenseitig aus. Sie erläutern aber sehr gut verschiedene Persönlichkeitstypen und verschiedene Arbeitsauffassungen.

Da es auch keine einheitliche Definition von Softwarearchitektur gibt, ist es natürlich kein Wunder, dass auch bei Softwarearchitekten keine einheitliche Auffassung existiert. Die Vielfalt der Analogien sollte aber sowohl Softwarearchitekten selbst helfen, über ihr Tun zu reflektieren und anderen Personen die Gelegenheit eröffnen, Softwarearchitekten besser zu verstehen.

Unabhängig von der Analogie scheint Softwarearchitekt aber ein toller Job zu sein. Zum wiederholten Male landete er bei „Best Jobs in America (CNN Money)“ auf dem ersten Platz :-).

CNN Money: Best Jobs in America (2015)

Die Liste mit Analogien für Softwarearchitekten ist bestimmt noch viel länger und darf gerne in den Kommentaren ergänzt werden!

2 Kommentare

  1. Michail Anastasopoulos

    12. Februar 2017 at 11:55

    Lieber Matthias,
    vielen Dank für diesen Beitrag.

    Ich erlebe oft in Teams, dass ein Architekturbewusstsein komplett fehlt. Jeder Stakeholder denkt an seinen jeweiligen Kontext und betrachtet das Gesamtsystem und die Einhaltung der Integrität nicht. Das bemerkt man natürlich irgendwann und dann kann es teuer werden…

    Eine Erklärung dafür ist vielleicht, dass es oft keinen dedizierten Architekten gibt, der dieses Bewusstsein etabliert. Hierzu könnte man eine weitere Charakterisierung wie „Architekt als Mis­si­o­nar“ ableiten 🙂

    Wenn ein Architekt mit technischen Teams interagiert, muss er vielleicht großen Wert auf diese Rolle des Missionars legen, so dass jeder zu einer qualitativen Systemarchitektur beiträgt. Andernfalls ist die Aufgabe des Architekten womöglich schwer zu erfüllen.

    Bin auf Deine Meinung hierzu gespannt.

    Viele Grüße,
    Michalis

    • Marcus & Matthias

      12. Februar 2017 at 22:26

      Lieber Michalis,

      vielen Dank für deinen Kommentar und deine direkte Ergänzung.

      Deine Beobachtung kann ich nur unterstützen, das ist mir auch schon oft begegnet. Das heißt nicht unbedingt, dass in solchen Teams niemand von Architektur spricht. Es fehlt eher, wie du auch schreibst, das ganzheitliche Bewusstsein für die Integration aller Aspekte und eine Ausrichtung auf Qualität.

      Die weitere Charakterisierung „Architekt als Missionar“ kann ich somit nur unterstützen. Manche der anderen Analogien haben zwar Überlappungen dazu (z.B. Architekt als Mentor, Architekt als Gärtner, Architekt als Phantombildzeichner), der Missionar bringt es aber nochmal besonders gut auf den Punkt!
      Danke dafür!

      Viele Grüße
      Matthias

Schreibe einen Kommentar

Ihre Emailadresse wird nicht veröffentlicht.

*

© 2017 mibinu

Theme von Anders NorenNach oben ↑