J'ai été placé sur un projet il y a environ trois mois qui était jusque-là en cours de développement par un seul développeur nouvellement embauché parce qu'il était en retard. Pour être juste, le projet est une interface avec un dispositif médical qui a beaucoup de subtilités et est relativement complexe, donc placer une personne sur le projet qui n'avait aucune expérience dans l'entreprise était probablement une mauvaise décision d'un point de vue managérial.
Quoi qu'il en soit, une fois que j'ai commencé à travailler dessus, j'ai réalisé que ... eh bien, ça n'a tout simplement pas fonctionné du tout. L'interface utilisateur avait l'air bien, mais elle ne faisait pas grand-chose et ce qu'elle faisait faisait mal. Encore une fois, pour être honnête, cela était dû en grande partie au fait que ce développeur n'était pas correctement préparé pour écrire une interface sur notre appareil. Cependant, j'ai aussi rapidement réalisé que le code qui était en place était fragile et extrêmement difficile à maintenir.
Maintenant, je ne prétends pas être le meilleur programmeur du monde. Je travaille avec beaucoup de gens très intelligents qui sont de meilleurs développeurs que moi. J'essaie cependant très fort d'écrire du code aussi simple que possible et robuste. Je teste mes checkins. Si je constate que mon code devient désordonné et difficile à travailler au début, je le change. J'ai eu quelques discussions avec mon collègue pour essayer de l'aider à écrire un meilleur code. C'est un peu délicat car a) il a plus de 20 ans d'expérience dans le domaine et je n'en ai que 5, et b) il a été embauché en tant que soi-disant "expert UX" et d'autres le considèrent comme une personne expérimentée.
Cela dit, je ne le vois tout simplement pas. C'est un gars très gentil et il est raisonnable, mais à chaque fois il vérifie un code fragile, ne fonctionne que dans les cas les plus optimistes, et 9 fois sur 10 je finis par corriger des bugs dans son travail. Son code semble juste amateur et il n'a manifestement pas le niveau d'expérience qu'il prétendait avoir quand il a été embauché. Il est arrivé au point où les heures supplémentaires que je passe à refactoriser son code et à corriger ses bugs m'ont coûté cher. La façon dont je le vois, j'ai deux options:
- Ne faites rien, cassez mes fesses pour vous assurer que ce produit sort à temps et est robuste et attendez qu'il échoue à l'avenir (je ne travaillerai pas avec lui sur ce projet après la sortie initiale.)
- Parlez à mon patron de sa performance. Mon patron est un homme raisonnable, mais je me sens mal à l'aise en adoptant cette approche. Je n'aime pas «bash» (faute d'un meilleur terme) mes collègues et je ne sais pas comment il va le prendre.
Alors, c'est à peu près tout. J'ai essayé de résoudre ce problème avec mon collègue en expliquant pourquoi son implémentation ne fonctionnera pas ou comment son code pourrait être rendu plus facile à maintenir, mais il continue de faire les mêmes erreurs. Je suis très intéressé d'entendre comment d'autres ont géré des situations similaires, en particulier les membres de la direction actuellement. Merci d'avance pour tout conseil que vous pouvez m'offrir.