Je travaille pour une grande organisation humanitaire, sur un logiciel de construction de projet qui pourrait aider à sauver des vies dans les situations d'urgence en accélérant la distribution de nourriture. De nombreuses ONG ont désespérément besoin de nos logiciels et nous accusons un retard de plusieurs semaines.
Une chose qui m'inquiète dans ce projet est ce que je pense être une concentration excessive sur les normes de codage. Nous écrivons en python / django et utilisons une version de PEP0008, avec diverses modifications, par exemple, la longueur des lignes peut aller jusqu'à 160 caractères et toutes les lignes doivent aller aussi longtemps que possible, pas de lignes vides entre les importations, des règles d'habillage de ligne qui s'appliquent uniquement à certains types de classes, beaucoup de modèles que nous devons utiliser, même s'ils ne sont pas le meilleur moyen de résoudre un problème, etc. etc.
Un développeur principal a passé une semaine à réécrire une grande partie du système pour répondre aux normes de codage alors nouvelles, jetant plusieurs suites de tests dans le processus, car la réécriture signifiait qu'ils étaient «invalides». Nous avons passé deux semaines à réécrire toutes les fonctionnalités perdues et à corriger les bogues. Il est le principal développeur et sa parole a du poids, il a donc convaincu le chef de projet que ces normes sont nécessaires. Les développeurs juniors font ce qu'on leur dit. Je sens que le chef de projet a un fort sentiment de dissonance cognitive à propos de tout cela, mais il est néanmoins d'accord avec véhémence car il ne sait pas quoi faire d'autre.
Aujourd'hui, j'ai eu de sérieux problèmes parce que j'avais oublié de mettre des espaces après des virgules dans un argument de mot clé. J'ai été littéralement crié par deux autres développeurs et le chef de projet lors d'un appel Skype. Personnellement, je pense que les normes de codage sont importantes, mais je pense aussi que nous perdons beaucoup de temps à les obséder, et quand j'ai exprimé cela, cela a provoqué la rage. Je suis considéré comme un fauteur de troubles dans l'équipe, une équipe qui cherche des boucs émissaires pour ses échecs. Depuis l'introduction des normes de codage, la productivité de l'équipe a considérablement chuté, mais cela ne fait que renforcer l'obsession, c'est-à-dire que le développeur principal blâme simplement notre non-respect des normes pour le manque de progrès. Il pense que nous ne pouvons pas lire le code de l'autre si nous ne respectons pas les conventions.
Cela commence à devenir collant. Maintenant, j'essaie de modifier divers scripts, autopep8, pep8ify et PythonTidy pour essayer de faire correspondre les conventions. Nous exécutons également pep8 contre le code source, mais il y a tellement d'amendements implicites à notre norme qu'il est difficile de tous les suivre. Le développeur principal choisit simplement les défauts que le script pep8 ne détecte pas et nous crie lors de la prochaine réunion debout. Chaque semaine, de nouveaux ajouts aux normes de codage nous obligent à réécrire le code existant, fonctionnel et testé. Dieu merci, nous avons encore des tests (j'ai annulé certains commits et corrigé un tas de ceux qu'il a supprimés).
Pendant ce temps, il y a une pression croissante pour respecter le délai.
Je crois qu'un problème fondamental est que le développeur principal et un autre développeur principal refusent de faire confiance à d'autres développeurs pour faire leur travail. Mais comment y faire face? Nous ne pouvons pas faire notre travail parce que nous sommes trop occupés à tout réécrire.
Je n'ai jamais rencontré cette dynamique dans une équipe de génie logiciel. Ai-je tort de remettre en question leur adhésion aux normes de codage? Quelqu'un d'autre a-t-il connu une situation similaire et comment s'en est-il sorti avec succès? (Je ne cherche pas une discussion juste des solutions réelles que les gens ont trouvées)