Automation
Le peluchage et les contrôles automatisés sont bénéfiques, mais vous risquez d'être repoussé par l'équipe, car les contrôles les ralentiront jusqu'à ce qu'ils apprennent toutes les règles. Même dans ce cas, je passerais même au niveau supérieur et ferais en sorte que l'IDE utilisé par votre équipe traite tous les avertissements comme des erreurs, de sorte que vos développeurs sont obligés de prêter attention à tout ce que l'EDI remarque.
Plusieurs réviseurs
Demandez à votre équipe de soutenir une politique selon laquelle chaque changement a au moins 2 réviseurs. De cette façon, même si vous finissez par consulter la plupart des critiques, vous savez que quelqu'un d'autre devra également réviser le code. Publiez également les métriques des réviseurs, afin que l'équipe puisse voir qui pèse sur les avis et qui se relâche. Même si quelqu'un est un mauvais codeur, revoir un autre code est une expérience d'enseignement pour lui. Apprenez à vos collègues qu'il est tout aussi important de poser des questions sur une révision de code que de suggérer des améliorations. De cette façon, chaque examen est une opportunité d'apprentissage bidirectionnel, c'est pourquoi tout le monde doit participer.
Appariement
Je suis d'accord avec les réponses qui identifient fondamentalement cela comme une opportunité d'enseignement. Je suis particulièrement d'accord avec la suggestion de jumeler le programme. Il semble que vous ayez essentiellement besoin de former toute votre équipe. Si ce n'est pas votre tasse de thé, il est temps de chercher un nouvel emploi. Sinon, l'appairage est probablement le moyen le plus efficace de les améliorer.
Revues d'équipe
Au lieu de faire des révisions de code par vous-même, vous devriez en faire au moins certaines en équipe. Autrement dit, planifiez une réunion, invitez plusieurs développeurs et demandez à leur de réviser le code, en ajoutant vos commentaires et suggestions jusqu'à ce que tout le monde soit sur la même page. Cela vous permet d'enseigner à plusieurs personnes à la fois. Alternez entre la révision du pire code, qui devrait récupérer beaucoup de commentaires, et votre code, qui devrait soulever beaucoup de questions ("Pourquoi avez-vous procédé ainsi? Que fait cette ligne?").
Livres
Si vous avez un livre préféré contenant les meilleures pratiques pour vos langages de développement, demandez à votre patron d'en acheter quelques exemplaires pour votre équipe et demandez-leur de le lire. Pour C ++, Scott Meyers est une très bonne autorité. Pour Java, vous avez Joshua Bloch, etc.
Groupes d'utilisateurs
Il se peut que vos coéquipiers voient la programmation comme un mal nécessaire, plutôt que comme leur passion première. Vous ne pouvez pas faire grand-chose à ce sujet, à part changer les entreprises. Mais si vous pensez qu'ils sont sur la clôture et qu'ils pourraient être inspirés pour en savoir plus, vous devriez essayer de voir s'il existe des groupes d'utilisateurs pertinents qui se rencontrent dans votre ville et les inviter à vous y rejoindre. Ils n'apprendront pas nécessairement des choses qui sont directement utiles à leur travail quotidien, mais ils devraient au moins voir l'enthousiasme des autres développeurs pour le langage, les bibliothèques et les frameworks. Si vous avez de la chance, une partie de cette excitation déteint sur vos collègues et les motive à améliorer leurs compétences.
Changement de rôle
Il se peut que certains d'entre eux préfèrent vraiment faire autre chose, comme la gestion de programme / projet, ou même la gestion des personnes. Discutez avec chaque membre de l'équipe pour évaluer où il en est, quelles sont ses ambitions, où il se voit dans quelques années, etc. Si l'un d'eux exprime un intérêt pour un rôle différent et que vous pensez qu'il est désespérément loin derrière sur le codage, puis encouragez-les gentiment à explorer ce rôle et faites ce que vous pouvez en formulant des recommandations aux gestionnaires pour y parvenir. Ensuite, dites à votre responsable que vous souhaitez être sur la boucle de recrutement pour tout nouveau codeur de votre équipe et que vous allez relever la barre de manière significative. Vraiment, c'est quelque chose que le gestionnaire devrait faire, mais il peut manquer d'expérience ou de motivation pour le faire. Si cela vous aide à avoir de meilleurs codeurs dans votre équipe, cela vaut la peine de vous salir les mains.
Changement d'équipe
Si votre entreprise compte plusieurs équipes de développement, vous devez soit essayer de rejoindre l'équipe avec les meilleurs développeurs, soit faire de votre équipe cette équipe . Cela signifie essayer de gérer les codeurs les plus faibles sur une équipe inférieure, et débaucher les bons codeurs d'autres équipes. Idéalement, vous devriez travailler au sein de l'équipe la plus percutante (celle qui offre le plus de valeur commerciale à l'entreprise). Si tel est le cas, le braconnage de bons codeurs est en fait bénéfique pour l'entreprise, jusqu'à un certain point. Si vous ne faites pas partie de cette équipe, vous devriez d'abord essayer de faire partie de cette équipe, puis constituer votre équipe d'étoiles.
Vous devriez, bien sûr, recruter votre manager pour cette tâche, car il aura probablement beaucoup plus d'influence et de levier que vous. Vous devez expliquer que votre équipe fournit en réalité moins qu'elle ne le ferait si vous vous débarrassiez des codeurs les plus faibles, car vous passez tellement de temps à réviser / réparer / annuler du code vraiment mauvais. Mais qu'ils pourraient être positifs au sein d'une autre équipe, et ainsi l'entreprise bénéficierait d'un meilleur alignement des développeurs avec les projets commerciaux. C'est-à-dire, un peu de chaises musicales. Bien sûr, vous voulez définir le travail que font les développeurs des autres équipes, afin de savoir lesquelles votre manager devrait essayer de débaucher.
Naturellement, la politique de cette stratégie peut devenir assez compliquée, et cela n'est pas quelque chose que tout le monde est prêt à essayer. Mais à la fin de la journée, votre entreprise est payée pour fournir un produit / service, donc tous ceux qui reçoivent un chèque de paie devraient vouloir la configuration optimale des travailleurs + des projets. Parfois, cela signifie que vous devez former une équipe d'étoiles pour travailler sur les projets les plus importants, et il se peut que vous soyez le mieux placé pour aider à le découvrir.
Gestion
N'oubliez pas que l'équipe d'étoiles a également besoin des meilleurs managers. Donc, si vous vous salissez les mains en essayant de remodeler l'organigramme, assurez-vous de savoir à quel point chacun des gestionnaires est bon. Il semble probable que votre équipe ait des codeurs faibles parce que vos gestionnaires ne sont pas un bon juge des compétences, et il y a peut-être un meilleur gestionnaire dans une autre équipe pour laquelle vous préféreriez travailler. C'est une chose assez importante à prendre en compte, en particulier lorsqu'il s'agit de progresser.