Oncle Bob propose un serment pour les développeurs, comme en ont d'autres professions, au vu de l'importance que prend ce métier.
Il y a un an, Robert C. Martin, connu sous le diminutif d'Oncle Bob, relevait l'importance du développeur dans ses écrits :
Nous dominons le monde. ...
Rien ne se passe dans notre société sans que du logiciel soit impliqué. Rien...
Sans le logiciel, les téléphones ne sonnent pas. Les voitures ne démarrent pas. Les avions ne volent pas. Les bombes n'explosent pas. Les bateaux ne naviguent pas. Les fours ne cuisent pas. Les portes de garage ne s'ouvrent pas. La monnaie ne s'échange pas. L'électricité ne se génère pas. Et nous ne trouvons pas notre chemin vers le supermarché. …
Martin continue en observant qu'avoir une telle importance dans la société devrait impliquer que les développeurs soient responsabilisés et suivent un code d'éthique, afin d'utiliser le pouvoir qu'ils ont pour le bien de la société. Les développeurs devraient décider de ce qui devrait être leur responsabilité et ne devraient pas se la voir imposer par des gouvernements ou leurs employeurs. Et il a esquissé un code d'éthique inspiré par celui de l'Ordre des Ingénieurs. Un an plus tard, Martin écrit à nouveau sur l'éthique, cette fois plus à propos de la qualité du code écrit, proposant le Serment du Développeur que chaque membre devrait jurer pour "défendre et préserver l'honneur de la profession" :
Je ne produirai pas de code dangereux.
Le code que je produis sera toujours mon meilleur travail. Je ne déploierai pas sciemment de code défectueux dans son comportement ou sa structure.
Je produirai, avec chaque release, une preuve rapide et répétable que chaque élément du code fonctionne comme il devrait.
Je ferai des releases fréquentes et petites afin de ne pas gêner l'avancée de tiers.
J'améliorerai sans peur et sans relâche le code à chaque opportunité. Je ne dégraderai jamais la qualité du code.
Je ferai tout ce que je peux pour conserver ma productivité et celle des autres aussi haute que possible. Je ne ferai rien qui abaisse cette productivité.
Je m'assurerai constamment que les autres peuvent me couvrir et que je peux les couvrir.
Je produirai des estimations qui sont honnêtes, à la fois en échelle et en précision. Je ne ferai pas de promesses sans être certain.
Je ne cesserai jamais d'apprendre et d'améliorer mon art.
La propositon de Bob Martin a vu des réactions variées sur Twitter, allant de :
@klenkes74 : Je m'attendrai à ce que mon employeur me renvoie si j'applique strictement ces règles.
@QuiteVague : La plupart des développeurs ne sont pas en position d'appliquer ceci - l'équilibre entre la qualité et les besoins du business n'est pas entre leurs mains... J'ai remonté presque tout cela à une variété de managers. Et comme j'ai dit, on gagne sur certains points, on perd sur d'autres :)
@DamienPetrilli : Très utopique, complètement inapplicable dans la vie réelle pour la plupart d'entre nous.
@asthasr : #9 est le seul valide. Les autres sont impossibles ("preuves") ou s'appuient sur des facteurs externes sur lesquels nous n'avons aucun contrôle.
@sleepyfox : Je dirai que #8 est impossible à appliquer à cause de l'incertitude inhérente. Une estimation est au mieux une hypothèse, pas une promesse.
à :
@brianvhughes : #5 est un espoir au mieux. #8 est impossible. Mais tout n'est pas mauvais.
@simonbrown : "Je ne cesserai jamais d'apprendre et d'améliorer mon art." <- yes !
@Khris_Fernandez : J'aimerais qu'on signe tous ça dans chaque projet pour lequel je travaille à partir de maintenant ! Malheureusement, d'autres ne le feront jamais. En tout cas, merci Bob.
@GGrell : J'ai ri, j'ai pleuré, je me suis réjoui. C'est une partie de ce que je vise quand j'écris du code tout les jours.
Répondant à certains de ceux peu convaincus du besoin d'un serment, Martin a argumenté que les ingénieurs logiciels devraient avoir des responsabilités éthiques Et comme les médecins, les avocats et les ingénieurs, ils devraient avoir un serment, qui est "dogmatique par définition".
Sur le même propos, les fondateurs de Rugged Software ont écrit il y a quelques années le Rugged Manifesto ("Manifeste Robuste"), une collection de principes que les développeurs sont invités à suivre :
Je suis robuste et, plus important, mon code est robuste.
Je reconnais que le logiciel est devenu une fondation de notre monde moderne.
Je reconnais l'énorme responsabilité qui accompagne ce rôle de fondation.
Je reconnais que mon code sera utilisé de manières que je ne peux pas anticiper, pour lesquelles il n'a pas été conçu, et pour plus longtemps qu'il n'aura jamais été prévu.
Je reconnais que mon code sera attaqué par de talentueux et persistants adversaires qui menacent notre sécurité physique, économique et nationale.
Je reconnais ces faits et je choisis d'être robuste.
Je suis robuste parce que je refuse d'être source de vulnérabilités ou de faiblesses.
Je suis robuste parce que j'assure que mon code supportera sa mission.
Je suis robuste parce que mon code peut faire face à ces challenges et persister malgré eux.
Je suis robuste, pas parce que c'est facile, mais parce que c'est nécessaire et je suis prêt à relever le défi.
Serment ou pas, suivre les lignes directrices d'un manifeste ou pas, peut être que tout le monde est d'accord pour dire que les ingénieurs logiciels devraient viser à écrire du bon code. Ce que cela signifie exactement et comment le faire, c'est une autre histoire.