Berufsbild: Softwareentwickler (m/w/d)

Was ist ein Softwareentwickler?

Ein Softwareentwickler löst durch die Konzeptionierung, Entwicklung und Wartung von Programmcode reale Probleme. Dazu werden die Anforderungen und Verbesserungspotenziale aktueller Prozesse ermittelt und durch neue Software ergänzt. Das Aufgabengebiet eines Softwareentwicklers ist somit sehr groß. Je nach Rolle innerhalb eines Projektes können Softwareentwickler Aufgaben im Bereich der Programmierung, Anwendungsentwicklung oder des Software-Engineering ausüben. Der Arbeitsablauf lässt sich auf die fünf Prozessschritte Anforderungsmanagement, Entwicklung des Codes, Testing, Wartung und Behebung von Incidents eingrenzen. Ziel der Arbeit ist es, Softwareprogramme zu verbessern oder neu zu entwickeln. 

Eine Unterscheidung zwischen Softwareentwicklern kann anhand des Softwarestacks erfolgen, auf welches sie ausgebildet sind. So können Softwareentwickler unter anderem im Frontend- oder im Backend entwickeln. Experten mit dem Titel "Full Stack Developer" beherrschen alle Stacks und sind somit Generalisten.

Der Beruf kann sowohl als Freelancer oder in Festanstellung ausgeübt werden. Die Arbeit innerhalb eines Teams ist in beiden Fällen oftmals gegeben. 

Aufgaben als Softwareentwickler

Der Glaube, dass Softwareentwickler lediglich Code entwickeln, ist weit gefehlt. Meist sind sie von der Idee bis hin zur finalen Umsetzung von Programmen eingebunden. Das Aufgabenfeld ist dabei nicht genau definiert. Auch hinsichtlich der Programmiersprachen oder der Betriebssysteme gibt es weitreichende Unterschiede, weshalb Spezialisierungen auf einzelne Softwarestacks üblich sind. 

Alle Aufgaben lassen sich in folgende fünf Bereiche gliedern:

Anforderungsmanagement

Der Aufgabenbereich des Anforderungsmanagements zeichnet sich durch die Aufnahme der Bedürfnisse, Wünsche und notwendigen Funktionen aus. In diesem Bereich steht die Planung der Software im Vordergrund. Alle Stakeholder werden hinsichtlich ihrer Anforderungen interviewt und es wird eine Anforderungsdokumentation, meist in Form eines Lastenheftes, erstellt. Der Softwareentwickler orientiert sich an diesem Lastenheft und erstellt auf dessen Basis ein Pflichtenheft, welches alle anfallenden Arbeiten und Projektschritte aufführt. Daraufhin werden Qualitätskriterien definiert. Der Softwareentwickler prüft die Wirtschaftlichkeit und gibt eine Empfehlung ab. Werden Projekt und geplante Phasen akzeptiert, folgt die Entwicklung des Codes.

Entwicklung des Quellcodes

Sobald die Anforderungen an die Software feststehen, befasst sich der Softwareentwickler mit der Planung der Realisierung. Er prüft, wie das System intern verzahnt ist, mit welchen anderen Programmen kommuniziert werden muss und entwickelt auf Grundlage dessen gemeinsam mit dem Umsetzungs-Team die Software-Architektur. Da die Software-Architektur die Grundlage des Codes bietet, sind spätere Änderungen nur schwer umsetzbar. Ein sorgfältiges und vorausschauendes Vorgehen ist Voraussetzung. Soll das System zu einem späteren Zeitpunkt durch weitere Services ergänzt werden, so müssen diese Anforderungen ebenfalls in der Software-Architektur bedacht werden. 
Ist das Vorgehen definiert, wird die Software-Architektur mithilfe verschiedener Programmiersprachen umgesetzt. Die am häufigsten genutzten Programmiersprachen sind hierbei Java, C++ oder PHP, wobei auch Cobol und Perl weit verbreitet sind.

Testing

Nach dem Abschluss der Software-Entwicklung müssen Ergebnis und Anforderungen abgeglichen werden. Hierzu werden alle umgesetzten Aufgaben aus dem Pflichtenheft, den Anforderungen aus dem Lastenheft gegenübergestellt. Die entwickelte Software wird genaustens untersucht und Bugs sowie Probleme und Hürden in der Nutzung beseitigt. Das Vorgehen kann sich in verschiedene Teststufen untergliedern. Begonnen wird oftmals mit einem Unittest (Modultest), in dem einzelne Codeteile getrennt von dem Rest des Codes getestet werden. Es folgen ein Integrationstest (mehrere Code-Module als Gruppe werden getestet), ein Systemtest (das gesamte Software-System wird auf die Anforderungen und die Tauglichkeit geprüft) sowie abschließend ein Abnahmetest, in dem die Stakeholder die Software auf Tauglichkeit für die Inbetriebnahme testen. Wird die Software abgenommen, so folgt die Implementierung und Installation. 

Implementierung der Software

Nach erfolgreichem Testing erfolgt die Implementierung und Installation der Software in die Arbeitsumgebung. Dazu wird ein Zeitplan entwickelt, welcher den Ablauf der Prozessschritte definiert. Dabei wird unterschieden, ob bestehende Software ersetzt oder eine völlig neue Software ergänzt wird. Bei dem Ersetzen einer bestehenden Software müssen oftmals Altdaten migriert werden, da sie die Arbeitsgrundlage weiterer Prozesse sein können. Zudem erhöht es die Akzeptanz der Software im Unternehmen, da das technische Onboarding an die Software bereits anhand von täglichen Abläufen veranschaulicht werden kann. Handelt es sich um völlig neue Software, so müssen oftmals neue Schnittstellen zu anderen Programmen geschaffen werden. 
Sobald die Implementierung und Installation abgeschlossen sind, werden die Stakeholder von dem Softwareentwickler hinsichtlich aller Funktionalitäten eingewiesen.  

Wartung und Behebung von Incidents

Um eine Software stets sicher und funktionsfähig zu halten, muss der Softwareentwickler diese regelmäßig warten und anpassen. Notwendige Änderungen können dabei sowohl intern, z.B. Optimierung der Funktionalitäten, als auch extern, z.B. durch die Erneuerung des Betriebssystems, angestoßen werden. Grundsätzlich lassen sich Softwarewartungen in die drei Arten korrektive Wartung, perfektionierende Wartung und die adaptive Wartung gliedern. Bei der korrektiven Wartung geht es vorwiegend um die Fehlerkorrektur. Die perfektionierende Wartung behandelt alle internen Änderungswünsche, wie eine Performanceverbesserung, und die adaptive Wartung befasst sich mit den externen Einflussfaktoren, wie der Anpassung der Software an neue technische Bedingungen der Umgebung. 

Programmiersprachen

JAVA

Die objektorientierte Programmiersprache Java wurde in der ersten Version 1995 von Sun Microsystems veröffentlicht. Objektorientiert bedeutet, dass geschriebene Programme in Klassen und Objekte strukturiert sind. So können Objekte mit verschiedenen Eigenschaften belegt und innerhalb des Programmes weiter genutzt werden. Zusammen mit C ist sie die meistgenutzte Programmiersprache weltweit. 
Die Java-Technologie lässt sich in drei verschiedene Elemente gliedern, die Programmiersprache Java, das Java Developer Kit (JDK) und die Java-Laufzeitumgebung.

C++

Die Programmiersprache C++ ist, wie Java, eine objektorientierte Programmiersprache. Als effiziente Erweiterung der Programmiersprache C wurde sie ab 1979 von Bjarne Stroustrup bei AT&T entwickelt. Einsatz findet sie sowohl in der Systemprogrammierung als auch in der Anwendungsprogrammierung. In der Systemprogrammierung wird sie typischerweise für Betriebssysteme, Treiber, virtuelle Maschinen oder eingebettete Systeme eingesetzt und ersetzt oftmals die Programmiersprache C. Das Einsatzgebiet in der Anwendungsprogrammierung wurde durch Java und C# stark begrenzt. Teilweise wird sie noch genutzt, um durch hohe Effizienz einen maximalen Nutzen der vorgegebenen Leistungsgrenzen zu erzielen.

PHP

Die Skriptsprache PHP wurde im Jahr 1995 entwickelt und wird für dynamische Webseiten sowie Webanwendungen benötigt. PHP steht für Hypertext Preprocessor (ehemals "Personal Home Page Tools"). Viele gängige Content-Management-Systeme (CMS), wie WordPress, basieren auf der Sprache, da sie sich durch eine breite Datenbankunterstützung, Protokolleinbindung in HTML und die Verfügbarkeit verschiedenster Funktionsbibliotheken auszeichnet. 

COBOL

Die Programmiersprache COBOL (Common Business Oriented Language) wurde Ende der 1950er-Jahre entwickelt und eignet sich vor allem für Geschäftsanwendungen. In Branchen, wie dem Finanz- und Personalwesen, ist sie noch immer sehr verbreitet. Cobol zeichnet sich durch die Nähe zur natürlichen Sprache, der Einfachheit dank eines übersichtlichen Codierungsstils sowie einer logischen Struktur aus.

Gehalt: Wie viel verdient ein Softwareentwickler?

Als Softwareentwickler liegt das Einstiegsgehalt zwischen 38.000 Euro und 45.000 Euro pro Jahr. Mit anwachsender Erfahrung, zunehmender Verantwortung sowie der Übernahme von Führungstätigkeiten kann es auf bis zu 86.000 Euro jährlich steigen. Die Spanne ist somit sehr groß und der tatsächliche Lohn kann durch die ausgeübte Tätigkeit, die Projektverantwortung oder auch durch eine sehr spezialisierte Tätigkeit stark variieren. Entscheidend für die Höhe des Gehaltes sind zudem der Abschluss (Ausbildung, Bachelor oder Master) sowie äußere Faktoren wie der Standort des Unternehmens und die Unternehmensgröße. Je höher der Abschluss, desto mehr wird tendenziell verdient. So verdient ein Masterabsolvent oftmals mehr als ein Softwareentwickler mit einem Bachelor.

In Bundesländern wie Hessen, Bayern und Baden-Württemberg ist das durchschnittliche Gehalt tendenziell höher. In Mecklenburg-Vorpommern und Sachsen-Anhalt hingegen liegt das Gehalt eher unter dem Durchschnitt. Je größer das Unternehmen, desto höher sind die Gehälter. Softwareentwickler in Unternehmen mit 1-50 Mitarbeitern verdienen weniger als in Unternehmen mit mehr als 5.000 Mitarbeitern. 

FAQ