Software-Entwicklung: Skills von bleibendem Wert
Zürich, 20.11.2015 – Erich Oswald
Fachartikel für Computerworld vom 20. November 2015
Spezialwissen veraltet in der IT schnell, aber einige Skills sind zeitlos. Genau diese braucht ein Entwickler, um auch in zehn Jahren noch erfolgreich zu sein.
Regelmässig werden Informatiker mit neuen Hypes, Trends und Thesen zur kommenden Entwicklung konfrontiert. Zum Beispiel Cloud Computing: Statt teure Hardware zu beschaffen und zu unterhalten, bucht man zusätzliche Rechnerkapazität dynamisch und nur gerade dann, wenn sie auch wirklich nötig ist. Programme für Standarddienstleistungen müssen nicht mehr installiert werden, sondern stehen als Service zur Verfügung. Damit geht eine Beschleunigung der Prozesse und Release-Zyklen einher. Dies verlangt eine schnelle, flexible Planung, wie wir sie aus der agilen Software-Entwicklung kennen. Ob das Schlagwort Cloud in zehn Jahren noch aktuell sein wird? Auch ich als Chief Technology Officer traue mir nicht zu, solche langfristigen Prognosen zu machen. Vermutlich wird aber die Rate, mit der neue Trends entstehen, in Zukunft eher noch steigen. Software-Ingenieure werden auch in Zukunft in einem schnell drehendenTechnologiekarussell sitzen. Welche Kompetenzen brauchen sie, um in diesem Umfeld weiterhin erfolgreich Software zu bauen?
Langlebige Konzepte
In der Ausbildung zum Informatikingenieur stehen nicht die kurzfristigen Trends im Vordergrund, sondern die Fähigkeit, die grossen Konzepte und Prinzipien dahinter zu erkennen und aktuelle Strömungen diesen zuzuordnen. Das Konzept, das zum Beispiel dem Trend «Mobile» zugrunde liegt, ist «Ubiquitous Computing», das heisst, Gerät und Ort spielen für die Verwendung des Computers keine Rolle mehr. Der Erste, der dieses Szenario entwarf und somit die Zukunft bis zu einem gewissen Grad vorhersagte, war Mark Weiser von Xerox PARC im Jahr 1990. Dass er mit seiner These so genau ins Schwarze traf, konnte man damals nicht vorhersehen.
Anderes Beispiel: Die Idee für objektorientiertes Programmieren stammt aus den 1960er-Jahren, ist aber erst Ende der 80er wirklich «entdeckt» und zum Massenphänomen geworden. So ist es mit den meisten Hype-Themen: Es liegt ihnen ein Konzept zugrunde, mit dem sich die Informatikpioniere schon im letzten Jahrhundert ausgiebig beschäftigt haben und das heute noch relevant ist. Schnellere, günstigere, bessere Hardware spielte meistens eine entscheidende Rolle, wenn Konzepte, die einst utopisch waren, wirtschaftlich interessant wurden.
Die erste Erkenntnis ist also: Der Ingenieur der Zukunft sollte fähig sein, die Prinzipien hinter den kurzfristigen Hypes zu finden. So gelingt es ihm besser, die Spreu vom Weizen zu trennen und auf jene Trends zu setzen, die eine solide Grundlage haben und auch langfristig erfolgversprechend sind.
Komplexität reduzieren
Ein Problem der immer zahlreicheren verteilten Systeme ist die Komplexität der Lösungen. Sie wird einerseits durch die ständig steigenden Anforderungen der Anwender erhöht, andererseits auch durch die inhärenten Eigenschaften vernetzter Hardware. Netzwerke sind prinzipiell unzuverlässig, Server fallen von einem Augenblick zum anderen aus oder wechseln in einen stummen Modus, in dem sie alle Anfragen schlucken, aber keine Antworten mehr liefern. Ein Grossteil von dem, was wir als Cloud-Technologien bezeichnen, beschäftigt sich genau mit dem Entdecken und der Behandlung solcher Probleme.
Dieser Sachverhalt erfordert eine weitere Fähigkeit des Informatikingenieurs: Er muss ein komplexes Problem in eine Menge einfacherer Problemstellungen zerlegen können. Auch dies ist keine neue, sondern eine klassische Aufgabe der Informatik. Das Prinzip «teile und herrsche» lässt sich auf verschiedene Ebenen der Software-Architektur anwenden: auf die Sprachelemente im Code, auf die Objektstruktur einer einzelnen Komponente oder auf das Zusammenspiel der Komponenten in einem vernetzten System. Diese interagieren über wohldefinierte Schnittstellen miteinander – zum Beispiel in Form sogenannter Microservices, um ein weiteres Trendthema zu bemühen. Der Ingenieur muss dabei nicht nur die richtigen Komponenten designen, sondern auch die Schnittstellen dazwischen so gestalten, dass der Prozess reibungslos läuft und nicht fehleranfällig oder langsam wird (z. B. durch zu enge Kopplung).
Von der Anforderung zur Technik
Neben diesen konzeptionellen und analytischen Fähigkeiten muss sich der Ingenieur schnell in eine Problemstellung einarbeiten und deren wesentliche Elemente identifizieren können. Das hilft ihm, die wichtige Brücke zwischen Anforderungen und Technologie zu schlagen. Die effizienteste Software-Lösung ist wertlos, wenn sie an den Bedürfnissen ihrer Anwender vorbei programmiert wurde. Ein Inge nieur, der sich in die Geschäftsprozesse seiner Kunden mit ihren spezifischen Herausforderungen und Fragestellungen hineindenken kann, baut hingegen Lösungen, die seinem Kunden langfristig Wettbewerbsfähigkeit und Innovation ermöglichen.
Der ideale Informatiker
Im Personalbereich existiert der Begriff «T-shaped» für Mitarbeitende mit einem breiten Allgemeinwissen in ihrem Fachbereich (der horizontale Strich des Ts) und zusätzlich einem ausgeprägten Spezialwissen (das vertikale Standbein) in einem spezifischen Gebiet. Mobile wäre beispielsweise ein Standbein des T-Profils, analytisches Denken, konzeptionelle Skills und grundlegendes Geschäftsprozesswissen wären im horizontalen Teil angesiedelt. Das T-Profil gilt vielerorts als ideale Skill-Kombination. Informatiker, die es ausweisen können, sind sehr gesucht.
Okotpus statt T-Profil
Meiner Meinung nach greift ein T-Profil aber zu kurz. Einem jungen Informatiker muss bewusst sein, dass sein spezialisiertes Wissen vor Ende seiner Karriere irrelevant sein wird. Obsolete Technologien und die zugehörigen Standbeine verschwinden, neue kommen hinzu. Mit mehreren Gliedmassen, von denen einige wachsen, andere schrumpfen, gleicht das Bild eher einem Oktopus als einem «T».
Wenn sich ein Oktopusarm zurückbildet oder verkümmert, ist dies verschmerzbar. Vergessen gehen nur die nicht mehr relevanten technischen Details. Hingegen bleiben die grundlegenden Konzepte als gesammelte Weisheit im technischen Allgemeinwissen erhalten. Dieses breitere Allgemeinwissen hilft wiederum, neue Trends schneller einschätzen und sich aneignen zu können. Und darauf kommt es an: Wie schnell sich ein Informatiker einen neuen Fähigkeitsbereich aufbauen kann.
Fazit: Mix führt zum Erfolg
Welche Informatikingenieure werden also in zehn Jahren gefragt sein? Die Tendenz ist heute, dass Firmen lieber die jüngsten Leute mit der modernsten Ausbildung einstellen. Meiner Meinung nach sind aber ältere Semester genauso wichtig. Dank langjähriger Berufserfahrung sind sie im Analysieren von Problemstellungen geübt, denn sie haben diese in ähnlicher Form schon oft gesehen. Es empfiehlt sich, frisch ausgebildete Leute mit älteren, erfahrenen Informatikern in Teams zusammenzubringen. Dadurch werden die neusten Erkenntnisse aus der Forschung mit der praktischen Erfahrung der Veteranen kombiniert. Voraussetzung ist, dass sich beide Generationen mit dem angemessenen Respekt begegnen und erkennen, dass sie gegenseitig voneinander profitieren.
In zehn Jahren werden wir einen recht ähnlichen Mix an Informatikingenieuren brauchen wie heute. Wir müssen aber dafür sorgen, dass sie heute und morgen in genügender Zahl und Qualität ausgebildet werden und, dass sie sich kontinuierlich weiterentwickeln können.
Erich Oswald ist Chief Technology Officer beim Zürcher Software-Hersteller Ergon Informatik AG