J'ai passé de nombreuses années à diriger et gérer des équipes de développement. Par nature, je suis un peu OCD en termes de code et très noir et blanc. J'ai appris par expérience que choisir ses batailles est l'une des compétences les plus difficiles à apprendre en tant que chef d'équipe. Oui, les normes sont importantes. Oui, la lisibilité et la maintenabilité sont extrêmement importantes. Oui, nous devons tous nous efforcer d'écrire du code uniforme et conforme aux normes. Mais les développeurs sont des humains ... pas des outils de génération de code. Nous avons des personnalités, des opinions, nous nous ennuyons et nous voulons apprendre de nouvelles choses.
Sur les revues de code au travail, j'ai vu du code et des modèles que je considère "intelligents" mais qui n'ajoutent pas nécessairement à la qualité globale ou à la maintenabilité de la base de code.
OK ... donc ils n'ajoutent rien, mais nuisent-ils? Parlons-nous simplement d'une question de préférence personnelle dans les styles de codage, ou le code est-il écrit complètement inutile (par exemple, en utilisant des arbres d'expression et de la réflexion simplement parce que c'est amusant d'utiliser des arbres d'expression et de la réflexion)? Si c'est le premier, laissez tomber. Une partie du plaisir d'être développeur consiste à trouver des solutions créatives aux problèmes. Peut-être (et la plupart d'entre nous n'aiment pas l'admettre), nous nous sentons parfois intimidés par des approches que nous ne comprenons pas, et soit nous ne voulons pas demander, soit nous n'avons pas l'énergie supplémentaire pour apprendre la nouvelle approche.
Maintenant, lorsque la créativité conduit à un code inutile et à une complexité complètement injustifiable, alors par tous les moyens, exprimez-vous et défendez votre cause. Être un joueur d'équipe est important, mais il faut aussi (et tenir les autres) responsables. Les révisions de code concernent autant la responsabilité que l'assurance qualité et l'apprentissage. Vous allez marcher sur certains orteils, mais si vous sentez que vous avez un argument fort pour lequel des efforts (de l'argent) devraient être dépensés pour réécrire le code de travail ET un ego devrait être meurtri dans le processus ET vous voulez risquer d'écraser l'enthousiasme de quelqu'un pour son métier , alors vous ne devriez pas hésiter à le mettre sur la table. Si vous êtes le chef d'équipe, c'est votre travail. Soyez conscient de l'impact et faites-le. Si vous n'êtes pas un chef d'équipe et que vous n'en avez pas l'autorité, laissez-le à l'équipe de décider.
La meilleure façon d'inculquer la responsabilité à votre équipe est d'encourager les autres à vous tenir pour responsable. Si vous gardez un esprit ouvert et ne fermez pas les gens lorsqu'ils suggèrent des améliorations à votre code, vous trouverez peut-être qu'ils sont plus réceptifs à vos suggestions.