web-dev-qa-db-fra.com

Comment gérer les membres de l'équipe qui écrivent du mauvais code

Notre équipe est composée de développeurs juniors et seniors. Le problème auquel je suis confronté concerne le code écrit par les personnes âgées. Ils ne respectent pas les normes de codage MINIMUM. J'apprends également, mais je ne déclarerais pas le style en ligne ou ne donnerais pas de noms incorrects pour les variables et les contrôles. J'ai essayé de le mentionner indirectement, mais ils étaient comme si nous pouvions le reprendre plus tard et depuis son agilité, nous devrions continuer. Mais mon problème est quand je commence à travailler sur ma tâche, cela me fait me sentir mal et je me concentrerais davantage sur le refactorisateur que sur ma tâche. Je ne sais pas comment faire face à cette situation.

PS: Je suis sûr que cette question a été posée à plusieurs reprises. Mais tout conseil est très apprécié.

23
Sunny

Un certain nombre de choses.

  1. Ne présumez pas que vos aînés ne savent pas ce qu'ils font. Ils peuvent avoir de très bonnes raisons pour lesquelles ils ont pris les décisions qu'ils ont prises; demandez-leur pourquoi (d'une manière non argumentative).

  2. Code qui est déjà écrit, soutenu par des tests unitaires et déclaré fonctionnellement complet par vos supérieurs peut être ignoré en toute sécurité. C'est ce que vous devez faire avec lui: l'ignorer, jusqu'à ce qu'il devient nécessaire pour continuer à le maintenir, quelle qu'en soit la raison.

  3. Sur la base de votre description sommaire, il semble que votre équipe soit soumise à une pression temporelle importante. Des compromis sont faits dans ces conditions; c'est comme ça.

Choisissez judicieusement vos combats. Ne combattez que ceux qui ont besoin de se battre.

31
Robert Harvey

Ils ne respectent pas les normes de codage MINIMUM.

Si ce n'est pas votre travail de contrôler le codage des autres, alors ne le faites pas. C'est une façon classique pour les juniors de se faire une mauvaise réputation.

Voir cette question pour une discussion similaire: https://softwareengineering.stackexchange.com/questions/78100/how-do-i-tell-a-senior-programmer-that-i-disagree-with-him

Connexe: Un article de blog que j'ai écrit sur le désaccord, et une partie de cela est de connaître votre place et quand il est approprié d'être en désaccord et quand ce n'est pas le cas: Comment être en désaccord sans être désagréable

14
Andy Lester

Comme d'autres l'ont mentionné, vous devriez poser des questions sur les choix du développeur principal de manière non conflictuelle, mais cela pourrait également valoir la peine d'examiner quelques éléments.

Tout d'abord: existe-t-il une norme de codage que le projet suit? S'il n'y a pas de norme de codage définie, personne ne rompt la norme de codage. Le "standard" peut simplement consister à faire ressembler le nouveau code à l'ancien code. C'est une position malheureuse, mais une norme de codage ad hoc est toujours une norme de codage.

S'il existe une norme de codage: qui assure sa mise en œuvre? Tous les développeurs sont-ils responsables, est-il géré pendant les périodes d'examen, etc.

Je vais vous donner mon exemple: je suis arrivé sur un projet qui vient de commencer. Nous avons des membres seniors, mais surtout des juniors (moi y compris). Il s'est avéré que j'étais celui qui était le plus préoccupé par une norme de codage. Nos politiques d'entreprise et d'assurance qualité dictent que nous avons une norme, et puisque c'est moi qui l'ai élaborée, c'était mon travail d'en trouver une.

Cela s'est avéré être super facile. Il existe une norme pour Java définie par Oracle, ce qui en fait le choix évident. Ensuite, j'ai trouvé un outil pour Java appelé Checkstyle, qui applique les normes de codage pour Chaque fois que vous apportez une modification et enregistrez un fichier, Checkstyle parcourt le fichier pour toutes les violations de la norme de codage que vous avez et met en évidence toutes les violations comme un avertissement. En outre, il effectue quelques tâches d'analyse statique: N- Complexité du chemin, complexité cyclomatique, etc. Après cela, j'ai examiné le formateur d'Eclipse et j'ai découvert que je pouvais également le rendre conforme à notre norme de codage. Alors maintenant, après une configuration minimale, nous avons un outil qui:

  • Highlights codant les violations standard
  • Un formateur qui peut être invoqué avec ctrl + shift + F
  • Aucun entretien
  • Pas de temps est passé dans les revues de code pour les problèmes de norme de codage triviaux (onglet ici, espace là-bas, commentaire nécessaire ici, etc.)

Donc, en fin de compte, pour vraiment traiter avec le maintien d'une norme de codage, je voudrais:

  1. Demandez quelle est la norme actuelle, est-elle définie quelque part et tous les développeurs en sont-ils conscients?
  2. Préparez un plan - faites vos devoirs et recherchez des outils dans la langue de votre projet qui peuvent vous aider à faire ce que j'ai fait. Sérieusement: avoir une norme de codage en place que tout le monde suit est génial. J'ai fini par le rendre si facile à faire que personne n'avait de raison pas de le suivre.
  3. Une fois que vous avez un plan, essayez d'en parler à votre superviseur. Dites-leur votre plan, et plus important encore: dites-leur comment cela pourrait leur faire gagner du temps à l'avenir en ayant moins de défauts dans le code.
6
Shaz

Exercez la pratique de l'ouverture dans un cadre professionnel - si vous pensez que leur code peut être amélioré et que vous avez une bonne raison d'affirmer qu'ils devraient le faire différemment, il ne devrait y avoir rien sur votre manière de le suggérer (tant que vous n'êtes pas pas condescendant ou autre). Si vous travaillez dans un endroit où l'ouverture est désapprouvée, je ne sais pas si c'est particulièrement sain. Ils peuvent avoir une excellente idée de pourquoi ils font quelque chose que vous n'avez pas remarqué ou le contraire - quelqu'un est tenu d'apprendre quelque chose en posant simplement des questions :)

1
nbpeth