Réponses:
Lors de l’embauche, nous recherchons une distinction entre une personne capable de nous aider à architecturer notre système, à définir des processus, à créer des spécifications techniques, à mettre en œuvre une refactorisation avancée, etc., et une personne qui va nous aider à effectuer des tâches de programmation à partir d’une liste de contrôle . Je crois que vous pourriez appeler l’ancien un ingénieur en logiciel et le second un programmeur .
C’est vraiment à l’entreprise, car je ne pense pas qu’il existe un cadre juridique permettant d’appliquer une dénomination ou une autre, ou du moins pas à ma connaissance et qui pourrait varier d’un pays à l’autre (par exemple, l’utilisation du terme "ingénieur" est en fait assez réglementé en France, mais il existe des variantes autorisées pour les cas "abusifs").
Cela étant dit, la tendance générale est la suivante:
Un poste de programmeur est généralement celui d’ un professionnel engagé pour produire le code d’un programme informatique . Cela impliquera que vous sachiez écrire du code , que vous puissiez comprendre un algorithme et suivre les spécifications . Cependant, cela s’arrête généralement là en termes de responsabilité.
Un poste de développeur est généralement considéré comme un super-type du poste de programmeur . Il englobe les mêmes responsabilités, ainsi que la capacité de concevoir et d'architecter un composant logiciel et de rédiger la documentation technique correspondante (y compris les spécifications). Vous êtes capable - au moins techniquement - de diriger les autres (donc les programmeurs), mais pas nécessairement une équipe (ça vient du fuzz ...)
Un poste d' ingénieur implique généralement que vous êtes un développeur possédant un type de diplôme spécifique , une certaine connaissance en ingénierie et capable de concevoir un système (par exemple, une combinaison de composants / modules logiciels qui forment ensemble une entité logicielle complète). . En gros, vous voyez une image plus large , vous êtes capable de la concevoir, de l'expliquer et de la séparer en modules plus petits .
Cependant, tout cela est discutable , et comme je l'ai dit, il n'y a aucune exigence légale à ma connaissance dans les pays américains et britanniques . Cela étant dit, en France, vous ne pouvez vous appeler un "ingénieur" que si vous venez d'une école d'ingénieur (reconnue par la Commission des titres d'ingénieurs ou quelque chose du genre). Vous ne pouvez pas dire que vous avez un "diplôme d'ingénieur", mais vous pouvez dire que vous avez un "diplôme d'ingénieur" si vous avez étudié une discipline qui relève du portefeuille du génie et des technologies.
Peut-être que certains pays ont une distinction similaire, je ne sais pas vraiment.
Revenons au titre d'ingénieur en logiciel ... Un jour, un de mes professeurs a dit à notre classe - et à juste titre - qu'il n'existe pas à ce jour de telle chose que l'on appelle le "génie logiciel" . Parce que l’ingénierie de quelque chose (qu’il s’agisse d’un bâtiment, d’un véhicule, d’un équipement informatique…) signifie que vous êtes capable d’envisager sa conception et toutes les phases de sa production, et de prévoir avec précision les ressources dont vous aurez besoin, et donc le coût de la production.
Cela est vrai de la plupart des "vraies" disciplines d'ingénierie. Il y a bien sûr des fluctuations (les prix des matériaux vont varier dans le temps, par exemple), mais il existe des modèles théoriques très finis (pour la conception et la planification) et des modèles empiriques (pour garder pratiquement les premiers dans des contraintes accessibles) qui vous permettent de prédire la date de fin d'un projet et son utilisation des ressources.
Le principal problème des logiciels est qu’ils ne sont pas encore disponibles. Nous voulons viser le génie logiciel, mais nous n'y sommes pas encore. Parce que nous avons un environnement très fluide et dynamique, des contraintes de projet très variables et un manque de maturité rétrospectif dans nos processus. Certes, nous pourrions dire que nous y arrivons mieux (très discutable avec les données matérielles, cependant), mais nous ne le faisons que depuis les années 60 (les projets antérieurs étaient en réalité plus proches des ordinateurs uniquement matériels, donc plus proches de la véritable ingénierie, paradoxalement. ). Alors que nous construisons des véhicules à moteur depuis plus d’un siècle, des véhicules en général depuis quelques millénaires et encore plus depuis des millénaires (et que nous en avons été très bons dans certaines parties du monde, nous avons '
Nous ne parvenons pas à prévoir systématiquement les délais avec précision , nous ne parvenons pas à prévoir systématiquement les coûts avec précision , nous ne parvenons pas à identifier et à atténuer systématiquement les risques inhérents et externes de manière efficace et déterministe . Le mieux que nous puissions faire est de produire des estimations suffisamment précises et de prendre en compte certains tampons, tout en essayant d'optimiser les processus afin de réduire les cycles et les frais généraux.
Mais voyez, c'est peut-être ce que l'ingénierie est. Et c'est ce que, quand on parle d'un "ingénieur logiciel", ils devraient penser et viser.
Cela semble donc difficilement interchangeable avec le simple acte de la programmation, ou l'acte plus avancé du développement d'applications.
Pourtant, tout est affaire de tendances. Dernièrement, il est assez courant d'avoir une équipe de développement horizontale où chaque membre de l'équipe est un développeur logiciel senior (oui, les capitales, car cela nous donne le sentiment d'être spécial, n'est-ce pas?), Sans distinction réelle d'âge (assez juste, dans mon cas). opinion) et pas tant de distinction entre compétences (uh-oh ...) et responsabilités (maintenant ça ne peut pas être bon, sauf pour le buzz des relations publiques).
C'est aussi parfois juste une force d'habitude et spécifique à la culture et au jargon de l'industrie. Plus de postes pour la production de logiciels embarqués utilisent des titres pour les ingénieurs en logiciel. Principalement parce que cela impliquerait probablement que vous devrez toujours traiter dans une certaine mesure le matériel informatique dans ce domaine, vous devez donc évidemment traiter d'autres aspects de la production et de l'ensemble du "système" que vous produisez. Pas seulement les morceaux qui deviennent fous à l'intérieur. D'autre part, vous ne voyez pas vraiment le terme ingénieur utilisé dans les postes de production de logiciels financiers. C’est soit parce qu’il s’agit d’une évolution mimétique de cette industrie par rapport à l’un de ses prédécesseurs (l’ingénierie intégrée, par exemple, trouve ses racines dans l’ingénierie automobile), soit parce qu’ils veulent simplement accorder plus ou moins de crédit à une position.
Et pour être sûr de perdre tout le monde dans le brouillard, vous trouverez ensuite d'autres titres mélangeant les deux (comme "Ingénieur en développement logiciel" ou "Ingénieur en logiciel en test"!), Puis d'autres soulignant des ponts encore plus fous avec d'autres domaines ( penser à «architecte logiciel» et à la façon dont «architecture logicielle» pourrait être un vol éhonté de vocabulaire). Et gardez-les à l’avenir: ingénieur de publication, responsable du développement du changement, ingénieur de compilation (celui-ci est également affiché ffaaarrrrrr). Et parfois simplement simplement "ingénieur".
J'espère que cela a aidé, même si ce n'est pas vraiment une réponse.
Oh, et cela signifie que votre nouvelle société essaie de vous attirer avec un nouveau titre, ou qu'elle se fiche complètement des titres, ou que vous allez vraiment occuper un poste de niveau supérieur. La seule façon de le savoir est de lire votre cahier des charges, de leur parler et éventuellement de tenter votre chance et de juger vous-même. J'espère que c'est la dernière option et que vous en êtes satisfait (et potentiellement plus rentable). ;)
Les ingénieurs en logiciel sont des personnes qui travaillent dans des entreprises qui appellent ceux qui écrivent des logiciels pour eux des «ingénieurs en logiciel».
Les programmeurs sont des personnes travaillant dans des entreprises appelant ceux qui leur écrivent des logiciels, des "programmeurs".
Il existe également des développeurs ou des développeurs de logiciels . Ce sont des personnes qui travaillent dans des entreprises qui appellent les personnes qui leur écrivent des logiciels «développeurs» ou «développeurs de logiciels», respectivement.
Donc, il y a le "Software Engineer", le "Programmeur", et aussi le "Développeur", "Codeur" et vous ne pouvez jamais oublier le "SOA expert"
Ce sont tous des termes de marketing pour les personnes qui ne peuvent pas dire quelque chose de significatif dans leur CV, telles que leur rôle réel (pas seulement le titre du poste) dans les postes précédents.
Sur les offres d'emploi, la différence réside dans la personne des ressources humaines.
En bout de ligne: chaque personne a sa propre opinion sur "ce qui fait un bon employé qui travaille avec du code", et certains aiment associer telle ou telle compétence à tel ou tel titre.
Qu'as tu besoin de faire? Les offres d'emploi doivent décrire les compétences requises et les CV doivent expliquer les détails de l'expérience du candidat.
Pas de différences. Ce sont les mêmes choses. Toutefois, les entreprises peuvent avoir des descriptions de travail formelles utilisant les termes, ce qui peut ensuite avoir une signification spécifique à l’entreprise.
Cela dépend vraiment de la manière dont l'entreprise définit les positions. En tant qu’ingénieur logiciel, il se peut que vous disposiez de plus de possibilités de décision en matière de conception, alors qu’en tant que développeur, ils vous donneraient des diagrammes UML et vous écririez le programme.
Mais, il n’existe pas de définition précise de la situation, de sorte que les gens sachent ce que vous faites ou quelle est votre expérience en fonction du titre.
Quand j'étais architecte / développeur, mon titre était informaticien, mais je voulais simplement dire aux gens que j'étais programmeur, car les deux premiers ne sont pas facilement définis, mais la plupart des gens savent ce que fait un programmeur.
Si un titre est important pour vous, acceptez le nouveau, car Ingénieur sonne plus haut qu'un développeur.
Je ne pense pas qu'il y ait de "différences officielles", pour mon expérience cela pourrait signifier:
Aussi, sont aussi des termes de mode qui changent ... Le terme était "programmeur", puis "ingénieur logiciel" et apparaît maintenant comme "développeur" ...
Il est préférable de lire la description du poste ou à quelqu'un de l'entreprise spécifique
Dans certaines juridictions, "ingénieur" implique l'obligation d'être un ingénieur professionnel, c'est-à-dire d'avoir un ingénieur en ingénierie. désigation parmi ses références. Cependant, dans d'autres domaines, il n'y a peut-être pas une telle différence, car j'étais un "ingénieur concepteur de logiciels" travaillant dans l'État de Washington il y a quelques années.
Les ingénieurs en logiciel ont tendance à travailler sur des systèmes très volumineux, ce qui prend plusieurs années, par exemple 5 à 16 ans. Les programmeurs ont tendance à avoir ce stéréotype de simplement coder et rien d'autre. Mais cela dépend vraiment de l'organisation dans laquelle vous travaillez et de la manière dont les ressources humaines commercialisent le rôle, comme expliqué ci-dessus. Ils sont essentiellement la même chose. Ne vous attachez pas trop à un titre, car il en va de même.