Stefan Sigg, Vodstand R&D bei der Software-AG, erzählt im Interview, was Software-Entwickler heutzutage können müssen und warum es so schwierig ist, Nachwuchskräfte zu finden.
CRN: Welche Skills muss ein Software-Entwickler heute mitbringen?
Stefan Sigg: Ein Software-Entwickler muss vor allem gut programmieren können, das ist nach wie vor das Wichtigste, und er sollte Spaß am Programmieren haben – das ist die Grundlage für hochwertigen Output. Er sollte auch gut in den Grundlagen der Informatik ausgebildet sein: Datenstrukturen, Algorithmen, Sprachen, etc. Im Unterschied zu früher sind Software-Projekte heutzutage häufig verteilt auf verschiedene Standorte auf der ganzen Welt. Deswegen kommen auch auf Entwickler hohe Anforderungen bezüglich Kommunikationsfähigkeit und sozialen Kompetenzen zu. Rein fachlich gesehen spiegeln sich die aktuellen Trend-Themen auch im Anforderungsprofil von Software-Ingenieuren wieder: Cloud-Architekturen, künstliche Intelligenz, moderne User Interface-Programmierung, Javascipt Libraries, Big Data, bis hin zu IoT-Technologien auf Hardware-Ebene.
CRN: Sollten im Bildungsbereich die Weichen anders gestellt werden?
Sigg: Aus meiner Sicht haben wir im Bildungsbereich ein echtes Problem: Das Ansehen von praktischen Programmiertechniken ist nicht dort, wo es sein sollte. Oftmals höre ich: Wieso muss ich programmieren können, ich mache die Architektur und Spezifikation, und andere schreiben den Code. Das ist meiner Meinung nach eine fatale Haltung. Vielmehr gilt: Die beste Software wird von den besten Entwicklern gebaut, und zwar von der Konzeption bis zur Implementierung. Die Fähigkeit, gute Software zu erstellen, ist eine Kunst, eine hochkreative Aufgabe, quasi aus nichts etwas zu schaffen, was beim Kunden einen großen Wert erzeugt. Es sollte wieder mehr im Geiste der alten »Bibel« der Informatik unterrichtet werden: »The Art of Computer Programming« von Doland E. Knuth. Im Zuge der Digitalisierung steigt der Bedarf an Software-Entwicklern massiv an, denn dort, wo man in den IT-Abteilungen früher hauptsächlich Systemadministratoren antraf, sollen heute neue datengetriebene Applikationen entwickelt werden, die zum Teil ein sehr unternehmens- und industriespezifisches Domänenwissen voraussetzen.
Darüber hinaus sehen wir natürlich auch die extrem wachsende Nachfrage nach Data Scientists. Es ist mit Sicherheit eine große Herausforderung für den Bildungsbereich, hier genügend junge Menschen auszubilden. Es gibt schon Master-Programme für das Fach »Data Science«, und ich denke, dass solche Angebote stark wachsen werden. Hierbei sollte gesagt werden, dass dafür eine solide mathematische Grundausbildung wichtiger denn je ist, und zwar nicht nur im Bereich Statistik, sondern auch in den vermeintlich theoretischen Bereichen der modernen Mathematik. So ist zum Beispiel das Thema Kryptographie eine Schlüsseldisziplin im Bereich Datensicherheit, ein Problem von exorbitanter Wichtigkeit.
CRN: Werden im Zusammenhang mit Big Data Python und R zunehmend wichtig?
Sigg: Beide Technologien sind heute schon extrem wichtig, wobei Python in der letzten Zeit massiv an Entwicklerzulauf gewonnen hat. Das liegt zum Teil an der problematischen Open-Source-Lizenz von R und zum andern an der großen Flexibilität und Offenheit von Python. Jeder Data Scientist nutzt heute die Python Bibliotheken, und mit der extremen Ausbreitung von KI und Machine Leaning Methoden in allen möglichen Anwendungsbereichen wird sich diese Nutzung noch deutlich steigern.
CRN: Welche Rolle wird Mozillas Rust künftig spielen?
Sigg: Rust hat sicher in 2017 viel an Popularität hinzugewonnen, weil Kernthemen wie Speicherverwaltung und Portierbarkeit gut gelöst sind. Es wird sich aber noch zeigen müssen, ob sich ähnlich wie bei C/C++ oder Java ein starkes Ökosystem aus Libraries und Werkzeugen entwickelt. Dies ist jedoch eine Grundvoraussetzung für einen langfristigen und breiten Erfolg in der Entwickler-Community.
CRN: Bieten sich Container für das Testing von Software an?
Sigg: Container sind aus dem Repertoire der Software-Entwicklung nicht mehr wegzudenken, das gilt insbesondere für die Qualitätssicherung. Insofern gelten die bekannten Vorteile von Docker und Kubernetes auch für das Testing. Selbstverständlich wird man für Produkteigenschaften, die im Container-Betrieb schlecht oder gar nicht testbar sind, auf konventionelle Infrastruktur zurückgreifen.
CRN: Ist Osteuropa das neue Indien, was die Auslagerung der Software-Entwicklung angeht?
Sigg: Ich glaube nicht, dass es heutzutage noch um den Begriff »Auslagerung« geht, oder darum, welcher Standort »günstiger« ist. Aus meiner Sicht geht es im Software Business um Talente und eine richtig geschnittene »Ownership«. Die Verfügbarkeit und Ausbildung von jungen Talenten ist ein Kernthema für jeden Software-Manager, und die Standortsuche wird ganz wesentlich unter diesem Aspekt stehen. Ob Osteuropa oder Indien, China oder Korea, Nordamerika oder Zentraleuropa, das wird am Ende über die Frage entschieden, in welcher Kombination und mit welchen Verantwortungen ein starkes Team gebildet werden kann, das mit exzellentem Know-how und Leidenschaft zu Werke geht.