Je viens de rejoindre une équipe de développement (relativement) petite qui travaille sur un projet depuis plusieurs mois, voire un an. Comme la plupart des développeurs se joignant à un projet, j'ai passé mes premiers jours à examiner la base de code du projet.
Le projet (une application métier interne ASP.NET WebForms de taille moyenne à grande) est, faute d'un terme plus descriptif, un désastre. Il y a trois problèmes immédiatement perceptibles avec les normes de codage:
- La norme est très lâche. Il décrit plus ce qu'il ne faut pas faire (n'utilisez pas la notation hongroise, etc.) que ce qu'il faut faire.
- La norme n'est pas toujours respectée. Il y a des incohérences avec le formatage du code partout .
- La norme ne suit pas les directives de style de Microsoft. À mon avis, il ne sert à rien de s'écarter des directives énoncées par le développeur du cadre et le plus grand contributeur à la spécification du langage.
Quant au point 3, il me dérange peut-être davantage parce que j'ai pris le temps d'obtenir mon MCPD en mettant l'accent sur les applications Web (en particulier, ASP.NET). Je suis également le seul Microsoft Certified Professional de l'équipe. En raison de ce que j'ai appris dans toutes mes études, mon auto-apprentissage et mon apprentissage en cours d'emploi (y compris ma préparation aux examens de certification), j'ai également repéré plusieurs cas dans le code du projet où les choses ne sont tout simplement pas faites dans le meilleur moyen.
Je ne fais partie de cette équipe que depuis une semaine, mais je vois tellement de problèmes avec leur base de code que j'imagine que je passerai plus de temps à me battre avec ce qui est déjà écrit pour faire les choses à leur manière que je ne le ferais si j'étais travailler sur un projet qui, par exemple, a suivi des normes de codage, des modèles d'architecture et des meilleures pratiques plus largement acceptés. Cela m'amène à ma question:
Dois-je (et si oui, comment dois-je) proposer à mon chef de projet et à mon chef d'équipe que le projet doit être rénové en profondeur?
Je ne veux pas entrer dans leur bureau, agitant mes certificats MCTS et MCPD, disant que la base de code de leur projet est de la merde. Mais je ne veux pas non plus avoir à me taire et à écrire du code kludgey au-dessus de leur code kludgey, car je veux en fait écrire des logiciels de qualité et je veux que le produit final soit stable et facilement maintenable.