Die 5 wichtigsten Fähigkeiten von Software-Ingenieuren

Veröffentlicht am

Blog image

Die Nachfrage nach talentierten Softwareingenieuren ist ungebrochen. Laut einer Analyse von Michael Page, einem spezialisierten Personalvermittlungsunternehmen, sind Softwareingenieure und Web-App-Entwickler die fünf meistgefragten Berufe der Welt, gefolgt von Elektronikern, Maschinenbauern, Krankenschwestern und Ärzten.

Anpassen oder untergehen

Die besten Software-Ingenieure bringen heute eine vielfältige Mischung aus technischen Fähigkeiten und persönlichen Qualitäten mit, die es ihnen ermöglicht, in agilen Umgebungen zu arbeiten, in denen es häufig zu Änderungen kommt und die Teammitglieder oft nicht an einem Ort arbeiten.

Darüber hinaus ist die Hälfte aller offenen Stellen für Software-Ingenieure in Branchen außerhalb der Technologie zu finden, so ein neuer Bericht von Burning Glass, einem Unternehmen für Arbeitsmarktanalysen. Zu den Branchen, in denen die Nachfrage nach Software-Ingenieuren am größten ist, gehören das Finanzwesen, die Fertigung und das Gesundheitswesen.

Nur diejenigen, denen es gelingt, ihre Fähigkeiten als Software-Ingenieur an die Anforderungen des aktuellen Arbeitsmarktes anzupassen, haben eine erfolgreiche Karriere vor sich. Der Rest wird durch Leiharbeiter aus dem Ausland ersetzt, die in der Regel billiger sind und bereit sind, die Extrameile zu gehen, um ein Projekt zum Erfolg zu führen.

Wenn Sie möchten, dass sich Personalverantwortliche auf Ihr LinkedIn-Profil stürzen wie die Fliegen auf den Honig, müssen Sie die 5 wichtigsten Fähigkeiten eines Softwareingenieurs erwerben.

1. Die Fähigkeit zu lernen

"Der Schlüssel zum Erfolg in diesem Bereich wird weiterhin die Bereitschaft zum Lernen sein"

, sagt Petrone, der mit Branchenexperten aus den Bereichen Wirtschaft, Kreativität und Software-Ingenieurwesen zusammenarbeitet, um Videokurse für LinkedIn Learning, eine amerikanische Website für offene Online-Kurse, zu erstellen.

Jeder Einsteiger in die Softwareentwicklung muss einen riesigen Wissensberg erklimmen, um mit erfahrenen Softwareentwicklern gleichzuziehen und an interessanteren Projekten zu arbeiten. Diese ohnehin schon schwierige Aufgabe wird noch dadurch erschwert, dass sich die Softwaretechnik ständig und in rasantem Tempo weiterentwickelt, ebenso wie alle Werkzeuge und Technologien, die zum Entwerfen, Entwickeln, Warten, Testen und Bewerten von Computersoftware verwendet werden.

Bis sich ein Softwareentwickler auf der Einstiegsebene mit einem Toolset vertraut gemacht hat, sind bereits neue, noch bessere Tools und Technologien verfügbar. Um mit diesem ständigen Wandel zurechtzukommen, müssen Software-Ingenieure sich dem lebenslangen Lernen verschreiben und bestimmte Lernstrategien entwickeln, um dies zu unterstützen.

Das vielleicht Wichtigste, was ein Softwareentwickler tun kann, um der Zeit voraus zu sein, ist, Fragen zu stellen. Das mag einfach klingen, aber Softwareingenieure haben manchmal Angst, lächerlich gemacht oder verachtet zu werden, und sind bereit, außergewöhnliche Anstrengungen zu unternehmen, um zu vermeiden, eine einfache Frage zu stellen, um ein bestimmtes Problem oder Konzept besser zu verstehen.

Dadurch werfen sie sich unweigerlich beruflich zurück und erhöhen die Wahrscheinlichkeit, einen leicht vermeidbaren Fehler zu machen, der dem gesamten Team schadet. Die besten Mentoren bestrafen ihre Studenten nie dafür, dass sie Fragen stellen. Je eher Software-Ingenieure auf der Einstiegsebene dies verstehen, desto eher werden sie ihren schwarzen Gürtel als Software-Ingenieur verdienen.

2. Computerprogrammierung

Die Programmierung von Computern ist und bleibt die grundlegendste aller Fähigkeiten von Software-Ingenieuren. Während die theoretische Grundlage des Schreibens von Befehlen, die von Computern ausgeführt werden, ziemlich statisch ist und nicht von Trends beeinflusst wird, kann das Gleiche nicht über die Programmiersprachen selbst gesagt werden.

Heute wird von Softwareingenieuren erwartet, dass sie eine Reihe verschiedener Programmiertechnologien beherrschen, um an allem arbeiten zu können, von Web- über Desktop- und mobile Anwendungen bis hin zu eingebetteten Geräten.

Laut dem jüngsten Octoverse-Bericht von GitHub, der weltweit größten Entwickler-Community, sind die am schnellsten wachsenden Programmiersprachen derzeit Kotlin, HCL, TypeScript, PowerShell, Rust, CMake, Go, Python, Groovy und SQLPL. Wenn es um die allgemeine Beliebtheit geht, bleibt JavaScript an der Spitze, gefolgt von Java, Python, PHP, C++ und C#.

JavaScript ist nach wie vor die bevorzugte Programmiersprache für die Front-End-Entwicklung, gewinnt aber dank Bibliotheken und Frameworks wie React Native und Native Script in der mobilen Entwicklung, dank Electron.js und NW.js in der Desktop-Entwicklung, dank Node.js in der Back-End-Entwicklung und dank Espruino in der Entwicklung von Mikrocontrollern schnell an Bedeutung.

3. Dokumentation

Techdokumentation - Quelle:  quanos.com

Ein Klempner würde kein ausgeklügeltes Klempnersystem entwerfen, das aus Dutzenden oder gar Hunderten von Rohren, Armaturen und Geräten besteht, ohne jedes einzelne Teil des Systems sorgfältig zu dokumentieren, denn es wäre nahezu unmöglich, ein solches System in der Zukunft zu ändern und gut zu warten.

Wenn man bedenkt, dass die Wartung über 70 % der gesamten Lebenszykluskosten eines Softwareprojekts ausmacht, sollte klar sein, warum die Fähigkeit, eine gute Dokumentation zu schreiben, zu den wichtigsten Fähigkeiten eines Softwareentwicklers gehört.

Hal Abelson, Jerry Sussman und Julie Sussman, die Autoren von Structure and Interpretation of Computer Programs, sind der Meinung, dass Programme so geschrieben werden müssen, dass sie von Menschen gelesen und nur in Ausnahmefällen von Maschinen ausgeführt werden können. Ohne eine formale In-Code-Dokumentation werden die meisten Software-Projekte schließlich unmöglich zu warten, zu erweitern und zu ändern.

Eine gute Dokumentation erklärt genau, was ein Teil des Codes tut, wie er es tut und wie er verwendet werden kann. Software-Ingenieure sollten Kommentare so verfassen, als ob sie sie für zukünftige Teamkollegen schreiben würden - und nicht für sich selbst im Moment. Ein Teil des Codes, der für den Software-Ingenieur, der ihn geschrieben hat, perfekt selbstdokumentierend zu sein scheint, wird ein paar Tage später fast immer rätselhaft erscheinen, besonders für jemanden, der neu ist.

"Oftmals haben die Mitglieder eines Software-Entwicklungsteams einen sehr unterschiedlichen Hintergrund mit einem breiten Spektrum an Wissen und Erfahrung. Deshalb ist es wichtig, die nicht offensichtlichen und manchmal sogar die offensichtlichen Dinge aufzuschreiben. Dies auf eine leicht verständliche Art und Weise zu tun, erfordert Übung, wie jede andere Fähigkeit, die man beherrschen möchte"

, erklärt Jens Eickmeyer, ein Cloud-Architekt und Full-Stack-Entwickler.

4. DevOps

Klassische DevOps - Quelle: dynatrace.com

Heutzutage muss Software viel schneller als früher freigegeben werden, und das traditionelle Wasserfallmodell, das aus mehreren klar definierten Phasen besteht, die linear abgearbeitet werden, scheint veraltet zu sein. DevOps ist an seine Stelle getreten und hat eine enge Zusammenarbeit zwischen Teams eingeführt, die in der Vergangenheit in relativen Silos arbeiteten, nämlich Entwicklung und Betrieb.

Laut der jüngsten Studie ist der Anteil der Unternehmen, die DevOps vollständig übernommen haben, von 10 % im Jahr 2017 auf 17 % im Jahr 2018 gestiegen, während der Anteil der Unternehmen, die noch nie von DevOps gehört haben, von 6 % im Jahr 2017 auf 3 % im Jahr 2018 gesunken ist.

"DevOps-Ingenieure sind sehr gefragt, da Branchen in allen Bereichen, unabhängig von ihrer Größe, damit begonnen haben, DevOps für eine effektive Softwareentwicklung einzusetzen"

, heißt es im Edureka 2019 Tech Career Guide. 

"In der Tat wird der globale DevOps-Markt laut Marketwatch in den nächsten fünf Jahren voraussichtlich 12,85 Milliarden Dollar erreichen. Angesichts der Tatsache, dass weltweit führende Unternehmen DevOps bereits eingeführt haben oder dabei sind, dies zu tun, sind qualifizierte Fachkräfte, die in einem DevOps-Team arbeiten und DevOps-Tools verwalten können, gefragter denn je."

Damit ein Software-Ingenieur zum DevOps-Ingenieur werden kann, sind umfassende Kenntnisse über Software-Erstellungszyklen und die Fähigkeit, betriebliche Herausforderungen zu lösen, erforderlich. DevOps-Ingenieure können sich fachkundig in der Cloud bewegen und die Vorteile von Diensten wie AWS, Azure oder Google Cloud Platform nutzen, und sie sind mit DevOps-bezogenen Tools wie Git, Jenkins, Puppet, Octopus Deploy, Docker, Kubernetes und anderen vertraut.

5. Gut mit anderen zusammenarbeiten

In Filmen und Fernsehsendungen werden Software-Ingenieure gerne als einsame Wölfe dargestellt, die bis spät in die Nacht in schummrigen Büros arbeiten, aber das ist weit von der Wahrheit entfernt. Heutzutage ist die Softwareentwicklung ein gemeinschaftliches Unterfangen, und von Softwareingenieuren wird erwartet, dass sie mit anderen kommunizieren, um sicherzustellen, dass alle auf derselben Seite stehen, wenn es darum geht, wie die Softwareanwendung strukturiert werden soll.

Unternehmen wissen, dass eine schlechte Zusammenarbeit jedes Projekt zum Scheitern bringen kann, und sie wissen, dass Teamwork und Intelligenz Meisterschaften gewinnen, wie Michael Jordan, ehemaliger Profi-Basketballspieler, zu sagen pflegte. Aus diesem Grund sind Soft Skills für sie genauso wichtig wie Programmierkenntnisse.

"Einige [Teamwork-]Fähigkeiten können gelehrt werden, aber andere muss man sich im Laufe der Zeit am Arbeitsplatz aneignen,"

 - David Garlan, Professor für Informatik an der Carnegie Mellon University.

Eine der wichtigsten Soft Skills, die Software-Ingenieure erlernen können, um gut mit anderen zusammenzuarbeiten, ist das aktive Zuhören, das oft als der Akt des aufmerksamen Zuhörens und des Versuchs beschrieben wird, die Bedeutung der von einem anderen in einem Gespräch oder einer Rede gesprochenen Worte zu verstehen. Aktives Zuhören ist eine besonders wichtige Fähigkeit für Software-Ingenieure, die in heterogenen Teams mit unterschiedlichen Hintergründen, Erfahrungen und Kenntnissen arbeiten, in denen es nicht möglich ist, sich auf verschiedene soziale und kulturelle Annahmen zu verlassen, wenn man mit anderen kommuniziert.

Schlussfolgerung

Da agiles Arbeiten in vielen Unternehmen zur neuen Normalität geworden ist, wird von Software-Ingenieuren erwartet, dass sie nicht nur programmieren können, sondern auch über bestimmte Soft Skills verfügen, wie z. B. Anpassungsfähigkeit, Kommunikationsfähigkeit und Teamwork-Fähigkeiten. Diese neuen Anforderungen spiegeln die Tatsache wider, dass die Softwareentwicklung weitaus kooperativer geworden ist, als dies in der Vergangenheit der Fall war. Natürlich werden die technischen Fähigkeiten nie an Bedeutung verlieren, weshalb es für Software-Ingenieure so wichtig ist, sie während ihrer gesamten Laufbahn weiterzuentwickeln.

Das könnte Sie auch interessieren