Was ist ein Software Architekt?

Viele Mitmenschen in unsrer modernen Welt, verbinden mit einem Architekt/in eine Person, die verantwortlich für die Gestaltung eines Hauses ist. Er kreiert ein Gebäude mit all seinen Fenstern, Türen, Schornstein, Dach, Giebel bis hin zur Farbe der Fassade.

Fotolia 47545835 XS

Er kümmert sich...

um Bauantrag, Baugenehmigung, Einhaltung von Bestimmungen wie Statische-, Baustoff-, Feuer-, Schall-, Wärme-, Wind-, Erdbeben-, (Hoch-)Wasser-, Umwelt-, Gesundheit-, Kommunale-, Landes-, Bundes-, usw... Bestimmungen

 Er redet mit dem Bauherrn, Gemeinde, Ämtern, Polier, Maurer, Sanitär und Elektroinstallateur, Statiker, Baufirma, usw.

All diese Menschen sind in Ihrem Bereich Profis und haben Ihr eigenes Fachjargon! Schlimm, wenn der Architekt diese Jargons nicht alle kennt und schlimm, wenn der Architekt in dem Fachjargon, jedes einzelnen, nicht kommunizieren kann(!).

Er zeichnet Entwürfe, Dokumentiert das Gebäude und macht nach Bau des Gebäudes eine Abnahme!

Fotolia 57501967 XS

Und was macht nun der SOFTWARE-Architekt?

In der IT gibt es, analog zu dem (Bau-) Architekten,  einen Software-Architekten* (SA) der Anforderungen sammelt, Randbedingungen erörtert und analysiert, mit Entwicklern und Administratoren technische Konzepte entwickelt, diese dann im Ganzen bewertet und dokumentiert und nicht zu vergessen die Entwicklung der Systems begleitet, prüft und dem Betrieb "schlüsselfertig" übergibt.

Auch hier, muss sich der SA in dem Fachjargon des Projektleiters, Management, Stakeholder, Administratoren und Entwickler bestens auskennen.

Er Kommuniziert pro-aktiv!

Kann auch selbst programmieren, weiß wie man saubere Software entwickelt (CCD). Und dokumentiert all dies zum Beispiel in arc42.

Bewährte Konzepte wie Domain-Driven-Design, Modellgetriebene Architektur kennt er.

Auch Techniken für den Entwurf von guten Systemen sind ihm wohl bekannt:

  • Lose Kopplung, hohe Kohäsion
  • Zerlegung nach Verantwortungsbereichen
  • Liskov'sches Substitutionsprinzip
  • ...

ebenso Architekurmuster wie Model-View-Controller, Pipes und Filters, Black- und Whitebox, Serviceorientierte Architektur sind dem Software-Architekten bekannt.

Software-Entwicklungs-Patterns wie Proxy, Adapter, Observer, Bridge, Fassade,... usw. sind gängige Hilfsmittel.

Der Unterschied zum Gebäude, bewertet der SA das System, analysiert, dokumentiert und bewertet es zyklisch.

Software wird in der Regel immer weiterentwickelt, verbessert und an neuen Anforderungen und Randbedingungen angepasst.

Fazit

Ein Software-Architekt ist der 10-Kämpfer der IT. In allen Disziplinen muss er alles geben!

 

Ich empfehle allen Interessierten, das Buch von Gernot Starke und Peter Hruschka: Knigge für Softwarearchitekten.

 

Auch das Buch von Stefan Zörner: Softwarearchitekturen dokumentieren und kommunizieren: Entwürfe, Entscheidungen und Lösungen nachvollziehbar und wirkungsvoll festhalten kann ich Jedem nur wärmstes empfehlen.

 

Setzt man sich mit dem Gedanken auseinander sich selbst als Software-Architekt, nach dem iSAQB-Standard, zertifizieren zu lassen, empfehle ich die Literatur: Basiswissen für Softwarearchitekten: Aus- und Weiterbildung nach iSAQB-Standard zum Certified Professional for Software Architecture - Foundation Level