13 Software development is not a relay sport
Die Rolle des Softwarearchitekten kann im Idealfall durch die Zusammensetzung der verschieden spezialisierten Teammitglieder getragen werden. Allerdings haben alle Softwareentwickler zumindest auch Grundkenntnisse aus den anderen Bereichen, welche dazu führen, dass die Entscheidungen hinterfragt werden. Dies führt wiederrum zur Diskussion und verzögert eine Lösungsfindung. Aus diesem Grund wird der Einsatz eines Softwarearchitekten meist unumgänglich, sobald ein Projekt mehrere Technologien umfasst.
Häufig werden in größeren Firmen sogenannte Lösungsarchitekten eingesetzt. Diese planen ein Projekt, geben den Plan dann an die Entwickler weiter und planen ein neues Projekt. Sie sind nicht in die Entstehung der Lösung involviert und oftmals wird die vorgesehene Architektur dann von den Entwicklern angepasst. Hierdurch wird nicht nur die Verantwortung weitergeschoben sondern der Lerneffekt für den Lösungsarchitekten bleibt ebenfalls aus. Der Lösungsarchitekt könnte in jedem seiner Projekte den gleichen Fehler machen ohne dies mitzubekommen und jedes Entwicklungsteam entwickelt für das Problem eine eigene Lösung.
Die Aufgaben eines Softwarearchitekten beschränken sich nicht nur auf die Planung des Projekts, sondern auch auf die Überwachung der Durchführung sowie die Instandhaltung des Teams. Ein Softwarearchitekt sollte während der ganzen Entwicklungszeit eng mit dem Team zusammenarbeiten um nötige Änderungen an der Softwarearchitektur vornehmen zu können.
Ein Team von Softwareentwicklern, welches die Softwarearchitektur selbst durchführt hat dieses Problem zwar nicht, allerdings ist in diesem Fall auch keine Führungsrolle, welche die Verantwortung trägt, abgestimmt.