JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

Heute im W-JAX Countdown: Mike Wiesner über Spring vs. Java EE

Kolumne: Knigge für Softwarearchitekten

Die ständig Lernenden

Peter Hruschka und Gernot Starke

Willkommen zu einer neuen Serie unserer Kolumne rund um Verhaltensmuster von Softwarearchitekten. In den bisherigen Folgen hatten wir Sie mit guten und schlechten Verhaltensweisen traktiert. Nun geht's in eine etwas andere Richtung weiter - die nächsten Beiträge zeigen Ihnen, wie Sie systematisch Basiswissen zum Thema Softwarearchitektur erlangen - und so die Voraussetzungen für das Zertifikat "CPSA-F" (Certified Professional for Software Architecture, Foundation Level) des iSAQB e.V. [1] erwerben können.

Einstieg in die zweite Staffel: Wie lernen Architekten

In unseren Projekten wurden wir über viele Jahre immer wieder gefragt, wie und was Softwarearchitekten denn lernen sollten. Für andere Disziplinen, etwa Gebäudearchitekten, Maschinenbauingenieure oder alle Arten von Handwerkern, gibt es fest definierte und über viele Jahre erprobte Lehr- und Ausbildungspläne, inklusive Prüfungsordnung. Für Softwarearchitektur fehlte dieser Lehrplan lange Zeit - bis sich gegen 2007 etwa 15 Gleichgesinnte (wir inklusive) aus Hochschulen und verschiedenen Firmen zusammenfanden, um dieses Defizit zu beheben: Wir gründeten gemeinsam das "International Software Architecture Qualification Board" als eingetragenen Verein. Dessen Ziel ist es, das Curriculum für Softwarearchitekten festzulegen und eine passende Prüfungsordnung zu definieren. Wie das mit ehrenamtlicher Tätigkeit nun so ist - manche Dinge brauchten etwas länger: Fast zwei Jahre Diskussion und Abstimmung brauchte es, bis der iSAQB [1] 2009 endlich den ersten und wichtigsten Teil seiner Aufgabe erfüllte - und wir den Lehrplan für die grundlegende Ausbildung von Softwarearchitekten veröffentlichen konnten. Allein im Jahr 2011 haben knapp 1000 Personen erfolgreich die Prüfung zum "Certified Professional for Software-Architecture, Foundation Level" abgelegt!

Was lernen sie denn?

Das iSAQB-Curriculum (und wir persönlich!) gehen davon aus, dass Sie über fundierte technische Kenntnisse der Programmierung verfügen, bevor Sie sich an Softwarearchitektur heranwagen. Sie sollten Erfahrung in mehr als einer Programmiersprache sowie aus mehreren unterschiedlichen Projekten mitbringen, daneben Grundkenntnisse der Modellierung, beispielsweise in UML. Als hilfreich erweisen sich Vorkenntnisse in Objektorientierung sowie Konzeption und Implementierung verteilt ablaufender Anwendungen (etwa Client/Serversysteme oder Webanwendungen). Es mag Sie erschrecken - aber auch Erfahrung mit technischer Dokumentation hilft Ihnen in der Ausbildung zum Softwarearchitekten weiter.

Mehr zum Thema

Die beliebte Kolumne aus dem Java Magazin ist jetzt auch als Buch erschienen! Die Kolumnenteile wurden um zusätzliche Kapitel, Praxisberichte und wichtige Tipps und Ratschläge erweitert. Für alle Entwickler, Architekten, Teamleiter, Projektleiter, die besser werden wollen - unabhängig von der Plattform. Mehr Infos gibt es unter www.dotnet.de.

Auf Basis dieser Voraussetzungen (die Sie am besten durch einige Jahre Berufserfahrung in der Softwareentwicklung absichern), schreibt der iSAQB-Lehrplan die folgenden sechs Ausbildungs- beziehungsweise Kompetenzbereiche vor:

  • Grundbegriffe von Softwarearchitekturen: Rollen und Aufgaben von Softwarearchitekten, wichtige Arbeitsergebnisse, Zusammenarbeit mit anderen Projektbeteiligten
  • Beschreibung und Kommunikation von Softwarearchitekturen: Wie und was dokumentieren Sie, wie vermitteln Sie Ihre Ideen, Konzepte und Entscheidungen den beteiligten Personen?
  • Entwicklung und Entwurf von Softwarearchitekturen: Wie können Sie systematisch Strukturen und Konzepte für Softwaresysteme entwerfen?
  • Architektur und Qualität: Wie können Sie die für Ihr System geforderten Qualitätsmerkmale systematisch erreichen? Wie können Sie Ihre Entwürfe daraufhin bewerten oder diagnostizieren?
  • Werkzeuge: Welche Kategorien von Werkzeugen sollten Sie kennen? Keine Sorge - Sie müssen für iSAQB keine Tools installieren - es geht hier um's Prinzip!
  • Beispiele: Angehende Softwarearchitekten sollten gute schlechte Beispiele konkreter Architekturen gesehen und mit Ihresgleichen diskutiert haben - auch über den Horizont der eigenen Praxis hinaus.

Die Tortengrafik in Abbildung 1 zeigt die Gewichtung dieser Themenbereiche: Entwicklung und Entwurf steht der größte Block zu - dicht gefolgt von Beschreibung und den Grundlagen.



Abb. 1: Gewichtung der Themenbereiche
Nach dem Lernen schnell zur Prüfung?

Sie kennen das aus Schule und Ausbildung: Auch nach den interessantesten Fächern folgte meist eine Klausur oder Prüfung. Genau das können Sie auch bei (iSAQB-basierter) Softwarearchitektenausbildung haben. Im Gegensatz zu Schule und Uni verfolgt der iSAQB e.V. dabei eine klare Trennung zwischen Trainings- und Prüfungsanbietern: Kein Trainer darf eine Zertifizierungsprüfung durchführen - und die Prüfungsorganisationen dürfen keine Architekturausbildung veranstalten. Diese Trennung vermeidet Interessenskonflikte schon im Vorfeld - allerdings bekommen Sie auch noch so intensive Mitarbeit in der Ausbildung dafür in der Prüfung nicht positiv angerechnet.

Alternative Lehrpläne und Prüfungen

Natürlich gibt es auch andere Organisationen, die Ausbildung und Prüfung rund um Softwarearchitekturen anbieten. Wir (die Autoren) haben einige dieser Alternativen gründlich evaluiert, bevor wir den iSAQB mit gegründet haben. Aus unserer Sicht hatten alle anderen Lehr- und Prüfungspläne jedoch gravierende Nachteile, sodass wir Sie unseren Kunden nicht ruhigen Gewissens empfehlen konnten. Zwei Beispiele:

  • Die Technologieanbieter, beispielsweise Sun (jetzt Oracle) oder Microsoft fokussieren natürlich auf der jeweiligen Technologie. Neutrale, technologieübergreifende Methodik kommt dabei eher kurz. Die entsprechenden Ausbildungen sind großartig, wenn Sie in genau dieser Technologie Systeme bauen müssen - sie bringen Ihnen aber unserer Meinung zu wenig darüber hinaus bei. Die Kombination aus beispielsweise den "Certified Java Enterprise Architect" und dem iSAQB CPSA-F halten wir für eine optimale Vorbereitung auf "echte" Architekturaufgaben.
  • Die OpenGroup mit dem umfangreichen TOGAF-Framework [2] - richtet sich eher an IT-Strategen, denn an Praktiker (oder Pragmatiker). Uns war das für Softwarearchitekten viel zu weit weg von konkreten Entwurfsentscheidungen oder gar Quellcode.
Voraussetzung: Ständige Neugier

Was Ihnen das offizielle und mittlerweile verbreitete Curriculum verschweigt, ist eine Grundanforderung an Softwarearchitekten: Neugierde. Interesse daran, zusätzlich zu eigener Erfahrungen neue Ansätze, Technologien oder Methoden zu erlernen und mit bekannten Dingen zu vergleichen. Ohne diese Bereitschaft, ständig zu lernen, nimmt der Wert von Architektenwissen und -fähigkeiten mit der Zeit immer mehr ab. Sie kennen ja die kurzen Halbwertszeiten vieler Themen in der IT.

Pro und Kontra Zertifizierung

Wir (die Autoren) wissen, dass Sie durch eine erfolgreiche Zertifizierung nicht automatisch bessere Softwarearchitekturen entwickeln und umsetzen können. Aber ein abgeschlossenes Informatikstudium an einer Hochschule garantiert das ebenfalls nicht. Trotzdem streben Auszubildende und Studenten in der Regel einen standardisierten Abschluss an - weil die meisten Organisationen und Unternehmen genau auf solche Formalia achten.

Häufig sehen Zertifizierungsprogramme sich dem Vorwurf der "Gelddruckmaschinen" ausgesetzt, die wenig an echter Qualifikation interessiert sind. Der iSAQB e.V. deckelt darum die Höhe der Prüfungsgebühren auf moderates Niveau. Weiterhin sorgt die heterogene Mitgliederstruktur für ausgewogene fachliche Abstimmungen und die öffentlichen Lehrpläne gewährleisten hohe inhaltliche Transparenz.

Die unter Kontrolle des iSAQB e.V. von verschiedenen Prüfungsorganisationen angebotene Zertifizierung zum "Certified Professional for Software Architecture (Foundation Level)" belegt zumindest, dass deren Absolventen sich intensiv mit den wesentlichen Themenbereichen rund um Softwarearchitekturen auseinandergesetzt haben.

Zukünftig werden die so genannten Advanced-Level-Zertifikate in hohem Maße auch praktische Fähigkeiten einer Prüfung unterziehen. Leider hat der iSAQB e.V. diese CPSA-A ("Advanced") Prüfungen bisher nicht freigegeben - wir rechnen ab Mai/Juni 2012 mit der Veröffentlichung.

Unser Tipp: Lernen Sie der Inhalte wegen, weil Sie methodisches Vorgehen in jedem Fall zu besseren Architekturen führen wird. Und falls Ihre Organisation Wert auf Zertifikate legt... dann nur zu.

Fazit

Die gute Nachricht: Das Berufsbild von Softwarearchitekten hat durch den umfangreichen und praxisnahen iSAQB-Lehrplan deutlich an Kontur gewonnen. Dieses Curriculum kann Ihnen helfen, Ihre Aufgaben in Projekten gegenüber anderen Rollen besser abzugrenzen.

Die schlechte Nachricht: Auch Absolventen einer wohldefinierten Ausbildung können immer noch schlechte Architekturentscheidungen treffen... Sie müssen also auch weiterhin nachdenken (und iterativ arbeiten).

Peter Hruschka und Gernot Starkehaben vor einigen Jahren www.arc42.de ins Leben gerufen, das freie Portal für Softwarearchitekten. Sie sind Gründungsmitglieder des International Software Architecture Qualification Board sowie Autoren mehrerer Bücher rund um Softwarearchitektur, Softwareentwurf und Entwicklungsprozesse.
 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).