Qu'est-ce qui doit changer pour que le génie logiciel devienne une profession formelle?

11

Contrairement à d'autres professions (comme la comptabilité, le droit, la médecine, etc.), il n'y a pas de certification à l'échelle de la profession pour le génie logiciel.

Je connais bien la multitude de certifications spécifiques à la technologie et à la méthodologie qui visent à servir de preuve de spécialisation et d'expérience, mais il n'y a pas de société publique d'ingénierie logicielle / d'organe directeur qui établit (et a le pouvoir d'évaluer légalement) les normes professionnelles généralement acceptées .

Je comprends que le logiciel est une bête dynamique - c'est en partie de l'art, en partie de la science - mais je me demande si le génie logiciel a le potentiel pour devenir une profession formelle.

Qu'est-ce qui doit changer pour que cela se produise et serait-ce même une bonne chose?

(Si quelqu'un connaît la recherche formelle sur ce sujet, j'apprécierais grandement les références)



Mise à jour

Je suis d'accord avec bon nombre des bons points soulevés ci-dessous concernant le niveau actuel de certification en génie logiciel. Je trouve également très intéressant que certains pays traitent le génie logiciel comme une profession tandis que d'autres ne le font pas.

Il semble cependant qu'il y ait un peu de linceul autour du terme «profession formelle» et de la manière dont il s'appliquerait au génie logiciel. Je pense que le problème clé du génie logiciel - et la principale raison pour laquelle ce n'est pas une profession à part entière - est que si vous êtes un ingénieur logiciel certifié, et - par exemple - certains logiciels que vous avez écrits pour un dysfonctionnement d'ascenseur et tuent des gens, votre certification et / ou votre adhésion à un organisme professionnel officiel ne sera pas révoquée.

Bien sûr, votre entreprise pourrait être poursuivie pour des millions, et vous pourriez personnellement perdre votre emploi et gagner une mauvaise référence, mais en règle générale, vous êtes personnellement protégé par le bouclier de la responsabilité limitée du fait d'être employé par ladite entreprise. En d'autres termes, et pour autant que je sache, il n'y a pas d'évaluation / d'application légale en place (contrairement aux autres professions formelles et à leurs sociétés gouvernantes) qui ont le mandat de vous interdire officiellement de faire du commerce une fois que vous avez fait un bourrage colossal .

J'ai bien aimé la réponse qui touchait au fait que le génie logiciel - en l'état - est une méritocratie, qui n'a pas besoin d'être une profession formelle, et que c'est une bonne chose qui ne devrait pas changer. Dans le même temps, je pense que nous devons faire une distinction claire entre les ingénieurs logiciels de logiciels critiques et les développeurs de logiciels divers / non critiques.

Pour ceux d'entre vous qui travaillent / ont travaillé sur des logiciels critiques - y a-t-il une responsabilité personnelle? Il y a sûrement un besoin de répercussions formelles dans le cas où l'ingénieur logiciel commettrait une erreur coûteuse?

Kosta Kontos
la source
3
Quels sont les avantages de devenir une profession formelle?
Pieter B
1
Très localisé. Ici au Québec, vous devez faire partie de l'ordre des ingénieurs pour pouvoir être appelé ingénieur. Les mêmes règles s'appliquent pour l'ingénieur logiciel. Livré avec le code d'éthique, les règles, l'assurance responsabilité civile, etc.
Jean-François Côté
5
Blouses de laboratoire, évidemment. Avec des liens.
Ben Brocka
2
@Pieter B: Comment vous sentiriez-vous à l'idée de voir un médecin s'il n'y avait pas de profession formelle garantissant une norme que chaque médecin doit respecter?
Giorgio
1
J'ai voté pour rouvrir cette question. Il ne s'agit pas d'un double de «Les ingénieurs logiciels peuvent-ils devenir des ingénieurs professionnels certifiés?»: Cette question porte sur les choix de carrière compte tenu de l' état actuel de la profession. Cette question porte sur l' écart entre ce statut et un état souhaité perçu, et comment agir pour combler cet écart. Ce sont différents sujets.

Réponses:

15

D'après les informations disponibles, je pense que le génie logiciel est déjà une profession formelle. Il peut ne pas être largement accepté en tant que tel, mais il répond aux critères généralement acceptés pour les caractéristiques d'une profession.

Extrait de l'article de Wikipédia sur la profession :

Il existe un accord considérable sur la définition des caractéristiques d'une profession. Ils ont une "association professionnelle, une base cognitive, une formation institutionnalisée, des licences, l'autonomie de travail, le contrôle des collègues ... (et) un code d'éthique", [18] auquel Larson ajoute ensuite, "des normes élevées d'excellence professionnelle et intellectuelle, »(Larson, p. 221) que« les professions sont des professions dotées d'un pouvoir et d'un prestige particuliers »(Larson, px) et qu'elles constituent« un groupe d'élite exclusif »(Larson, p. 20) dans toutes les sociétés.

Ceci cite abondamment The Rise of Professionalism: A Sociological Analysis de Magali Sarfatti Larson . La recherche des «caractéristiques d'une profession» conduit généralement à des résultats similaires.

Comment le génie logiciel se compare-t-il à ces caractéristiques?

  • Association professionnelle Il existe de nombreuses associations professionnelles pour les ingénieurs logiciels. L' IEEE et plus particulièrement l' IEEE Computer Society sont au service des professionnels de l'ingénierie du monde entier, l'IEEE Computer Society se concentrant spécifiquement sur les ingénieurs en informatique et en logiciels. L' ACM est une autre organisation professionnelle pour les professionnels travaillant dans l'informatique, généralement dans les Amériques. Il y a aussi la British Computer Society , qui s'occupe de divers aspects des professions des technologies de l'information et de la communication, généralement au Royaume-Uni.

  • Base cognitive L'ensemble des connaissances en génie logiciel est parrainé par l'IEEE, Boeing, le Conseil national de recherches Canada, Raytheon, Construx Software, le Conseil canadien des ingénieurs, la MITRE Corporation, le NIST, Rational, SAP (pour la version 2004). Il a été lancé spécifiquement comme une étape vers "faire du génie logiciel une discipline d'ingénierie légitime et une profession reconnue" .

  • Institutionnalisés Formation Aux États-Unis, Technologies de l' information, sciences informatiques et programmes de génie logiciel peut être accrédité par ABET . Au Canada, les programmes d'informatique et de génie logiciel sont accrédités par le CIPS . Ces organisations définissent des normes minimales et des résultats attendus pour les étudiants diplômés d'un programme accrédité afin de leur permettre de fonctionner dans un environnement professionnel. L'IEEE propose également deux examens basés sur le corpus de connaissances en génie logiciel - l' examen Certified Software Development Associate pour les étudiants de premier cycle (ou récemment diplômés) et l' examen Certified Software Development Professional pour les professionnels en milieu de carrière.

  • Licences Depuis avril 2013, le NCEES propose un examen d'ingénierie professionnelle en génie logiciel . Il est proposé État par État aux États-Unis. Cependant, l'examen Software Engineering PE n'est pas actuellement proposé par tous les États, et encore moins nécessitent la licence. Cet article, publié dans le numéro de novembre / décembre 1999 du logiciel IEEE, discute des exigences en matière de licences dans l'État du Texas et une brève discussion sur les licences en Ontario et en Colombie-Britannique, au Canada et au Royaume-Uni. Au Texas, une licence est uniquement requise pour travailler sur la conception, les tests ou la mise en œuvre de systèmes embarqués ou en temps réel qui "nécessitent une compréhension détaillée des composants électriques ou mécaniques conçus" et pour les systèmes logiciels pour "les appareils mécaniques, les appareils électriques" et systèmes d'alimentation "- une quantité relativement faible de travail de développement de logiciels. Dans les États qui proposent des licences, le pire des cas est une action disciplinaire, des sanctions ou la perte de votre licence si un client ou un employeur dépose une plainte. Cependant, le seul vrai préjudice vient des États qui exigent une licence - à moins que la licence ne soit requise pour faire le travail, la perdre ne signifie rien.

  • Code d'éthique L'ACM et l'IEEE Computer Society ont créé un code d'éthique et de pratique professionnelle en génie logiciel . Aux États-Unis, les diplômés des programmes d'ingénierie accrédités ABET, y compris les programmes de génie logiciel, peuvent également rejoindre l' Ordre de l'ingénieur , qui maintient un code d'éthique qui s'applique généralement aux ingénieurs professionnels.

  • Autonomie de travail, contrôle des collègues, normes élevées d'excellence professionnelle et intellectuelle Ces éléments sont souvent visibles dans un environnement où le génie logiciel est traité comme une discipline d'ingénierie. C'est-à-dire que tous les employeurs (ou pigistes) ne traitent pas le développement de logiciels comme de l'ingénierie.

Thomas Owens
la source
6
90%, ou j'irais même jusqu'à dire que 99% des programmeurs ne savent probablement même pas que IEEE CS existe. Si 99% des médecins n'appartenaient pas à l'AMA, j'aurais beaucoup moins confiance en la profession.
Jonathan Rich
3
@JonathanRich - Tout le monde que je connaissais à l'université a rejoint au moins l'IEEE. Où avez-vous trouvé vos numéros? Vous vous êtes connecté à IEEE donc vous avez réellement des numéros d'abonnement réels?
Ramhound
2
@Ramhound: Quand j'étais à l'université, les gens étaient au courant de l'IEEE mais peu semblaient y adhérer. Là encore, mon école avait une science informatique programme, pas un génie logiciel programme, d' autres écoles ont programmation informatique cours. Très peu d'entre eux avaient le génie logiciel , bien que cela commence à changer à mesure que les écoles obtiennent l'accréditation pour leurs cours. De plus, nous n'étions pas aux États-Unis, je ne sais pas si cela a un impact sur la participation à l'IEEE.
FrustratedWithFormsDesigner
11
@JonathanRich, 90% des programmeurs ne sont pas des ingénieurs logiciels.
Philip
6
@Philip Et c'est là que réside le problème. Êtes-vous programmeur? Un développeur? Un développeur de logiciels? Un ingénieur logiciel? Un analyste de systèmes? Lesquels sont professionnels et lesquels ne le sont pas? Avez-vous besoin d'un ingénieur logiciel pour configurer votre site WordPress? Devriez-vous laisser un développeur se rapprocher de votre plate-forme interne de stockage de données? Je souhaite beaucoup que le génie logiciel ait été abordé de manière plus professionnelle que 90% des personnes avec qui j'ai travaillé, mais quand vous avez des gens qui veulent payer un DBA moins cher que le gars qui tond votre pelouse, vous n'êtes pas va obtenir les meilleures personnes.
Jonathan Rich
4

Un organisme professionnel largement établi et accepté pour les développeurs de logiciels / ingénieurs / architectes / etc. ne serait pas une bonne chose.

Actuellement, il s'agit de l'un des rares domaines pouvant faire office de méritocratie. Comme dans, peu m'importe quel degré vous avez (ou si vous en avez un), combien d'ancienneté vous avez, quelles langues vous connaissez, etc. Il est relativement facile de savoir si vous êtes un bon développeur ou non , et à la fin de la journée, c'est la seule chose qui compte. ie pouvez-vous faire avancer les choses?

Actuellement, vous êtes mesuré par votre capacité, et non par une accréditation que quelqu'un vous a accordée. Et c'est une bonne chose, bonne (tm).

MrFox
la source
2
La similitude avec la prostitution est légèrement déconcertante ....
mattnz
@mattnz C'est ce qu'on appelle la prostitution intellectuelle, et mon taux horaire est probablement inférieur au type traditionnel.
MrFox
Merci pour la réponse perspicace @MrFox. J'aimerais revenir un peu plus loin sur votre cerveau si vous le permettez. Si les médecins / comptables / avocats font une erreur critique / coûteuse, ils risquent de perdre leur certification et d'être empêchés de poursuivre leurs échanges. Les ingénieurs logiciels, en revanche, ne sont pas exposés à un tel risque, car ils risquent rarement de perdre de l'argent (en raison de la responsabilité limitée qui leur est accordée par les entreprises pour lesquelles ils sont employés). Tout ce qu'ils ont à perdre, c'est leur emploi actuel et leur réputation. À la lumière de cela, pensez-vous qu'il serait logique d'avoir une société formelle pour régir les meilleures pratiques en génie logiciel?
Kosta Kontos
2
@KostaKontos Considérez ce que cela signifierait dans le monde réel - vous obtiendriez des violations si vous n'écriviez pas de tests unitaires ou si vous n'aviez pas la documentation suffisante? Ou perdriez-vous la licence si vous poussiez le code vers un environnement de production avec une faille de sécurité? Serait-ce une bonne chose pour le terrain? Mon argument est que cela ajouterait beaucoup de paperasserie, de politique, de blâme et ne ferait que gonfler les bénéfices des compagnies d'assurance par le biais de chaque développeur devant acheter une assurance contre la faute professionnelle. C'est une pensée intéressante cependant. Je parie que cela ne s'est pas encore produit parce que poursuivre vos propres ingénieurs est une mauvaise idée.
MrFox
0

Rien ne doit changer.

Comme l'a souligné Thomas , le génie logiciel est déjà un métier. On peut l'appeler l' ingénierie, la programmation, le piratage, et / ou l' artisanat, mais il est comme profession et beaucoup de gens font de l' argent sur elle.

Je pense que votre question concerne les licences.

À l'heure actuelle, il n'existe aucune licence officielle pour l'ingénierie logicielle. Toute personne possédant suffisamment d'intelligence et de capacité de programmation peut être embauchée et payée pour la création de code plutôt que sur une machine ou un appareil.

Cela ne ressemble à aucune autre industrie (le droit et la médecine étant des exemples cités dans la question). Une licence est requise pour ces professions. Tout le monde peut conduire une voiture, mais pour en conduire une légalement, vous devez avoir une licence Dirvers en est un autre exemple. Tout le monde peut programmer, aucune licence ou certification requise.

Maintenant, je crois que l'octroi de licences est bon car il prouve que quelqu'un a la capacité de faire quelque chose (comme conduire une voiture) et connaît les tenants et aboutissants des règles (de la route).

Une licence similaire pourrait être requise pour le génie logiciel, mais je ne pense pas que cela ferait beaucoup de bien. En fait, il existe de nombreux pilotes sous licence qui sont des pilotes horribles, alors juste parce que vous avez une licence ne signifie pas que vous êtes un bon pilote ou programmeur.

Une licence crée une barrière à l'entrée, ce qui dans ce secteur ne serait pas une bonne chose, donc je ne vois aucun avantage perçu d'une telle licence.

Les entreprises qui embauchent des ingénieurs logiciels devraient définitivement tester la capacité de ce programmeur potentiel avec un "test de programmation" (et je ne parle pas du type de buzz fizz) en fonction de l'ensemble de compétences nécessaire. Les programmeurs avec des "certifications" ont l'air bien sur le papier, mais ils devraient vraiment être mis à l'épreuve avec un test du monde réel pour évaluer l'expérience et l'aptitude.

Jon Raynor
la source
2
"Les programmeurs avec des" certifications "ont fière allure sur le papier", non.
Philip
0

Je pense qu'il devrait être possible de devenir un développeur de logiciels certifié en passant un examen comme un avocat passe un examen du barreau. Je pense également que les programmeurs non certifiés devraient toujours pouvoir fonctionner en tant que programmeurs. La différence est que les employeurs pourraient faire de la publicité spécifiquement pour les programmeurs certifiés si c'est ce qu'ils veulent, et un programmeur certifié viendrait avec certaines garanties de responsabilité, ainsi qu'un prix plus élevé.

Je suis d'accord avec l'affiche qui dit que le développement de logiciels est un gâchis sans responsabilité. Je ne pense pas que cela doive être ainsi. Il y a des développeurs qui veulent créer de bons logiciels et sont prêts à en être responsables. Nous avons juste besoin d'un moyen de nous distinguer.

Je développe des logiciels depuis plus de 20 ans. Je ne prétends pas que cela fait de moi un excellent développeur en soi, mais je pense que je suis un assez bon développeur. Le problème est que je dois constamment démontrer pourquoi je suis un meilleur développeur que chaque enfant qui a appris la programmation pendant son temps libre et veut le même travail que moi. Sans parler des légions de développeurs "offshore" qui promettent de faire le même travail pour une fraction de l'argent. Pour l'instant, cela demande beaucoup d'efforts. Je dois fournir des échantillons de travail, des références, passer des tests, faire des entretiens. Je pourrais facilement passer une mauvaise journée, faire une erreur lors d'un test et être disqualifié. Je préfère simplement dire: "oui, je suis un développeur certifié et voici mon certificat". Je devrais encore faire des interviews, mais au moins je ne ferais que rivaliser avec d'autres développeurs certifiés.

user92238
la source
Merci pour la réponse perspicace. Pensez-vous qu'il devrait y avoir un minimum d'expérience de travail requise avant que les développeurs puissent passer leur "examen du barreau"? Semblable à la façon dont les avocats / comptables doivent compléter deux à trois ans d'articles. Et s'il y avait cette exigence minimale, pensez-vous que le travail lui-même devrait être normalisé dans une certaine mesure, afin d'assurer la cohérence de l'expérience acquise dans l'ensemble de la profession?
Kosta Kontos
-2

Elle ne le sera jamais, du moins pas entièrement. Le logiciel est un médium, comme la peinture. Il y a des gens qui font des travaux de peinture à l'échelle industrielle de grandes structures, il y a des gens qui conçoivent de nouvelles peintures pour exécuter des normes élevées, mais il y a aussi des gens qui achètent de la peinture pour faire des travaux à petite échelle comme peindre leur hangar, et d'autres encore qui pourraient mélanger leur propre peinture, mais il suffit de l'utiliser pour peindre des photos de chats.

De même, même si je pouvais voir un avenir où les logiciels essentiels à la sécurité et / ou financiers auraient besoin d'ingénieurs accrédités pour y travailler, il n'y aurait jamais besoin de personnes produisant des logiciels d'art ou de divertissement. Que faut-il changer pour obtenir les logiciels de sécurité ou financiers nécessaires pour avoir des ingénieurs accrédités? Tout comme ces autres professions, il faudrait une loi pour le rendre obligatoire.

jk.
la source
4
En quoi est-ce différent des autres disciplines d'ingénierie? Prenons le génie civil. N'importe qui peut construire un pont dans sa pelouse surplombant un ruisseau. Mais tout le monde ne peut pas construire un pont routier sur un lac. Je pense que cela peut également s'appliquer à de nombreuses autres disciplines du génie, et il est communément admis que le génie est une profession.
Thomas Owens
@ThomasOwens, c'est vrai, mais avec le logiciel, nous n'avons pas vraiment de partie formelle «tout le monde ne peut pas construire un pont routier», cela viendra cependant
jk.
2
Ce n'est pas vrai. Tout le monde ne peut pas construire le logiciel avionique pour un avion de ligne commercial. Ou le logiciel de contrôle d'une machine de radiothérapie. Il existe de nombreux logiciels contrôlés, réglementés et il doit y avoir certaines normes. Cependant, jusqu'à plus récemment, il n'y avait pas les mêmes licences qui vont avec d'autres disciplines d'ingénierie.
Thomas Owens
1
@ThomasOwens En tant qu'ingénieur logiciel travaillant sur un logiciel avionique pour un avion de ligne commercial (OBIGGS), oui, en fait, n'importe qui pourrait probablement construire cela. Le logiciel n'est pas si compliqué. Mais les clients sont VRAIMENT pointilleux quant à sa robustesse et à sa certitude qu'elle n'explose pas. Tout comme n'importe qui pourrait mal construire un pont, n'importe qui pourrait probablement mal coder une unité OBIGGS. L'aspect professionnel vient avec les tests, le processus, la lutte contre le DO-178b et la capacité de montrer avec confiance qu'il ne tombera pas du ciel lorsqu'il franchira la ligne de date internationale.
Philip
3
"il n'y a pas d'analogue de la physique dans les logiciels": il y en a, cela s'appelle les mathématiques ou une autre méthode formelle. Et en fait, pour les logiciels critiques, la majeure partie du travail est consacrée à la spécification, à la vérification et aux tests, et seulement 10% du travail va au codage proprement dit. Seuls les logiciels non critiques peuvent être développés de manière agile, par essais et erreurs (comme on construirait un pont dans leur pelouse arrière), mais essayez d'utiliser la même méthode pour construire des logiciels avioniques!
Giorgio
-2

Le logiciel n'est pas une profession et ne le sera jamais.

"Une profession naît lorsqu'un métier ou une profession se transforme par le développement de qualifications formelles basées sur l'éducation, l'apprentissage et les examens, l'émergence d'organismes de réglementation ayant le pouvoir d'admettre et de discipliner les membres et certains degrés de monopole."

Cette description ne correspond pas du tout au logiciel.

Tout d'abord, toute personne intéressée par les logiciels peut sortir et essayer de trouver un travail de développement de logiciels. Beaucoup de ces personnes ont des diplômes universitaires sans aucun rapport avec la programmation informatique et beaucoup n'ont aucun diplôme du tout. Rien n'empêche aucun de ces groupes de devenir programmeurs de logiciels.

Les logiciels ne peuvent pas devenir une profession parce que les membres "licenciés" deviennent responsables des dommages qu'ils causent et de leur faute professionnelle. 80-90% des développeurs perdront leur emploi dans quelques années pour celui-là seul.

En général, la qualité des logiciels est atroce, sujette aux bogues et tout simplement pas très bien faite. Est-ce digne d'être une profession? Prévoyez-vous cet arrêt parce que les gens obtiennent une licence? Si une organisation professionnelle ne défend pas des normes élevées et une qualité professionnelle, cela ne sert à rien. Cela va directement à l'encontre des pratiques de l'industrie. L'écriture de logiciels de qualité, robustes et fonctionnels est contraire aux principes de la plupart des entreprises, car le délai de mise sur le marché, le coût, c'est assez bon, je ne veux rien casser d'autre en essayant de réparer les logiciels cassés est considéré comme plus important que les logiciels de qualité professionnelle.

En ce qui concerne également les fautes professionnelles. Comment allez-vous prouver qu'un développeur contre un autre est à blâmer. Dans le logiciel, il est facile de pointer du doigt et les deux développeurs "ont raison". Qui est à blâmer lorsque ce développeur utilise l'API non documentée cachée dans les entrailles du système d'exploitation, puis que le fournisseur du système d'exploitation modifie sa fonction ou la supprime?

Bonne chance avec cette affaire d'organisme de réglementation. Voyons le congrès dire non à Microsoft lorsque Microsoft leur demande de supprimer ce projet de loi, car il ne leur permettra d'engager que des développeurs "sous licence". Sans cet organisme de réglementation, alors qui va rejoindre une organisation qui a le droit de vous discipliner et de vous facturer des cotisations, surtout s'il n'y a pas de valeur ajoutée comme l'obtention de droits de monopole sans l'organisme de réglementation.

Quant à, serait-ce une bonne chose d'exiger une licence? Absolument, pour ceux qui peuvent être accrédités. Votre salaire augmenterait considérablement avec votre nouveau monopole.

Cependant, pour tout le monde ... l'utilisation de la technologie informatique dans les entreprises diminuerait probablement avec le rythme rapide des progrès que nous constatons de nos jours. Il y aura certainement des obstacles aux nouvelles avancées logicielles, telles que les langages et les méthodologies de conception. Après tout, qui va vouloir pousser de nouvelles façons de faire qui nécessiteront des années de recyclage afin de maintenir votre licence. La plupart des développeurs sous licence préféreront garder les choses telles qu'elles sont à cet égard.

Tremper
la source
ajoutez quelques références pour soutenir vos affirmations (qui ont un certain sens pour moi mais cela n'a pas d'importance), et je supprimerai le downvote
gnat