17 Everybody is an architect, except when they’re not
Viele Software-Teams versuchen die Rolle des Softwarearchitekten untereinander aufzuteilen, wobei sich das Wiederfinden der genauen Rollendefinition als schwierig herausstellt.
Hierbei ist es essentiell, dass alle Mitarbeiter die Möglichkeit besitzen, Änderungen an allen Stellen des Projekts durchzuführen. Somit muss auch jeder Mitarbeiter das große Ganze im Kopf haben und sich über die Auswirkungen von Änderungen komplett bewusst sein.
Erst wenn jedes Mitglied eines Teams permanent dazu in der Lage ist, an jeder Baustelle des Projekts zu arbeiten und währenddessen alle nicht-funktionalen Anforderungen erfüllt sind, kann von einem funktionierenden, selbst organisierenden Team gesprochen werden. Hier wird ersichtlich, dass die Idee nicht perfekt umsetzbar ist und dass ein Mitarbeiter niemals in mehreren solcher Projekte gleichzeitig arbeiten könnte. Aus diesem Grund ist die Rolle des Softwarearchitekten, welcher die Verantwortung für ein Projekt übernimmt, unerlässlich.
Bei der agilen Softwareentwicklung wird häufig von einem Softwarearchitekten, welcher das große Ganze im Auge hat abgesehen, da dieses zu Beginn der Entwicklung noch sehr abstrakt ist. Das Problem dabei ist, dass die Entwicklung schnell sehr chaotisch werden kann, wenn niemand darauf achtet wie der Rahmen abgesteckt sein muss um ein Ziel zu erreichen. Es sollte bei einem agilen Projekt nicht ein zu großes Konzept vorgegeben werden, da dieses die Agilität einschränkt. Dies ist allerdings auch nicht die Aufgabe des Softwarearchitekten.