Was ist ein Name?

Coder, Programmierer, Entwickler: Wo liegt der Unterschied?
Kommentare

Wie schon in der Tragödie von Shakespeare werden auch heute noch mit unterschiedlichen Bezeichnungen bestimmte soziale Rollen und berufliche Stellungen verbunden. Die Branche der Softwareentwicklung ist hier keine Ausnahme. Wie andere Geschäftszweige zeichnet sie sich durch eine Fülle von spezifischen Berufsbezeichnungen aus.

Das Problem ist nur: Im alltäglichen Sprachgebrauch werden die meisten davon synonym verwendet. Coder, Programmierer oder Entwickler – alles das gleiche?! Grund genug, dieser Frage einmal genauer nachzugehen: Worin unterscheiden sich die Aufgabenfelder und Tätigkeitsbereiche der unterschiedlichen Gruppen – und, tun sie es überhaupt?

Alles das Gleiche …

Im herkömmlichen Berufsalltag werden die Aufgabenbereiche und Tätigkeitsfelder von Codern, Programmierern und Entwicklern häufig gleichgesetzt – zu Recht, wie Daniel Kaplan findet. In neun von zehn Fällen gleichen sich die Jobbeschreibungen so sehr, dass keine wesentlichen Unterschiede auszumachen sind. Ihre Aufgabe besteht schlicht darin, Software auf Wunsch des Auftraggebers zu entwickeln und zu programmieren.

9 times out of 10, you can consider these job titles to be synonymous. The main specialty of all three is that they will write code to build custom software. If you meet one person that refers to themselves as a Coder and another that refers to themselves as a Programmer, you can think of them as doing the same thing.

Unterstützt wird Kaplans Ansicht durch persönliche Erfahrungen. Ob man sich selbst zum Bespiel als Programmierer oder Entwickler bezeichnet, hängt oftmals weniger vom spezifischen Tätigkeitsfeld als vielmehr vom sozialen Kontext ab. Während man im Bewerbungsgespräch oder unter Kollegen versucht, sich als Entwickler zu profilieren, gibt man sich im privaten Beisammensein eher als Programmierer aus, vielleicht sogar als ein Entwicklungskünstler, der mit Code malt. Und wenn die Großeltern fragen, was man beruflich macht, reicht meistens ein Einfaches: „Irgendwas mit Computern“. Ob man sich jetzt das prestigeträchtige Renommee des Entwicklers anheftet oder sich schlicht als Programmierer ausgibt, hängt scheinbar nur davon ab, wie fachkundig die anwesenden Personen sind.

… oder doch nicht?

Auch wenn es zutreffen sollte, dass sich im Alltagsgeschäft die Aufgabenbereiche nur marginal unterscheiden und die eigene Berufszuschreibung vom sozialen Kontext abhängt, bleibt fraglich, warum man dem Status des Entwicklers intuitiv einen höheren Stellenwert einräumt als dem des Programmierers oder Coders. Unterscheiden sich die Tätigkeitsbereiche doch mehr, als man gemeinhin glaubt? Scott Hanselman und Alan Skorkin sind dieser Meinung.

Sowohl Hanselman als auch Skorkin haben sehr konkrete Vorstellungen davon, worin sich die Tätigkeitsfelder und Arbeitsweisen der drei Gruppen unterscheiden. Für beide zeichnen sich Coder durch ihre pragmatische und sachliche Arbeitsweise aus. Sie schaffen brauchbare Lösungen und schreiben geeignete Software; legen dabei aber keinen allzu großen Wert auf Funktionalität und Design. Im mathematischen Bereich punkten sie mit einem umfangreichen Wissen; geht es um kommunikative Fähigkeiten, weisen sie aber Defizite auf.

Coders – Can pretty much figure out it. It’ll work, but it won’t be pretty.

Uneinigkeit herrscht bei der Rolle des Programmierers. Etwas nonchalant merkt Hanselman an, dass Programmierer in der Lage sind, Code zu schreiben und Algorithmen zu verstehen – das aber am besten alleine. Skorkin wiederum überschlägt sich fast vor Lob. Programmierer schreiben einen fantastischen Code mit viel Liebe zum Detail; besonders großer Wert wird neben der Funktionalität auf ein schlankes Design und eine fehlerfreie Anwendung gelegt. Bei aller Detailverliebtheit verlieren Programmierer jedoch das Ziel nicht aus den Augen und besitzen zudem ein solides Grundwissen in ihrem Teilbereich.

Programmers write awesome code. Making it clean, well-factored and error free are very important concerns, but not at the expense of getting the job done.

Einig sind sich Hanselman und Skorkin in der Beurteilung von Entwicklern: Sie sind die vollendeten Generalisten ohne wirkliche Spezialisierung. Ihre Arbeitsweise zeichnet sich durch einen hohen Professionalisierungsgrad aus. Sie beherrschen eine Brandbreite unterschiedlicher Sprachen und Systeme; im Vordergrund steht aber weniger das Schreiben gesamter Programme, sondern vielmehr der Entwurf von Spezifikationen. Sie besitzen ausgezeichnete soziale und kommunikative Fähigkeiten, sind spezialisiert auf problemorientierte Lösungsvorschläge und aufgrund ihrer Planungskompetenzen besonders gefragt.

Scheinbar gibt es sie also doch, die kleinen aber feinen Unterschiede in der Arbeitsweise von Codern, Programmieren und Entwicklern; der soziale Kontext scheint nicht das dominante Kriterium zu sein. Man sollte daraus aber keine falschen Schlüsse ziehen – oder: nicht ohne Weiteres auf seine Intuition vertrauen. Wie Skorkin richtig anmerkt, ist keine der drei Berufsgruppen allgemein schlechter oder besser als die andere. Für was man sich letztlich entscheidet, hängt vielmehr von den persönlichen Interessen und der eigenen Karriereplanung ab. Die unterschiedlichen Anforderungsprofile der drei Gruppen können hierbei als Orientierungshilfe dienen; ansonsten gilt: “They are simply different dimensions (with some crossover) of the field we are all involved in”.

Ein einziges Durcheinander?

Manch einer mag sich allerdings wundern: Entwickler als planende Problemlöser mit Sozialkompetenz? Wo besteht dann noch der Unterschied zwischen Entwicklern und Software-Architekten? Und gibt es eine klare Abgrenzung zwischen Programmierern und Software-Ingenieuren? Wird hier nicht der gleiche Fehler wie zuvor gemacht und verschiedene Tätigkeitsbereiche einfach über einen Kamm geschert?

Liegen Hanselman und Skorkin also überhaupt richtig, wenn sie Coder und Programmierer mehr als ausführende und Entwickler eher als planende Instanzen innerhalb eines Unternehmens charakterisieren? Auch hier gehen die Meinungen auseinander.

Für Skorkin liegt die Antwort klar auf der Hand. Für ihn stellen Software-Ingenieure bloß eine Unterkategorie von Entwicklern dar und Architekten befassen sich mit der gestalterischen Planung und Errichtung von Bauwerken und Gebäuden – sind also in der Softwareentwicklung völlig falsch.

Ein differenziertes Bild zeichnet Kaplan. Software-Ingenieure betrachten die Softwareentwicklung mehr als ein Handwerk, welches es konstant zu verbessern gilt. Systeme und Sprachen werden nicht „rücksichtslos“ zusammengewürfelt, sondern auf Grundlage des aktuellen Wissensstands sorgfältig arrangiert. Das Alleinstellungsmerkmal des Software-Ingenieurs liegt demnach in seiner besonders kompetenten Arbeitsweise. Fraglich ist allerdings, ob dieses Kriterium ausreicht, um Software-Ingenieure klar von Programmierern abgrenzen zu können – hatte Skorkin doch zuvor die Arbeitsweise von Programmierern in höchsten Tönen gelobt.

But, a Software Engineer has the connotation of treating software development as a craft that he is constantly trying to improve. He’s not just slapping things together recklessly, he’s engineering what he builds. That’s not to say that the others are thought of as reckless, just that a Software Engineer has the connotation of not being reckless.

Anzumerken ist allerdings, dass die Bezeichnung „Ingenieur“ in den Vereinigten Staaten anders gehandhabt wird als in Deutschland. In den USA wird recht locker mit der Beschreibung umgegangen. Quasi jeder, der sich mit der Entwicklung von Software auseinandersetzt, kann sich als Software-Ingenieur bezeichnen. In Deutschland hingegen – wie auch in Kanada – ist es rechtlich nur zulässig, den Titel des Ingenieurs zu führen, wenn man einen akademischen Abschluss vorweisen kann. Das macht die Sache noch komplizierter. Ob und wie man zwischen Programmierern und Software-Ingenieuren unterscheiden kann, scheint nicht nur ein generelles Problem zu sein, sondern auch noch von Land zu Land zu variieren.

To use an analogy with traditional architecture, a Software Architect creates the blue print and the CDPSEs (Coders, Developers, Programmers and Software Engineers) build the walls.

Während sich laut Kaplan „herkömmliche“ Programmierer auf konkrete Details und den inneren Aufbau von Software konzentrieren, entwerfen Software-Architekten den Aufbau von Systemen und treffen grundlegende Entscheidungen über die Interaktionen der verschiedenen Komponenten und Module. Ein guter Software-Architekt muss zwar programmieren können; er befasst sich aber hauptsächlich mit Koordinationsaufgaben.

Aber nicht jeder ist der gleichen Meinung wie Kaplan, wie dieser Diskussionsbeitrag auf Reddit unterstreicht:

Was denn nun?

Ein abschließendes Fazit zu ziehen, ist mehr als schwierig. Kann man wirklich klar zwischen Codern, Programmierern und Entwicklern unterscheiden oder sind die Bezeichnungen miteinander austauschbar? Heben sich Software-Ingenieure eindeutig von Programmierern ab? Und was ist eigentlich mit spezialisierten Entwicklern/Codern/Programmieren, beispielsweise im Web-Umfeld? Kann man Entwickler exakt von Software-Architekten abgrenzen? Oder ist doch alles ganz anders? Wie steht Ihr zu dem Thema? Lasst es uns wissen und schreibt Eure Meinung in die Kommentare!

Aufmacherbild: Hacker team – hacker, fraud, programmer via Shutterstock / Urheberrecht: Fireofheart

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -