20 Architectural drivers
Im Folgenden werden die einzelnen Bestandteile eines Projekts angesprochen, die den Einsatz eines Softwarearchitekten erfordern.
Zu Beginn eines Projekts müssen die funktionalen Anforderungen bestimmt werden, welche zur Erfüllung des Ziels nötig sind. Oft werden diese bei der agilen Entwicklung außer Acht gelassen, was allerdings schnell dazu führen kann, dass das Projekt immer größer wird, da kein Rahmen abgesteckt wurde.
Desweiteren müssen die nicht-funktionalen Anforderungen wie Performanz, Sicherheit und Verfügbarkeit mit einbezogen werden. Diese meist sehr technischen Qualitätsmerkmale sind schwierig zu messen und zu erreichen und bedürfen eines hohen Zeitaufwands. Um sie zu prüfen muss das gesamte Projekt und nicht nur Teile davon betrachtet werden.
Die Entwicklung eines Projekts wird durch Einschränkungen der zu nutzenden Technologien erschwert. Bei Problemen müssen also entweder andere passendere Technologien gefunden oder eine Lösung für das Problem gefunden werden.
Wichtig ist, dass sich an Prinzipien wie Code-Konventionen gehalten wird. Die Überwachung und die Festlegung dieser Prinzipien obliegt dem Softwarearchitekten.
Bei einem neuen Projekt sollte versucht werden, die bisher genannten Punkte aus vorigen Projekten zu übernehmen. Die bereits gemachten Erfahrungen sind hierbei immer von Vorteil. Es kann beispielsweise von vornherein festgestellt werden ob eine Technologie alle Anforderungen erfüllen kann.