Berufsbild Software Architekt*in

Software-Architek-Tour de Code.

Ob spezialisierte DBs, komplexe Produktionssysteme, mobile Apps oder die klassische Desktop-Anwendung: Ohne funktionelle Software läuft in Unternehmen heute gar nichts mehr. Gut für Sie als Software-Architekt*in! Sie entwerfen perfekt auf den Kunden zugeschnittene Programme sowie ganze Anwendungslandschaften. Planung und Organisation stehen hier im Vordergrund, doch um Anforderungen und Funktionsweisen bestmöglich abschätzen zu können, sollte man mehr als Programmierer-Basiswissen mitbringen.

Welche Aufgaben hat ein*e Software-Architekt*in typischerweise?

  • Planung und Konzeption neuer Software
  • Anforderungsanalyse (funktional, nicht-funktional), Aufwandseinschätzung
  • Überwachung der Implementierung der modellierten Architektur
  • Anwendung von Paradigmen wie Clean Code und anderen
  • Modul-, Integrations-, System- und Akzeptanztests
  • statische Code-Analyse, technische Dokumentation

Zur Erfüllung der Software-Wünsche der Stakeholder kann man nicht einfach drauf los coden. Aus diesem Grund beginnt man als Software-Architekt*in zunächst immer mit dem Gespräch. Bedürfnisse, Anforderungen und Machbarkeiten werden ermittelt und in einem Plan zusammengefasst. Oft umfasst dieser auch bereits verschiedene Testumgebungen, bevor die erste Zeile Code überhaupt geschrieben ist. Zu den typischen Aufgaben gehört außerdem die sinnvolle Rollenverteilung innerhalb eines interdisziplinären Teams, für das der/die Architekt*in nicht selten die Leitung übernimmt. Die Definition von Meilensteinen sowie die Einteilung des Projekts in kleinere Untereinheiten, die je nach Umfang des Gesamtprojekts autonom agieren, gehört ebenso dazu. Während der Entwicklung sorgen Software-Architekt*innen dann für die Einhaltung des Fahrplans, wie auch für eine saubere Dokumentation und die Qualitätssicherung. Wenn das Feature errichtet ist, wird noch einmal das ganze Spektrum der Funktionalitäten, Anforderungen und Spezifikationen getestet, bevor es zum Rollout kommt.

Schaubild zur Veranschaulichung eines Software-Architektur-Prozesses
Verschlungen sind die Wege von der Idee zur fertigen Architektur. Quelle: Thomas Lassner, Grafik: Shutterstock, Icons: flaticon.com: Geotatah, Becris, Skyclick, Freepick.

Was sollte man als Software-Architekt*in mitbringen?

  • Programmier-Skills sind die absolute Grundlage (Java, C#/.NET,C++, PHP etc.)
  • Kenntnisse im Bereich Datenbanken sind mehr als nice-to-have (SQL, NoSQL etc.)
  • auch mit Frameworks sollte man problemlos umgehen können
  • Container-Orchestrierung und Microservices werden immer wichtiger
  • auch bei Paradigmen ist eine gute Übersicht meist von großem Nutzen
  • sich unter Architekturprinzipien (SOLID) etwas vorstellen zu können, kann mit Sicherheit nicht schaden
  • die Fähigkeit ein Projekt sinnvoll einzuteilen ist gerade bei komplexen Projekten unumgänglich (Anforderungsmanagement, Meilensteine, technische Dokumentation)

Neben der Fähigkeit, sich komplexe Sachverhalte vorstellen und diese auch kommunizieren zu können, sollte ein*e Software-Architekt*in einige weitere Fähigkeiten mitbringen. Klarerweise sind Kenntnisse in gängigen Programmiersprachen und Frameworks mehr als nützlich. Es ist zudem nicht unüblich, dass ein Hochschulabschluss verlangt wird. Oft verlangen Projekte einem zusätzliche Expertise in Sachen Datenbanken sowie Containerisierung ab. Mit Erfahrung in der Entwicklung für eines der großen Betriebssysteme (Windows, Linux, macOS) kann man sicher punkten. Auch ein souveräner Umgang im Bereich Programmierparadigmen ist ein dickes Plus. Cloud-Umgebungen werden seit einigen Jahren immer beliebter, was die hierfür verwendeten Technologien und Tools immer relevanter werden lässt. (Microservices, SaaS)

Techs und Skills

  • gern: IT-Studium *Java, C#/.NET, PHP, C++ etc.
  • Skripting à la Python, Bash
  • Frameworks
  • Datenbanken (SQL, NoSQL)
  • Container-Orchestrierung (Docker, Kubernetes)
  • SOAP, RESTful APIs
  • Windows, Linux, macOS

Tools und Methoden

  • Visualisierung (UML)
  • Programmierparadigmen (PP, OOP, funktional, logisch)
  • Anforderungsmanagement
  • Meilensteine
  • technische Dokumentation
  • Architekturmuster (MVC, PAC)
  • SOA, Microservices
  • Roadmap-Entwicklung

Und was sollte man sonst noch können?

  • Kommunikation ist das A und O für die Durchführung eines erfolgreichen Projektes
  • gepaart mit Kreativität, Abstraktionsvermögen und Organisationstalent ist man auch für komplexe Projekte bestens gewappnet
  • agile Arbeitsweisen werden immer beliebter, selbst über Softwareentwicklung hinaus (Scrum, Kanban etc.)
  • auch ein Interesse für neue Technologien kann sicher nicht schaden
  • Grundkenntnisse in angrenzenden Bereichen, wie Marketing, Webdesign aber auch ein Verständnis für betriebswirtschaftliche Zusammenhänge sind immer hilfreich
Balkendiagramm zeigt, dass unter den fünf Programmiersprachen: Java, Javascript, C#, Python und PHP JavaScript deutlich am beliebtesten ist.
Unter fünf der beliebtesten Programmiersprachen ist JavaScript der eindeutige Vorreiter. Eigene Grafik, Quelle: State of Software Development 2020.

Generell übernimmt man als Software Architekt*in mehr als eine Rolle. Als Bindeglied zwischen allen Stakeholdern wie etwa Auftraggeber und Entwicklungsteam ist ein grundlegendes Verständnis für alle beteiligten Fachgebiete mehr als nur nice to have. Nicht selten ist die Software ein Produkt, das vermarktet werden soll. Hier hilft einem ein Riecher für Dinge wie UX, Grafikdesign, Marketing sowie die geschäftliche Ebene mit Sicherheit weiter. Doch um alle Beteiligten unter einen Hut zu bekommen, bedarf es mehr als der reinen Hard Skills. Kommunikationstalent sowie Einfühlungsvermögen sind hier die Grundvoraussetzungen. Gleichzeitig wäre man hier wohl ohne eine ordentliche Portion Organisationstalent sehr schnell aufgeschmissen. Hinzu kommt, dass seit einigen Jahren viele Unternehmen ihre gesamte Software in cloudige Umgebungen migrieren. Um mit diesem Trend mitzuhalten, verspricht ein grundlegendes Interesse für neue Technologien mit Sicherheit einen Vorteil. Nicht nur softwareseitig, sondern auch in Hinsicht auf Organisationsmodelle spricht die Zukunft der Software-Architektur eine dynamische und modulare Sprache.

Soft Skills

  • schnelle Auffassungsgabe
  • Kreativität
  • Abstraktionsvermögen
  • Kommunikationsstärke
  • Organisationstalent
  • analytisches Denkvermögen

Plus

  • UX, Grafikdesign
  • Marketing-Verständnis
  • Business-Verständnis

Angrenzende Berufe

Wie so oft, gibt es für Software-Architekt*innen keine eindeutige Abgrenzung zu ähnlichen Berufsbildern. Das ist auch überhaupt kein Problem, denn ohnehin hängt die konkrete Tätigkeit sehr vom jeweiligen Projekt ab. Viele Software-Architekt*innen haben als Softwareentwickler*in angefangen und sind insofern noch eng mit diesem Bereich verbunden. Für diejenigen, die sich noch weiter in Richtung Unternehmensstrategie ausrichten, steht das Feld des/der Enterprise-Architekt*in offen, während gleichzeitig das eng verwandte Berufsbild des/der Applikationsarchitekt*in den Schwerpunkt - wer hätte das geahnt - auf die Entwicklung von Anwendungssoftware legt.

Hätten Sie es gewusst?

  • der Begriff “Softwarearchitektur” in der heutigen Bedeutung wurde erstmals 1969 von Ian Sharp auf eine Software-Engineering-Konferenz in Rom ins Spiel gebracht. Seit dem hilft er uns, Theorie und Praxis in der Softwareentwicklung zusammenzubringen.
  • Im Fachartikel auf Heise Online steht es wie gedichtet: “Eine große Herausforderung ist die Zähmung inhärenter Komplexität bei gleichzeitiger Vermeidung unnötiger Komplexität. Letztere kann aus der Verwendung falscher Lösungen oder aus der falschen Anwendung der richtigen Lösungen resultieren.” klar soweit?
  • Java und JavaScript sind die mit Abstand am häufigsten verwendeten Programmiersprachen. Perl hingegen fristet ein Dasein im Schatten anderer Sprachen. Nicht ein Unternehmen gab dem Software Development Report gegenüber an, diese Programmiersprache in Zukunft bei der Realisierung von Projekten verwenden zu wollen.

Was verdient man als Software-Architekt*in?

Wie oft in der IT, ist die Gehaltsspanne im Bereich Software-Architektur recht groß. So liegt das durchschnittliche Einstiegsgehalt eines Juniors bei 60.000 € Jahresgehalt. Besonders ausschlaggebend ist hier die Wahl der Branche. Erst danach machen sich Faktoren, wie Größe des Unternehmens oder die geografische Lage bemerkbar. Wie man am Tesla-Werk in Brandenburg vermuten kann, versprechen gerade große innovative Arbeitgeber zahlreiche Fachleute auch in Gegenden abseits der Metropolen zu locken. Professionals verdienen im Schnitt 75.000 € im Jahr und können sich bis etwa 90.000 € als erfahrene Seniors entwickeln. Allerdings ist hier auch das Ende offen und hin und wieder findet man Positionen, die bei über 100.000 € pro Jahr liegen. Letztendlich ist es aber eine persönliche Entscheidung, ob für einen selbst Geld der wichtigste Grund für eine Stelle ist. Viele andere Faktoren, wie Teamzusammenhalt, spannende Projekte oder soziales Umfeld sind für Viele nicht unwesentlich.

Verdienst

  • um 60.000 € (Juniors)
  • um 75.000 € (Pros)
  • bis 90.000 € (absolute Seniors)
  • Ende offen bei top Kenntnissen

Ihre Ansprechpartner für Software-Architektur-Positionen: