Softwareentwickler

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 29. März 2020 um 15:02 Uhr durch WikiBayer (Diskussion | Beiträge) (Änderungen von 2003:C5:1F14:B401:4028:E48E:A87C:955 (Diskussion) wurde auf die letzte Version von 2001:16B8:6045:2B00:91D7:3EE9:6C74:8FA1 zurückgesetzt: zum Testen bitte die Spielwiese benutzen). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

Ein Softwareentwickler (engl. 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.

Rollen

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 wird ein nicht näher definierter oder nicht spezialisierter Softwareentwickler bezeichnet.
Frontend-Entwickler[1]
entwickelt graphische oder andere Benutzerschnittstellen, insbesondere das Layout 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 weist Kenntnisse in relationalen Datenbanken mit SQL auf. 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 Web-bezogene 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 unter macOS) unterschieden.
Mobil-Entwickler[1]
entwickelt Anwendungen, welche auf mobilen Geräten wie Smartphones und Tablets 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 generelle Entscheidungen über das Zusammenspiel ihrer diversen Komponenten. Ein Softwarearchitekt betrachtet das Softwaresystem von einer abstrakteren Ebene als ein Programmierer.
Cross Functional
In der agilen Softwareentwicklung werden bevorzugt Skill-übergreifende Teams gesucht. Entwickler sollten daher möglichst viele der hier genannten Rollen (bzw. die im jeweiligen Projekt benötigten Rollen) abdecken und darüber hinaus auch Testen und Testautomatisierung – ohne Augenmerk auf irgendeine der Kategorien zu legen.
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 Altsystems.

Weitere Rollen

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

Umgangssprachlich wird zwischen den Begriffen „Programmierer“ und „Softwareentwickler“ oft nicht unterschieden. Man spricht allerdings selten von Programmierern, wenn etwa Softwarearchitekten oder Tester gemeint sind.

Softwarestack

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, und verschiedene Stacks ggf. auch unterschiedliche Persönlichkeitstypen ansprechen, ist ein Wechsel zwischen unterschiedlichen Stacks nur vereinzelt möglich.

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.[k 1][2] 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, 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

Literatur

Weblinks

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

Kommentare

  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

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