Gibt es Architekten?
Wie schon in einem der Kommentare zu einem der letzten Posts angesprochen, ist eine weitere interessante Frage, ob es überhaupt Software Architekten gibt. Ich erinnere mich noch recht gut an ein Zusammentreffen verschiedener Leute, unter denen recht viele waren, die den Titel auf der Visitenkarte haben. Die Begrüßungrunde erinnerte dann an eine Selbsthilfe-Gruppe: Der erste Teilnehmer begann seine Vorstellung mit "Ich heiße ... und ich entwickel Software.", was dann von den meisten anderen übernommen wurde. An sich verstehen Software-Architekten sich also oft als Entwickler. Das entspricht auch dem üblichen Karriere-Profil: Man fängt als Entwickler (sozusagen Fußvolk) an, dann kann man Architekt werden und wenn es gut läuft, wird man Projektleiter. Je weiter man sich dann entwickelt, desto weniger muss man vom Coden verstehen und desto mehr Geld gibt es (wenn es gut läuft).
Also ist ein Architekt nur ein teurer Entwickler, der erfahren ist und daher weniger coden muss, was an sich eigentümlich ist. Dafür darf er Enwicklern Vorschriften machen. Darin stecken auch gleich wieder mehrere Probleme. Wenn er nicht mehr selbst codet, kann er schlecht Vorschriften machen. Außerdem geht das ganze von einer Arbeitsteilung zwischen Vorarbeiter (Architekt) und Entwickler (Fußvolk) aus, die vielleicht im produzierenden Gewerbe funktioniert: Es gibt einen, der die anderen bei der Arbeit anleitet, weil er mehr davon versteht und die anderen arbeiten. Aber auch hier gilt, dass die Leute, die die Arbeit machen, vielleicht doch etwas von der Arbeit verstehen.
Meiner Ansicht nach sollte daher der Architekt aber eine kommunikative Rolle haben: Er sollte mit den Entwicklern sprechen und herausfinden, wo Probleme oder vielleicht auch gute Ansätze sind, um dann die Probleme zu lösen oder die guten Ansätze zu unterstützen. Dies ist eher eine helfende oder coachende Funktion, währen klassisch der Architekt eher die unwissenden Entwickler kontrolliert.
Überhaupt ist ein wesentliches Problem, dass Entwickler eben tatsächlich oft als Fußvolk gesehen werden. Ich empfinde das als problematisch und arbeite bei einer Firma, bei der selbst der CEO ein Entwickler ist. Und andere, sehr erfolgreiche Firmen wie z.B. Google schreiben sich auch auf die Fahnen, eher mit kleinen Teams mit wenigen Entwicklern zu arbeiten und nicht so sehr auf eine Differenzierung zwischen Entwicklern und Architekten zu setzen. Auch das Spring-Framework ist die Arbeit einiger weniger Entwickler. Wenige, sehr gute Entwickler können also ein recht gutes Modell sein.
Auch dies spricht dafür das man einem Architekten - wenn es ihn denn gibt - eine kommunizierende Rolle geben sollte, denn die Entwickler selber sind hoch qualifiziert und brauchen nicht unbedingt eine Aufsicht. Letzendlich bedeutet das auch, dass der Architekt nicht die Architektur bestimmt, sondern den Prozess zum Erzeugen einer Architektur moderiert. Oder?