Pour avoir le droit de mériter le titre de professionnel, et que nos décisions ne soient plus discutées et remises en compte par des personnes sans connaissances techniques, nous devons dans un premier temps suivre un code de conduite nous rendant responsables. Cette attitude permet de changer la vision que le monde a de nous, et de là, rendre caduques les relations de force qui jusque là animaient nos relations avec les différents intervenants des projets.
Nous reconnaissons notre responsabilité éthique dans ce que nous codons, et nous avons le droit de refuser ce qui est contraire à nos valeurs.
Notre profession a une certaine responsabilité dans le monde qui nous entoure : nous produisons des logiciels ayant un impact sur grand nombre d'aspects de la vie quotidienne. Nous ne pouvons pas nous cacher derrière des excuses plus ou moins douteuses pour fuir nos responsabilités :
Nous sommes auteurs des bugs, ils sont notre responsabilité.
Par nos choix et décisions, nous pouvons produire un impact négatif chez nos utilisateurs. Cet impact peut aller d'un léger inconfort à mettre en péril leur vie. Le développeur professionnel a conscience de ça, et agit en accord avec son éthique.
Le développeur sait qu'il n'écrit pas le code pour lui même, mais pour les futurs développeurs qui devront le reprendre.
Le développeur professionnel sait que ses choix peuvent avoir un impact négatif sur la santé du projet : toute duplication, tout code non testé, est sa responsabilité : les bugs qui en découlent, les délais pour reprendre le code le sont aussi. Ces choix sont entre ses mains.
Le développeur professionnel cherche à tirer une satisfaction dans la pratique de sa discipline. Il sait donc que tout choix qui va à l'encontre de son éthique ne feront donc que baisser son envie et sa motivation à continuer le projet.
Obtenir 0 défaut est une mission quasi impossible. Cela n'en reste pas moins l'objectif du développeur professionnel. L'existence occasionnelle de bugs ne justifie pas de ne rien faire pour les éviter.
Nous ne pouvons pas progresser sans information correcte. Nous sommes parfois amenés à faire des concessions ou des arbitrages. En toute honnêteté, lorsque nous devons faire des entorses à cette charte (pour un projet, pour un temps), nous devons admettre publiquement ce qui n'a pas pu être respecté, dans quel contexte et pour quelles raisons.
Nous ne pouvons pas faire payer à un projet notre envie d'apprendre une nouvelle technologie à nos clients. Nous ne pouvons proposer que des options que nous connaissons, ou bien être très clair sur nos limites.
Ce n'est pas dans une école que la programmation s'apprend actuellement. Nous avons le devoir de former les nouvelles générations de développeurs à ce que nous avons appris, et ne pas laisser cette responsabilité à des sociétés plus ou moins bien intentionnées mettant directement les juniors en façade des clients, en les faisant passer pour des experts.