Systemarchitekten – warum wir sie brauchen und was sie können sollten?

Immer mehr Unternehmen in der Medizintechnik erkennen den Wert von Systemarchitekten. Und dieser Trend wird sich in Zukunft noch weiter verstärken. Ich selbst arbeite als freiberuflicher Systemarchitekt und möchte heute darüber schreiben, warum aus meiner Sicht Systemarchitekten benötigt werden und welche Anforderungen an Systemarchitekten gestellt werden.

Warum benötigen wir Systemarchitekten?

Die Komplexität der Produkte und Systeme nimmt immer weiter zu. Während früher einige wenige Entwickler aus den Bereichen Hardware, Software und Konstruktion reichten, um ein Produkt zu entwickeln, so sind es heute schnell Teams mit über 20 Entwicklern oder weit darüber hinaus. Die komplexen und verteilten Systeme führen dazu, dass es eine zunehmende Spezialisierung gibt. Diese Spezialisierung ist heute auf jeden Fall sehr wichtig und für hochwertige Produkte unabdingbar. Doch eben das sind auch die Gründe dafür, dass bei den Entwicklern „das große Bild“ verloren geht. Während in kleinen Projekten noch jeder weiß, was gebaut wird und wie das Gesamtsystem funktionieren soll, ist das bei großen Projekten nicht mehr der Fall. Hier benötigt man eine Person, die das Gesamtsystem versteht und das große Bild im Auge behält. Der Systemarchitekt hat die Aufgabe die Komplexität zu beherrschen. Er übernimmt die technische Verantwortung und kümmert sich um das Gesamtsystem. Er hat das große Bild vor Augen, auch wenn es an der einen oder anderen Stelle etwas unscharf ist. Diese Schärfe bringen die Spezialisten in den Fachbereichen mit.

Ein weiterer Grund warum wir Systemarchitekten benötigen ist, dass es immer häufiger zu verteilten Entwicklungen kommt. Heute finden Entwicklungen häufig nicht mehr an einem Standort statt, sondern sind über verschiedene Standorte verteilt. Dabei sitzen die Entwickler häufig auch im Ausland und sprechen nicht dieselbe Sprache. Gründe hierfür sind die Spezialisierung und der Ingenieurmangel in Deutschland. Insbesondere bei verteilten Entwicklungen ist ein Systemarchitekt sehr wichtig.

Firmen, die Technologieführerschaft für sich beanspruchen benötigen Systemarchitekten. Ein Systemarchitekt hat den Kundennutzen des Produktes mehr im Fokus als andere Rollen in einem Projekt. Daher ist es für Unternehmen, die technologisch führend sind absolut unerlässlich Systemarchitekten einzusetzen.

Systemarchitekten sind Vermittler zwischen den Welten und ich bezeichne Sie auch gerne als „Schmiermittel in der Entwicklung“. Sie sind die technischen Kümmerer in einem Projekt und vermitteln zwischen den Fachexperten. Daher ist es sinnvoll die ganzheitliche Betrachtung der Systemarchitekten als Spezialfähigkeit in einem Unternehmen zu etablieren und die Vorteile zu nutzen.

Was muss ein Systemarchitekt können?

Gute Systemarchitekten sind nicht leicht zu finden und gehören eher einer seltenen Spezies an. Das liegt zum einen daran, dass die Rolle noch nicht so etabliert ist wie z.B. die eines Software- oder Hardware-Entwicklers. Zum anderen liegt es aber auch daran, dass Systemarchitekten Stärken in verschiedenen Bereichen benötigen. Sie müssen ein Wissen haben, welches in die Breite geht. Damit ergibt sich zwangsläufig, dass sie nicht in allen Bereichen ein so tiefes Verständnis haben wie die jeweiligen Fachexperten. Sie müssen aber in der Lage sein, die gleiche Sprache zu sprechen, den Fachexperten zu verstehen und ihre Punkte und Wünsche klar zu machen. Im Folgenden möchte ich auf die Punkte eingehen, die aus meiner Sicht für Systemarchitekten wichtig sind.

Technik

Systemarchitekten müssen ein sehr ausgeprägtes Verständnis und gute Kenntnisse in der Technik mitbringen. Auch wenn Sie durch ihr Studium oder ihren beruflichen Werdegang eher die Stärke in einem Fachgebiet (z.B. Hardware, Software, Konstruktion) haben, so müssen Sie auch die anderen Bereiche verstehen. Das ist sehr wichtig, da ein Systemarchitekt von den Fachexperten ernst genommen werden muss. Wozu soll man sonst mit jemandem reden, der einen sowieso nicht versteht? Systemarchitekten dürfen keine Berührungsängste vor Fachbereichen haben, in denen Sie noch nicht so stark sind. Das Wissen kommt mit der Zeit. Wichtig ist, dass ein Systemarchitekt aber auch seine Grenzen kennt und ein Gespür dafür entwickelt, wann er ein Thema an den Experten abgibt. Der Systemarchitekt hat die fachliche Verantwortung für alle technische Fragen und deren Dokumentation, die er je nach Umfang selbst erstellt oder verantwortet. Er ist für die Überwachung der technischen Ergebnisse durch Review oder Freigaben verantwortlich.

Methodenwissen

Was für einen Handwerker der Werkzeugkoffer, ist für den Systemarchitekten sein Methodenwissen. Wenn ein Handwerker nur einen Hammer hat, kann er viele Probleme nicht sinnvoll lösen. Das gleiche gilt auch für den Systemarchitekten. Für den Systemarchitekten ist es sehr wichtig Entwicklungsprozesse zu kennen. Ein Entwicklungsprozess ist dabei wie ein Auto. Wenn man es richtig benutzt, kann man sich schnell damit fortbewegen. Wenn man es falsch benutzt, muss man es schieben und wäre lieber ohne Auto unterwegs. Für einen Systemarchitekten ist es wichtig Entwicklungsprozesse zu kennen und zu verstehen. Auch das Hintergrundwissen aus Normen und Gesetzen ist hierfür hilfreich. Wichtig ist, dass man die Prozesse nicht nur auf dem Papier verstanden hat, sondern aus der Praxis kennt. Nur dann weiß man, ob man sie wirklich verstanden hat.

Ein weiterer Schwerpunkt des Systemarchitekten ist es die Kundenanforderungen aufzunehmen und zu bewerten. Das kann dadurch erfolgen, dass ein Lastenheft und die zugehörigen Referenzdokumente (z.B. Normen) gelesen und bewertet werden. Hierbei gibt es viel zu lesen und Speed-Reading ist auf jeden Fall von Vorteil :-) Es kann aber auch sein, dass die Anforderungen zusammen mit dem Kunden in einem Workshop ermittelt werden müssen. Dabei ist es nützlich wenn man Methoden kennt, um Kundenanforderungen zu ermitteln.

Der Systemarchitekt ist verantwortlich die Systemanforderungen zu formulieren. Dazu muss der Systemarchitekt wissen wie Requirements Engineering funktioniert und worauf hierbei zu achten ist. Er muss in der Lage sein Anforderungen aus Problemsicht so konzeptionell wie möglich zu beschreiben, ohne den Lösungsraum zu sehr einzuschränken.

Ihr Ansprechpartner:

Dipl.-Ing. Goran Madzar, Gesellschafter, Senior Systems Engineer 
E-Mail: madzar@medtech-ingenieur.de
Tel.:  +49 9131 691 240
 

Benötigen Sie Unterstützung bei der Entwicklung Ihres Medizingeräts? Wir helfen gerne! Die MEDtech Ingenieur GmbH bietet Hardware-Entwicklung, Software-Entwicklung, Systems Engineering, Mechanik-Entwicklung und Beratung aus einer Hand. Nehmen Sie Kontakt mit uns auf.

Kontakt aufnehmen


Auch Know-how im rechtlichen Umfeld ist wichtig. Schließlich geht es bei den Anforderungsdokumenten um Vertragsbestandteile, die große wirtschaftliche Folgen nach sich ziehen können. Es ist nicht notwendig, dass der Systemarchitekt eine juristische Ausbildung hat, doch die grundlegenden Sachverhalte bei Werk- und Dienstverträgen, bei Festpreis-Angeboten oder Produktmängeln und Haftung sollten bekannt sein. Daher bietet es sich im Unternehmen an, auch die Systemarchitekten darin zu schulen.

Eine der wichtigsten Aufgaben des Systemarchitekten ist die Erstellung der Systemarchitektur. Ein Systemarchitekt muss wissen, wie man eine Architektur-Spezifikation erstellt und die Anforderungen auf die Komponenten verteilt. Dazu ist die Kenntnis von SysML sehr nützlich. Ebenfalls ist es hilfreich, wenn der Systemarchitekt Templates und Pattern hat, um die Spezifikation zu erstellen. Der Systemarchitekt kümmert sich auch um die Traceability und wirkt am Testprozess mit. Hierzu ist das Verständnis über Testing sehr wichtig.

Es ist von Vorteil, wenn sich der Systemarchitekt mit Agilen Methoden wie Scrum oder Kanban auskennt. Diese Methoden können sehr erfolgreich in der Entwicklung eingesetzt werden und haben sich bewährt. Aus meiner Sicht muss man allerdings pragmatisch sein und sehen, was für das Projekt nützlich ist und was nicht. Die Methoden sind an die Gegebenheiten im Projekt anzupassen. Dazu muss das Verständnis der Methoden da sein.

Tools und Methoden erleichtern oftmals die Arbeit. Im Laufe der Zeit findet man Tools, die die Arbeit erleichtern oder beschleunigen. Ein guter Systemarchitekt kennt Tools und Methoden, die in der Entwicklung hilfreich sind (SVN, XMind, www.trello.com, Enterprise Architect,…). Auf einige der Tools werde ich mit Sicherheit in den nächsten Blogs näher eingehen.

Softskills

Softskills sind nicht weniger entscheidend für einen guten Systemarchitekten als Kenntnisse der Technik oder der Methoden. Aus meiner Sicht sind sie sogar deutlich entscheidender und oftmals die größte Hürde für gute Systemarchitekten. Der Systemarchitekt ist eine Führungsrolle. Leadership und Kommunikation sind sehr wichtige Fähigkeiten, die ein Systemarchitekt mitbringen muss. Er ist für die technische Führung von Personen und Teams zuständig. Er muss Fachspezialisten verstehen und seinen Standpunkt verständlich klar machen können. Dabei muss er Menschen mitnehmen und Ziele vorgeben können. Er muss in der Lage sein zuzuhören und die Bedürfnisse des Gegenübers zu erkennen. Die Kommunikation muss aktiv sein, so dass er auch sicherstellt, dass das Gesagte beim Gegenüber auch richtig angekommen ist. Dazu bietet es sich an, den anderen zu fragen, ob dieser mit eigenen Worten wiedergeben kann, was er verstanden hat oder im umgekehrten Fall wiederzugeben, was man selbst verstanden hat und ob das so stimmt. Zur Führung von Personen ist es auch erforderlich regelmäßig bei den Leuten vorbeizugehen und kurze Gespräche zu führen („management by walking around“). Mir ist es sehr oft passiert, dass ich dadurch Probleme von Leuten schnell lösen kann oder die richtigen Personen miteinander vernetzen kann. Man sieht auch sehr schnell wo Risiken lauern, oder mit was sich Leute gerade schwer tun. Außerdem verbessert diese Art von Management das Verhältnis mit den Entwicklern. Ich kann es nicht nachvollziehen wenn eine Führungskraft nur vor dem PC sitzt. Da bekommt man nichts mit und kann auch nicht mitwirken. Ich selbst habe sehr gute Erfahrungen damit gemacht von Zeit zu Zeit bei meinen Kollegen vorbeizugehen und mich mit ihnen auszutauschen. Damit bin ich immer gut informiert und kann den Leuten auch schnell helfen, wenn sie nicht weiterkommen. Meistens bin ich im meinen „kleinen Pausen“ richtig produktiv und bringe das Projekt voran! Zudem ist ein kleiner Spaziergang auch gut für den Rücken und man kann sich danach wieder sehr gut konzentrieren.

Bei der Führung von Teams geht es oft auch um die Teamzusammensetzung. Hier sollte der Systemarchitekt das Gespür haben, wie eine gute Teamzusammensetzung aussieht und wo es eventuell Schwächen in der Teamzusammenstellung gibt. Das Team erledigt die Arbeit und daher ist es sehr wichtig darauf zu achten, dass das Team optimal arbeiten kann. Aus meiner Sicht wird das noch viel zu selten berücksichtigt. Was beim Fußball jedem einleuchtet, scheint bei der Entwicklung irgendwie nicht so klar zu sein.

Der Systemarchitekt ist auch gefragt, wenn es um die Kommunikation mit dem Kunden, dem Management oder von Lieferanten geht. Hier können sich der Systemarchitekt und der Projektleiter aus meiner Erfahrung oft vertreten. Der Systemarchitekt muss in der Lage sein, das System alleine zu vertreten, zu präsentieren und zu erläutern. Dabei ist es wichtig, wenn der Systemarchitekt präsentieren oder Lösungsideen einfach erklären und skizzieren kann.

Oft muss der Systemarchitekt in der Lage sein, komplexe Sachverhalte schnell zu erfassen und darauf zu reagieren. Dabei muss er Wichtiges von Unwichtigem unterscheiden können. Er muss priorisieren. Er muss Sachverhalte strukturieren und vereinfachen und neue Perspektiven einbringen. Dadurch können Probleme erkannt und eingegrenzt werden oder lösen sich sogar auf. Der Systemarchitekt muss auch in der Lage sein, auf Basis seiner Erfahrung und der ihm vorliegenden Sachverhalte Entscheidungen treffen zu können. Dabei muss er übergeordnete Zusammenhänge und die Auswirkungen auf das Gesamtprojekt berücksichtigten. Diese Tätigkeiten verlangen oft viel Kreativität und Improvisation.

Die Königsdisziplin ist aber das Troubleshooting. Solange ein Projekt gut läuft ist es nicht schwer Führungsverantwortung zu übernehmen. Es kann aber auch passieren, dass ein Projekt entgleitet oder man als Systemarchitekt in ein Projekt kommt, das bereits in Schieflage geraten ist. Dann trennt sich die Spreu vom Weizen. Denn diese Situationen sind oft nicht einfach und es fällt schwer ruhig zu bleiben und einen kühlen Kopf zu bewahren. Ich versuche beim Troubleshooting ruhig zu bleiben. Ich vergleiche diese Situation mit einer Notaufnahme in der ein schwer verletzter Patient angeliefert wird. Da bringt es gar nichts wenn der Notarzt anfängt hysterisch zu werden. Er muss versuchen sein Bestes zu geben und mit seinen Methoden den Patienten wieder auf die Spur zu bringen. So handhabe ich das auch bei Projekten. Aus meiner Sicht ist das die beste Methode um eine Teufelsspirale wieder verlassen zu können und das Projekt wieder auf Spur zu bringen. Dazu muss der Systemarchitekt aber Vertrauen in sich selbst und ein großes Selbstbewusstsein haben. Sonst wird er vom nächsten Manager eingesackt.

Organisation und Planung

Dieser Punkt mag für den ein oder anderen vielleicht etwas merkwürdig sein. Schließlich gibt es doch einen Projektleiter, der sich um Organisation und Planung kümmert. Doch das ist nur die halbe Wahrheit. Auch der Systemarchitekt hat Anteil daran. Die Aufwandsabschätzung liegt oft, gerade bei technisch komplexen Systemen, beim Systemarchitekten. Dabei ermittelt der Systemarchitekt zusammen mit den Fachexperten die Aufwände und erstellt einen Release Plan (was muss wann und in welchem Reifegrad vorliegen). Diese Daten gehen dann an den Projektleiter, der die detaillierte Planung und das Controlling übernimmt. Bei der Fortschrittsüberwachung arbeiten der Projektleiter und der Systemarchitekt zusammen. Der Systemarchitekt unterstützt die Fachexperten auch bei der Planung ihrer Aufgaben und stimmt sich mit Ihnen ab. Hierbei spielen oft technische Aspekte eine wichtige Rolle bei der Festlegung der nächsten Arbeitspakete und der Planung. Diese Informationen werden dem Projektleiter ebenfalls zur Verfügung gestellt.

 

Die Entwicklung von Systemen macht richtig Spaß und als Mentor für Systemarchitekten möchte ich gerne die Fähigkeiten vermitteln, die bei der täglichen Arbeit notwendig sind. Daher habe ich mich auch entschlossen diesen Blog zu schreiben. Über viele der hier genannten Fähigkeiten werde ich in meinem Blog schreiben. Falls Sie sich für das Thema interessieren, lohnt es sich von Zeit zu Zeit wieder bei meinem Blog vorbeizuschauen. Ich freue mich in circa zwei Wochen auch einen Gastvortrag an einer Hochschule über das spannende Thema halten zu dürfen. Vielleicht kann ich den einen oder anderen Studenten an das überaus interessante Themenfeld, an dem Systemarchitekten arbeiten, heranführen. Wie immer freue ich mich sehr über Weiterempfehlungen meines Blogs und wenn Sie mit mir in Kontakt treten.

Viele Grüße

Goran Madzar

Kontaktieren Sie uns!

Autor

  • Goran Madzar

    MEDtech Ingenieur aus Leidenschaft! Mein Team und ich helfen Medizintechnik-Herstellern mit Engineering-Dienstleistungen dabei, Produkte zu entwickeln und in Verkehr zu bringen! Sprechen sie mich gerne an, ob bei LinkedIn oder per Mail. Ich freue mich Sie kennenzulernen.

Auch interessant:

Howto debug Ceedling Unit-Tests

Hintergrund Ceedling ist ein (zu Recht) weit verbreitetes und in Ruby entwickeltes Build-System für C-Projekte.   Zusammen mit Unity und CMock wird es in der Embedded Software-Entwicklung gerne eingesetzt. Nach einer gewissen Einarbeitungszeit sind Unit-Tests normalerweise recht zügig erstellt. Idealerweise erstellt man die Tests zusammen mit der eigentlichen Implementierung. (Auf Test-Driven-Development…
Getagged mit: , ,