# Softwareentwickler

Ein Softwareentwickler (englisch software developer) ist eine Person, die an der Erstellung einer Software mitwirkt. Der Begriff ist nicht scharf definiert.
Die konkreten Aufgaben eines Softwareentwicklers richten sich nach der Rolle, die er im Softwareentwicklungsteam einnimmt. Die bekannteste Rolle ist hierbei die des Programmierers. Umgangssprachlich wird zwischen den Begriffen „Programmierer“ und „Softwareentwickler“ oft nicht unterschieden.

## Rollen und Aufgaben

Ein Softwareentwickler kann eine oder mehrere Rollen ausfüllen. Dies hängt von der Größe des Teams und der Organisation des Softwareentwicklungsprozesses ab. Allen Rollen gemein ist, dass Softwareentwickler Software entwickeln oder warten, also Programmcode schreiben oder verändern. Softwareentwickler können aber je nach Ausbildung und Erfahrung auch Rollen einnehmen, in denen vorrangig andere Tätigkeiten gemacht werden müssen, wie Anforderungsmanagement, Softwarearchitektur, Softwaretest und Qualitätssicherung, Systemadministration oder Projektmanagement. In der agilen Softwareentwicklung werden cross-funktionale, selbstorganisierte Teams eingesetzt, Softwareentwickler übernehmen dabei alle zuvor genannten Tätigkeiten.
Neben den oben genannten Tätigkeiten gehören auch das Design der Benutzerschnittstelle, Entwicklung von Algorithmen und mathematischen Berechnungsmodellen oder die Analyse von Altsystemen zu typischen Aufgaben von Softwareentwicklern.

## Softwarestack

Softwareentwickler können durch den Softwarestack auf den sie ausgebildet sind unterschieden werden. Häufig spielt hierbei die Schicht eines Stacks eine wichtige Rolle für die Abgrenzung. Es wird unterschieden zwischen Frontend, Backend und Full-Stack. Frontend-Entwickler beschäftigen sich mit den Schnittstellen für die Nutzer eines Dienstes (Internetseiten, Apps etc.), häufig sind hier Kenntnisse von HTML, CSS, JavaScript und JSON gefragt. Backend-Entwickler sind hingegen auf die serverseitige Programmierung spezialisiert. Diese umfasst häufig Skriptsprachen wie PHP, Python und Ruby. Full-Stack-Entwickler wenden Kenntnisse aus dem Frontend- als auch dem Backend-Bereich an.

## Berufsbezeichnung

Die Berufsbezeichnung Softwareentwickler ist in Deutschland und Österreich keine geschützte Berufsbezeichnung.
Die Berufsbezeichnung Softwareingenieur darf nach deutschem Recht nur führen, wer ein technisches Studium mit Erfolg abgeschlossen hat. In Österreich kann der Ingenieurstitel auch durch die Ausbildung an einer HTL erworben werden.

## Ausbildung und Studium

Softwareentwickler haben oft ein Studium in einem Informatikstudiengang an einer Hochschule oder einer Berufsakademie absolviert. Auch ein Studium in einem ingenieur- bzw. naturwissenschaftlichen Studiengang bietet Einstiegsmöglichkeiten in die Softwareentwicklung. Des Weiteren gibt es die Möglichkeit, sich über eine Ausbildung in einem informationstechnischen Ausbildungsberuf z. B. zum Fachinformatiker für Anwendungsentwicklung an einer Berufsfachschule (siehe beispielsweise IHK), an einer Fachschule für Datenverarbeitung und Organisation (z. B. Akademie für Datenverarbeitung Böblingen) oder einem Berufskolleg zum Softwareentwickler oder Softwarearchitekten zu qualifizieren.
Seit 2007 gibt es in Deutschland die staatlich anerkannte Ausbildung zum Mathematisch-technischen Softwareentwickler, die aus dem Mathematisch-Technischen Assistenten hervorging. In Aachen, Köln und Jülich ist die Kombination der Ausbildung mit dem Bachelorstudiengang „Scientific Programming“ möglich.
Daneben üben viele Quereinsteiger diese Tätigkeit auch aufgrund von autodidaktisch erlernten oder durch verschiedene Schulungen (auch Umschulung) erworbenen Fähigkeiten aus.