L'autre jour, j'ai passé en revue le code écrit par quelqu'un de mon équipe. La solution n'était pas entièrement fonctionnelle et la conception était trop compliquée - ce qui signifie stocker des informations inutiles, créer des fonctionnalités inutiles et, fondamentalement, le code présentait une grande complexité inutile, comme le placage à l'or, et il tentait de résoudre des problèmes inexistants.
Dans cette situation, je demande "pourquoi cela a-t-il été fait de cette façon?"
La réponse est que l'autre personne avait envie de le faire de cette façon.
Ensuite, je demande si l'une ou l'autre de ces fonctionnalités faisait partie des spécifications du projet, si elles étaient utiles à l'utilisateur final, ou si l'une des données supplémentaires serait présentée à l'utilisateur final.
La réponse est non.
Je lui suggère donc de supprimer toute la complexité inutile. La réponse que je reçois habituellement est "bon, c'est déjà fait".
Mon point de vue est que ce n'est pas fait, que c'est bogué, que cela ne fait pas ce que les utilisateurs veulent et que les coûts de maintenance seront plus élevés que si c'était fait de la manière la plus simple que j'ai suggérée.
Un scénario équivalent est le suivant:
Colleague passe 8 heures à reformuler manuellement le code de refactoring, ce qui aurait pu être fait automatiquement dans Resharper en 10 secondes. Naturellement, je ne fais pas confiance au refactoring à la main car il est de qualité douteuse et n’a pas été complètement testé.
Encore une fois, la réponse que je reçois est "bon, c'est déjà fait".
Quelle est la réponse appropriée à cette attitude?