Aufgabe und Rolle des Softwarearchitekten
Der Softwarearchitekt ist ein zentraler Akteur im Produktteam und arbeitet eng mit allen Beteiligten zusammen. In größeren Organisationen ist er dem IT-/Enterprise-Architekten zugeordnet. Seine Rolle entspricht der des Solution/System Architect im SAFe-Framework.
Zusammenarbeit und Verantwortlichkeiten
- Enge Zusammenarbeit mit Requirements Engineering: Fokus auf die nicht-funktionalen Anforderungen (NFA) und Qualitätsanforderungen.
- Kooperation mit allen Scrum-Teams: Verantwortung für die grobgranularen Strukturen des Systems.
- Entwicklung von Querschnittskonzepten: Zuständig für Persistenz, Kommunikation, GUI und weitere zentrale Komponenten.
- Erkennen und Aufzeigen von Konsequenzen: Analyse der Auswirkungen von Architekturentscheidungen auf das Gesamtsystem.
Verfeinerung von NFA und Rahmenbedingungen
Der Softwarearchitekt verfeinert die NFA und berücksichtigt dabei alle Rahmenbedingungen. Durch die genaue Analyse von Performance, Sicherheit und Skalierbarkeit definiert er klare, messbare Ziele als Leitfaden für die Architektur.
Architekturentscheidungen und Querschnittskonzepte
- Festlegung grundlegender Architekturstile, Muster und Technologien.
- Entscheidung, Kommunikation und Durchsetzung von Querschnittskonzepten wie Logging, Fehlerbehandlung und Sicherheitsmechanismen.
- Dokumentation der Architekturentscheidungen für Transparenz und Nachvollziehbarkeit.
Erarbeitung von Technical User Stories
Der Softwarearchitekt erstellt und bearbeitet die technischen User Stories im Product Backlog. Dadurch stellt er sicher, dass technische Anforderungen und Architekturaspekte im Entwicklungsprozess angemessen berücksichtigt werden.
Modellierung, Dokumentation und Kommunikation der Softwarearchitektur
- Modellierung mittels Schichten-, Komponenten- und Sequenzdiagrammen.
- Dokumentation zur Sicherstellung eines gemeinsamen Verständnisses unter allen Stakeholdern.
- Klare Kommunikation der Architekturprinzipien sowohl schriftlich als auch mündlich innerhalb des Teams.
Begleitung der Implementierung und Überprüfung der Ergebnisse
- Unterstützung des Entwicklungsteams bei der Umsetzung der Architektur.
- Durchführung von Code-Reviews und Architektur-Reviews.
- Kontinuierliche Überprüfung zur Gewährleistung der Erfüllung der Qualitätsanforderungen.
Erkennen und Argumentieren der Konsequenzen von Architekturentscheidungen
- Analyse der langfristigen Auswirkungen von Entscheidungen.
- Transparente Kommunikation gegenüber Stakeholdern.
- Fundierte Argumentation von Vorteilen und Risiken, um Akzeptanz zu fördern.
Anforderungen an den Softwarearchitekten
- Senior-Erfahrung in der Softwareentwicklung
- Sehr gute analytische Fähigkeiten
- Ausgeprägte kommunikative Kompetenz
- Fähigkeit, konsensfähige und tragfähige Lösungen im Team zu erarbeiten
Tags
SoftwarearchitektSoftwarearchitekturNichtFunktionaleAnforderungenArchitekturentscheidungenQuerschnittskonzepteModellierungImplementierungsbegleitungStakeholderKommunikationSAFeTechnicalUserStories