Softwareentwickler

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Programmierer)
Wechseln zu: Navigation, Suche
Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung.

Ein Softwareentwickler ist eine Person, die an der Erstellung von 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.

Rollen[Bearbeiten | Quelltext bearbeiten]

Ein Softwareentwickler kann eine oder mehrere der aufgeführten Rollen ausfüllen. Dies hängt davon ab, wie der Softwareentwicklungsprozess organisiert ist.

Programmierer
Als Programmierer, gelegentlich auch abwertend Code Monkey, wird ein nicht näher definierter oder nicht spezialisierter Softwareentwickler bezeichnet.
Frontend-Entwickler[1]
Entwickelt visuelle Schnittstellen, insbesondere das Layout und die Farbgebung einer Anwendung (z. B. HTML, CSS und JavaScript in Webanwendungen).
Backend-Entwickler[1]
Implementiert die funktionale Logik der Anwendung. Hierbei werden zudem diverse Datenquellen und externe Dienste integriert und für die Anwendung bereitgestellt. Backend-Entwickler nutzen hierbei meist eine höhere Programmiersprache (z. B. Java oder C#).
Datenbank-Entwickler[1]
Ist für die Planung und Entwicklung der Datenbanken sowie deren Leistung, Integrität und Sicherheit verantwortlich. Ein Datenbank-Entwickler muss Kenntnisse in relationalen Datenbanken mit SQL aufweisen. Zudem werden vermehrt auch Kenntnisse mit noSQL-Datenbanken benötigt.
Full-Stack-Web-Entwickler[1]
Beherrscht alle erforderlichen Technologien um eine Web-Anwendung zu erstellen. Er vereint hierzu Fähigkeiten des Frontend-, Backend- und Datenbankentwicklers.
Desktop-Entwickler[1]
Entwickelt Anwendungen, welche auf einem Desktop-PC laufen sollen. Hierbei wird nach dem Ziel-Betriebssystem (z. B. Windows, macOS oder Linux) sowie nach der eingesetzten GUI-Bibliothek (z. B. WinForms, WPF und UWP unter Windows, GTK+, Qt und wx unter Linux sowie Cocoa under macOS) unterschieden.
Mobil-Entwickler[1]
Entwickelt Anwendungen, welche auf mobilen Geräten wie Smartphones und Tabletcomputern ausgeführt werden sollen. Hierbei wird unterschieden zwischen Entwicklern, welche für mehrere Plattformen entwickeln (z. B. PhoneGap oder Xamarin Platform) sowie der Entwicklung für eine spezifische Plattform (z. B. Android, iOS oder UWP).
Data Scientist[1]
Befasst sich sowohl mit Statistik- als auch mit Entwicklungsaufgaben auf großen Datensätzen im Big Data-Umfeld. Dies schließt maschinelles Lernen, statistische Analyse und Vorhersagemodelle mit ein.
mathematisch-technischer Softwareentwickler
Entwickelt Anwendungen zur Berechnung mathematischer Modelle im technischen und wissenschaftlichen Umfeld.
Grafikprogrammierer[1]
Befasst sich mit Rendering, Shadering, Beleuchtungs- und Schattenberechnungen, Farbraummanagement, Culling und ähnlichen grafischen Algorithmen, welche in Spiele- und Videoproduktion sowie der Visualisierung eingesetzt werden.
CRM-, ERP- und CMS-Entwickler[1]
Passt ein bestehendes CRM-System (z. B. Salesforce, SAP, Microsoft Dynamics), ERP-System (z. B. SAP, Microsoft Dynamics) oder CMS (z. B. WordPress, MediaWiki oder SharePoint) an die Bedürfnisse des Kunden an.
Embedded-Entwickler[1]
Entwickelt Software, welche in einer hardwarenahen Umgebung ausgeführt wird. Hierzu gehören Echtzeitsysteme, Gerätetreiber und elektronische Schnittstellen.
Softwarearchitekt
Ein Softwarearchitekt entwirft den Aufbau von Softwaresystemen und trifft grundlegende Entscheidungen über das Zusammenspiel ihrer diversen Komponenten. Ein Softwarearchitekt betrachtet das Softwaresystem von einer abstrakteren Ebene als ein Programmierer.
Agiler Entwickler
Agile Entwickler befassen sich mit der automatisierten Qualitätssicherung von Softwareprojekten.[1] Hierzu gehören funktionale Softwaretests sowie dem automatischen Prüfen von Anforderungen. Durch die Automatisierung wird sichergestellt, dass Test- und Entwicklungszyklen verkürzt und die Anforderungen eingehalten werden.
DevOps-Entwickler[1]
Automatisiert Entwicklungs-, Administrations- und Auslieferungsprozesse von Softwareprodukten. Hierdurch wird eine schnellere und kostengünstigere Entwicklung ermöglicht.
Softwarearchäologe
Befasst sich mit der Wartung eines bestehenden und schlecht dokumentierten (d. h. nicht automatisch getesteten) Altsystems.

Weitere Rollen[Bearbeiten | Quelltext bearbeiten]

Bei diesen Rollen handelt es sich nicht um Entwicklungsaufgaben, sie sind jedoch ein integraler Bestandteil eines Entwicklerteams:

Anforderungsmanager
Ein Anforderungsmanager, auch Requirements Engineer oder Anforderungsspezialist genannt, erfasst Anforderungen an die Software und führt Anforderungsanalysen durch.
Tester
Ein Tester oder Test Engineer ist eine Person, die Softwaretests durchführt, zusätzliche manuelle Tests ausführt oder eine Teststrategie für das System entwirft.
Scrum Master
Sorgt in einem Scrum- oder Kanban-Projekt dafür, dass Prozesse der Softwareentwicklung eingehalten werden. In klassischen Entwicklungsmodellen, wie etwa dem Wasserfallmodell oder V-Modell, übernimmt diese Rolle die Führungskraft des Entwicklungsteams.

Programmierer und Softwareentwickler[Bearbeiten | Quelltext bearbeiten]

Umgangssprachlich wird zwischen den Begriffen „Programmierer“ und „Softwareentwickler“ oft nicht unterschieden. So meint man mit dem Begriff des Softwareentwicklers zwar oft Programmierer, umgekehrt spricht man allerdings nicht von Programmierern, wenn etwa Softwarearchitekten oder Tester gemeint sind.

Softwarestack[Bearbeiten | Quelltext bearbeiten]

Softwareentwickler werden weiter unterschieden durch den Softwarestack auf den sie ausgebildet sind. Da für viele Stacks eine jahrelange Ausbildung und Erfahrung benötigt wird, sowie ggf. auch unterschiedliche Persönlichkeitstypen anspricht, ist ein Wechsel zwischen unterschiedlichen Stacks nur vereinzelt möglich.

Berufsbezeichnung[Bearbeiten | Quelltext bearbeiten]

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.[k 1][2] In Österreich kann der Ingenieurstitel auch durch die Ausbildung an einer HTL erworben werden.

Ausbildung und Studium[Bearbeiten | Quelltext bearbeiten]

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, Softwareingenieur 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 Bachelor-Studiengang „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.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Wiktionary: Softwareentwickler – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
 Wiktionary: Programmierer – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Kommentare[Bearbeiten | Quelltext bearbeiten]

  1. Siehe Gesetz zum Schutze der Berufsbezeichnung „Ingenieur und Ingenieurin“ (Ingenieurgesetz – IngG) welches in der Gesetzgebungskompetenz der Bundesländer liegt und für das jeweilige Bundesland in der geltenden Fassung heranzuziehen ist. Um die Bezeichnung „Ingenieur“ zu tragen, muss man das Studium nicht zwingend als „Ingenieur“ abschließen. Aus dem Gesetz des Bundeslandes Bayern geht zum Beispiel hervor, dass es für die Berufsbezeichnung „Ingenieur“ ausreicht, wenn man ein mindestens dreijähriges Studium in einer technischen oder naturwissenschaftlichen Fachrichtung mit Erfolg abgeschlossen hat.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b c d e f g h i j k l Basiswissen: Entwicklertypen. Die 12 häufigsten Entwicklertypen und ihre Skillsets im Überblick. Stack Overflow Business, abgerufen am 10. April 2017 (PDF, Ratgeber für IT-Personalbeschaffung).
  2. Gesetz zum Schutze der Berufsbezeichnung „Ingenieur und Ingenieurin“. Ingenieurgesetz - IngG. Abgerufen am 10. April 2017 (PDF, Ingenieurgesetz von Bayern).