it-swarm-eu.dev

Was sind die Hauptunterschiede zwischen Softwareentwicklern und Programmierern?

Was sind die Hauptunterschiede zwischen Softwareentwicklern und Programmierern?

102
grokus

Bei der Einstellung suchen wir nach einer Unterscheidung zwischen jemandem, der uns helfen kann, unser System zu entwerfen, Prozesse zu definieren, technische Spezifikationen zu erstellen, erweitertes Refactoring zu implementieren usw., und jemandem, der uns hilft, Programmieraufgaben von einer Checkliste zu erledigen . Ich glaube, Sie könnten den ersteren als Software Engineer und den letzteren als Programmer bezeichnen.

79
Nicole

Es liegt wirklich an der Firma, da ich nicht glaube, dass es einen rechtlichen Rahmen gibt, um eine Konfession oder eine andere durchzusetzen, oder zumindest nicht, den ich kenne, und dies kann von Land zu Land unterschiedlich sein (zum Beispiel die Verwendung des Begriffs) "Ingenieur" ist in Frankreich eigentlich ziemlich reguliert, aber es gibt Varianten, die für die "missbräuchlichen" Fälle zulässig sind.

Davon abgesehen geht der allgemeine Trend so:

  • Eine Programmierer Position ist normalerweise die von einem Fachmann, der beauftragt ist, den Code eines Computerprogramms zu erstellen. Es bedeutet, dass Sie wissen, wie man Code schreibt , einen Algorithmus verstehen können und folgen den Spezifikationen . In der Regel hört es dort jedoch in Bezug auf die Verantwortung auf.

  • Eine Entwickler Position wird normalerweise als Super-Typ der Programmiererposition betrachtet. Es umfasst die gleichen Verantwortlichkeiten, plus die Fähigkeit, eine Softwarekomponente zu entwerfen und zu entwerfen und schreiben Sie die technische Dokumentation dafür (einschließlich Spezifikationen). Sie sind in der Lage, - zumindest technisch - andere (also Programmierer) zu führen, aber nicht unbedingt ein Team (da kommt der Flaum ...)

  • Eine Ingenieur Position würde normalerweise bedeuten, dass Sie ein Entwickler sind, der eine bestimmte Art von Abschluss hat, einige Ingenieurkenntnisse und in der Lage sind, ein System zu entwerfen (wie in: eine Kombination von Software Komponenten/Module, die zusammen eine ganze Softwareeinheit bilden). Grundsätzlich sehen Sie ein breiteres Bild und sind in der Lage, zu entwerfen und zu erklären. -) es und es in kleinere Module aufteilen .

Jedoch all dies ist fraglich und wie gesagt gibt es keine gesetzlichen Anforderungen, die mir in den USA/Großbritannien bekannt sind . In Frankreich kann man sich jedoch nur dann als "Ingenieur" bezeichnen, wenn man von einer Ingenieurschule stammt (anerkannt von der Commission des Titres d'Ingenieurs oder ähnlichem). Sie können nicht sagen, dass Sie einen "Ingenieur-Abschluss" haben, aber Sie können sagen, dass Sie einen "Ingenieur-Abschluss" haben, wenn Sie eine Disziplin studiert haben, die unter das Portemanteau von Ingenieurwesen und Technologien fällt.

Es könnte sein, dass einige Länder eine ähnliche Unterscheidung haben, ich weiß es einfach nicht wirklich.

Zurück zum Titel des Software-Ingenieurs ... Einmal sagte einer meiner Lehrer unserer Klasse - und das zu Recht -, dass es gibt bis heute kein sogenanntes "Software-Engineering". Weil das Engineering von etwas (sei es ein Gebäude, ein Fahrzeug, ein Stück Hardware ...) bedeutet, dass Sie in der Lage sind, sich das Design und alle Phasen seiner Produktion vorzustellen und die benötigten Ressourcen und damit die Genauigkeit genau vorherzusagen Produktionskosten.

Dies gilt für die meisten "wahren" Ingenieurdisziplinen. Natürlich gibt es Schwankungen (die Preise der Materialien variieren beispielsweise im Laufe der Zeit), aber es gibt sehr endliche theoretische Modelle (für Design und Planung) und empirische Modelle (um so ziemlich jedes der ersteren innerhalb zugänglicher Grenzen zu halten). Auf diese Weise können Sie das Beendigungsdatum eines Projekts und dessen Ressourcennutzung vorhersagen.

Das Hauptproblem bei Software ist, dass sie noch nicht vorhanden ist. Wir wollen Software-Engineering anstreben, sind aber noch nicht wirklich da. Weil wir ein sehr flüssiges und dynamisches Umfeld haben, sehr unterschiedliche Einschränkungen für Projekte und im Nachhinein immer noch einen Mangel an Reife in unseren Prozessen. Sicher könnten wir sagen, dass wir besser darin werden (was allerdings mit harten Daten sehr umstritten ist), aber wir sind erst seit den 60er Jahren dabei (frühere Projekte waren tatsächlich näher an reinen Hardware-Computern, also ironischerweise näher an echtem Engineering ). Während wir seit mehr als einem Jahrhundert motorisierte Fahrzeuge bauen, Fahrzeuge im Allgemeinen seit einigen Jahrtausenden und seit noch mehr Jahrtausenden (und in einigen Teilen der Welt verdammt gut darin sind, fühlen Sie sich wie wir sind lächerliche Kinder, die im Vergleich mit unseren neuen auffälligen Software-Spielzeugen spielen).

Wir können Termine nicht systematisch genau vorhersagen , wir können Kosten nicht systematisch genau vorhersagen können wir systematische und externe Risiken nicht systematisch effizient und deterministisch identifizieren und mindern . Das Beste, was wir tun können, ist, gut genug zu produzieren Schätzungen und etwas Puffer aufzunehmen, während wir unser Bestes geben, um die Prozesse zu optimieren, um Zyklen und Overhead zu reduzieren.

Aber sehen Sie, vielleicht ist das Engineering. Und genau das sollte jemand, der über einen "Softwareentwickler" spricht, denken und anstreben.

Das scheint also kaum mit dem einfachen Vorgang des Programmierens von Routinen oder dem fortgeschritteneren Vorgang des Entwickelns von Anwendungen austauschbar zu sein.

Trotzdem ist alles eine Frage der Trends. In letzter Zeit ist es ziemlich üblich, ein horizontales Entwicklerteam zu haben, in dem jeder im Team ein leitender Softwareentwickler ist (ja, Hauptstädte, weil wir uns dadurch besonders fühlen, nicht wahr?), Ohne wirklichen Altersunterschied (fair genug, in meinem Meinung) und nicht so sehr Unterscheidung von Fähigkeiten (äh ...) und Verantwortlichkeiten (jetzt kann das nicht gut sein, abgesehen von reinem PR-Buzz).

Es ist auch manchmal nur eine Gewohnheit und spezifisch für die Kultur und den Jargon einer Branche. Weitere Positionen für die Produktion eingebetteter Software verwenden Titel für Softwareentwickler. Meistens, weil dies wahrscheinlich bedeuten würde, dass Sie sich auch in diesem Bereich immer bis zu einem gewissen Grad mit der Hardware befassen müssen, sodass Sie sich offensichtlich mit anderen Aspekten der Produktion und des gesamten von Ihnen produzierten "Systems" befassen. Nicht nur die Teile, die darin verrückt werden. Auf der anderen Seite des Spektrums sieht man den Begriff Ingenieur nicht wirklich in Positionen in der Produktion von Finanzsoftware. Dies liegt entweder daran, dass diese Branche eine mimetische Entwicklung gegenüber einem ihrer Vorgänger darstellt (z. B. Embedded Engineering hat seine Wurzeln beispielsweise im Automobilbau), oder daran, dass sie einer Position nur mehr oder weniger Anerkennung/Gewicht verleihen möchten.

Und um sicherzugehen, dass Sie alle im Nebel verlieren, Sie werden dann andere Titel finden, die beide mischen (wie "Software Development Engineer" oder "Software Engineer in Test"!) Und dann andere, die sogar betonen mehr verrückte Brücken mit anderen Domänen (denken Sie an "Software Architect" und wie "Software Architecture" ein schamloser Diebstahl von Vokabeln sein könnte). Und halten Sie sie auf dem Laufenden: Release Engineer, Change Development Manager, Build Engineer (dieser geht auch ffaaarrrrrr da draußen). Und manchmal einfach nur "Ingenieur".

Hoffe das hat geholfen, obwohl es nicht wirklich eine Antwort ist.

Oh, und das bedeutet, dass Ihre neue Firma entweder versucht, Sie mit einem neuen Titel anzulocken, oder dass sie sich nicht wirklich für Titel interessiert, oder dass Sie wirklich eine übergeordnete Position einnehmen werden. Die einzige Möglichkeit, dies zu wissen, besteht darin, Ihre Jobspezifikation zu lesen, mit ihnen zu sprechen und sie schließlich zu testen und selbst zu beurteilen. Ich hoffe, es ist die letztere Option und Sie sind damit zufrieden (und profitieren möglicherweise mehr davon). ;)

130
haylem

Softwareentwickler sind Personen, die in Unternehmen arbeiten und die Personen, die Software für sie schreiben, als "Softwareentwickler" bezeichnen.

Programmierer sind Leute, die in Unternehmen arbeiten, die die Leute, die Software für sie schreiben, "Programmierer" nennen.

Es gibt auch Entwickler oder Softwareentwickler. Sie sind Leute, die in Unternehmen arbeiten, die die Leute, die Software für sie schreiben, "Entwickler" bzw. "Softwareentwickler" nennen.

81
Jer

Es gibt also den "Software Engineer", den "Programmer" und auch den "Developer", "Coder", und Sie können den "SOA-Experten" nie vergessen.

Dies sind alles Marketingbegriffe für Personen, die in ihrem Lebenslauf nichts Sinnvolles sagen können, wie z. B. ihre tatsächliche Rolle (nicht nur die Berufsbezeichnung) in früheren Positionen.

Bei Stellenanzeigen liegt der Unterschied bei der Personalabteilung.

Fazit: Jede Person hat ihre eigene Meinung dazu, "was einen guten Mitarbeiter ausmacht, der mit Code arbeitet", und manche verbinden solche und solche Fähigkeiten gerne mit solchen und solchen Titeln.

Was musst du machen? Stellenanzeigen sollten die erforderlichen Fähigkeiten beschreiben, und Lebensläufe sollten die Erfahrungsdetails des Bewerbers erläutern.

15
Ken Egozi

Keine Unterschiede. Sie sind das gleiche. Unternehmen haben jedoch möglicherweise formelle Stellenbeschreibungen, die die Begriffe verwenden, und dann kann der Begriff eine unternehmensspezifische Bedeutung haben.

10
GrandmasterB

Bei der Programmierung geht es um den Code. Beim Software Engineering geht es um das Endprodukt.

8
darreljnz

In einigen Ländern bringt "Ingenieur" die Anforderung mit sich, ein professioneller Ingenieur zu sein, der einen P. Eng. Desigation unter den eigenen Referenzen. In anderen Bereichen gibt es jedoch möglicherweise keinen solchen Unterschied, da ich vor einigen Jahren als "Softwere Design Engineer" im Bundesstaat Washington gearbeitet habe.

3
JB King

Das hängt wirklich davon ab, wie das Unternehmen die Positionen definiert. Es kann sein, dass Sie als Softwareentwickler mehr Möglichkeiten zur Entwurfsentscheidung haben, während Sie als Entwickler UML-Diagramme erhalten und das Programm schreiben.

Es gibt jedoch keine echte Set-Definition, sodass die Leute anhand des Titels wissen, was Sie tun oder wie erfahren Sie sind.

Als ich Architekt/Entwickler war, war mein Titel Informatiker, aber ich würde den Leuten nur sagen, dass ich Programmierer bin, da die ersten beiden nicht einfach zu definieren sind, aber die meisten Leute wissen, was ein Programmierer tut.

Wenn Ihnen ein Titel wichtig ist, akzeptieren Sie den neuen, da der Ingenieur höher klingt als ein Entwickler.

3
James Black

Ich glaube nicht, dass es "offizielle Unterschiede" gibt, für meine Erfahrung könnte das bedeuten:

  • Einige Unternehmen verwenden Softwareentwickler und Softwareentwickler, um sich auf dasselbe zu beziehen. Sie verwenden nur ihren Lieblingsbegriff.
  • Andere verwenden beide Begriffe für unterschiedliche interne Positionen, aber die Rollen variieren von Unternehmen zu Unternehmen! In einigen Fällen kann es sich nur um einen Unterschied in der Funktion handeln (ein Soft-Ingenieur wird an der Wartung und Verbesserung der Systeme arbeiten, während ein Entwickler am Produkt des Unternehmens arbeitet), oder er kann hierarchisch sein (der Ingenieur steht über dem Entwickler) oder sogar Der Ingenieur ist wirklich auf Fragen und Antworten angewiesen!

Auch sind Modebegriffe, die sich ändern ... Zuerst war der Begriff "Programmierer", dann "Softwareentwickler" und scheint jetzt "Entwickler" zu sein ...

Es ist besser, die Stellenbeschreibung oder jemandem im jeweiligen Unternehmen vorzulesen

3
Khelben

Software-Ingenieure neigen dazu, an Systemen zu arbeiten, die sehr groß sind und deren Entwicklung viele Mannjahre in Anspruch nimmt, z. Zum Beispiel 5 bis 16 Jahre. Programmierer neigen dazu, dieses Stereotyp von nur Codierung und sonst nichts zu haben. Aber es hängt wirklich von der Organisation ab, in der Sie arbeiten, und davon, wie die Personalabteilung die oben erläuterte Rolle vermarktet. Sie sind im Wesentlichen dasselbe. Lass dich einfach nicht zu sehr an einen Titel binden, denn er ist auch so.

2
Siamac Nikoo