J'ai été placé sur un projet il y a environ trois mois qui était jusque-là sous le développement d'un seul développeur nouvellement embauché, car il tombait derrière. Pour être juste, le projet est une interface d'un dispositif médical qui a beaucoup de subtilités et est relativement complexe, ce qui plaçait une personne sur le projet qui n'avait aucune expérience de la société était probablement une mauvaise décision d'une perspective de direction.
Quoi qu'il en soit, une fois que j'ai commencé à travailler dessus, j'ai réalisé que ... Eh bien, cela ne fonctionnait tout simplement pas du tout. L'interface utilisateur avait l'air gentille, mais cela n'a pas réellement fait quelque chose, et ce que cela a fait cela faisait mal. Encore une fois, être juste, une grande partie de cela était due au fait que ce développeur n'était pas préparé correctement pour écrire une interface à notre appareil. Cependant, j'ai aussi réalisé rapidement 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 personnes très intelligentes qui sont de meilleurs développeurs que moi. Je fais cependant très fort d'écrire du code aussi simple que possible et robuste. Je teste mes checkins. Si je vois que mon code devient désordonné et difficile à travailler avec tôt, je le change. J'ai eu quelques entretiens avec mon collègue pour tenter 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'ai que 5, et b) il a été embauché comme un soi-disant "expert UX" et d'autres le considèrent comme une personne expérimentée.
Cela dit, je ne le vois pas. Il est un très bon gars et il est raisonnable, mais il est temps après qu'il vérifie le code fragile, ne fonctionne que dans les cas les plus optimistes et 9 fois sur 10, je finis par fixer des bugs dans son travail. Son code semble juste amateur et il n'a évidemment pas le niveau d'expérience qu'il affirmait avoir lorsqu'il a été embauché. Il est arrivé au point où les heures supplémentaires que je passe refactorise son code et la réparation de ses insectes ont pris un péage sur moi. La façon dont je le vois j'ai deux options:
Donc, c'est à peu près tout. J'ai essayé de travailler à travers cela avec mon collègue en expliquant pourquoi sa mise en œuvre ne fonctionnera pas et que son code pourrait être fait pour être plus maintenu, mais il continue de faire les mêmes erreurs. Je suis très intéressé d'entendre comment d'autres ont traité des situations similaires, en particulier des personnes en gestion actuellement. Merci d'avance pour tout conseil que vous pouvez vous offrir.
J'envisageais au moins la possibilité que s'il ait été embauché comme un gars UX, il se peut que personne ne soit réellement s'attend à ce que vraiment bon code de sa part - ils peuvent s'attendre à ce que son code ne soit que fondamentalement un Prototype qui décrit l'UX, et il appartient à d'autres codeurs d'écrire un code de production en fonction de cela.
Maintenant, je ne dis certainement pas cela est l'affaire, mais cela ne me frapperait pas aussi terriblement surprenant. Au moins dans mon expérience, ce n'est pas du tout rare que les personnes UX produisent principalement des objets comme des prototypes et des storyboards. Si quelque chose, si le gars était vraiment embauché spécifiquement en tant que spécialiste UX, je suis limite à la notion de son contrôle du code. Je suis à peu près sûr que je n'ai jamais vu cela fait.
Si le gars est vraiment un spécialiste UX, le traitement peut ne pas être d'essayer de le faire produire de mieux code, mais de le faire sortir du codage (au moins tout sauf des prototypes) entièrement. S'il est honnêtement bon au design UX, la vraie erreur est probablement en lui demandant d'écrire du code de production du tout. Au lieu de cela, il devrait probablement être (au plus) travailler dans un bac à sable UX-prototypage où son résultat est utilisé pour guider la prochaine ronde de code réel produit, mais n'a jamais été enregistré en tant que code de production du tout.
J'essaie d'avoir une règle que je garde toujours mon patron au courant des choses qui affectent le projet. Positivement et négativement ... et dans des cas comme cela, j'essaie de blâmer des choses comme le code par opposition à la personne qui l'a écrite. Il semble beaucoup moins que vous êtes dénigrement d'un collègue de travail et plus comme vous essayez d'améliorer la qualité du produit.
Du point de vue de la gestion, il y a 3 façons communes pour faire face aux employés dans cette situation:
Obtenir leurs faiblesses sous contrôle en cherchant une aide extérieure.
Hey Boss, je suis un peu inquiet de l'état du code ... il est assez fragile et cassant beaucoup. Ça va prendre un peu de travail pour l'obtenir dans un état où je me sens qu'il peut faire confiance. Est-il possible que je puisse emprunter l'un des architectes pour un jour ou deux pour voir si nous pouvons trouver une bonne conception?
Vous ne demandez pas pour une autre personne à se joindre au projet, vous demandez plus de " avis d'experts " pour un court laps de temps. Produire tout docs dont ils ont besoin, des diagrammes UML et des extraits de code si c'est ce que l'architecte veut. Ils voient dans quel état le code est et alors votre patron aura quelqu'un d'autre écho de vos opinions.
De la réunion, vous espérons obtenir une meilleure conception que vous et l'autre dev pouvez suivre sans le visser beaucoup de celui-ci vers le haut. C'est ce que conçoit et spécifications pour dans beaucoup de cas: réduire les dégâts que les mauvaises devs peuvent faire.
Jouer à leurs points forts
Hey Boss, je travaille avec le code pour x projet, et il est magnifique. Le code, d'autre part, pourrait utiliser un peu de mal de travail. Je pense que le projet serait mieux si [gars ux] a été en mesure de se concentrer davantage sur l'UX, alors que je fais un peu de refactoring pour l'obtenir dans un état plus stable. Une fois que le projet est solide UX, b pourrait probablement utiliser sa touche Midas.
Ici, votre patron va probablement voir à travers; que vous lui dites l'autre dev est pas très bon ... mais au moins vous n'êtes pas d'être un trou du cul à ce sujet. Et s'il est vraiment bien honnêtement le travail UX, alors il pourrait trouver une position stable sauter sur chaque projet et en les rendant grand du point de vue de la facilité d'utilisation. J'imagine qu'il aimerait mieux de cette façon aussi.
Arrêter à plusieurs reprises Fixant ses erreurs. Il n'apprendra pas; Je sais que je ne le ferais pas.
La programmation est en grande partie une tâche logique, mais elle implique également des souvenirs de mémoire. Lorsque vous écrivez souvent du code commun, vous rappelez Comment vous avez implémenté la solution la dernière fois , plutôt que de tout comprendre à nouveau. S'il n'a jamais mis en œuvre le code correct, je peux voir pourquoi il continue à répéter les mêmes erreurs.
Montrez-lui ce qu'il a mal fait et peut-être le réparer la première fois. Pour toute situation ultérieure du même incident, demandez-lui de mettre en œuvre le correctif que vous l'avez montré.
Je serais vraiment prudent pour quelques raisons:
Comment êtes-vous sûr que vous ne travaillerez pas avec lui après la sortie initiale? Votre gestion pourrait penser: "Quelle équipe, regardez comment ils ont livré cette génialité ensemble!" et voulez vous garder ensemble.
Si vous allez chez votre patron, votre technique voulez-vous essayer d'expliquer votre position? Combien de documentation avez-vous de vos collègues de mauvaises performances?
Ce seraient les gothas que je noterais de ce que vous avez demandé. Je vous suggérerais de lui demander du code et de voir s'il a des justifications pour la raison pour laquelle c'est comme ça. Peut-être qu'il court en cercles tout en le codant, ce qui provoque des problèmes. Le cercle est où vous codez quelque chose que quelque chose à travers une série de modifications finissent par presque le même point que vous avez commencé comme la liste des modifications de quelqu'un annuler à la fin. J'ai été dans ces situations où il change et défaire le changement après le changement qui est fatigué assez vite.
Le projet va-t-il lancer tôt si vous n'aviez pas à réécrire/refaire son travail? Cela aidera-t-il à entrer dans le budget? Vous n'avez pas à bash, à élever en privé vos préoccupations. Voici où la plupart des gens font une erreur, ils se plaignent sans offrir des solutions.
Existe-t-il des recommandations spécifiques que vous pouvez offrir à votre patron qui améliorera le résultat. Meilleure documentation? Test de l'utilisateur robuste? Votre objectif est de rendre la société, le projet, votre collègue et votre collègue avec succès. Faire semblant qu'il n'y a pas de problème garantit un échec du tout pour trois des quatre - et vous n'êtes pas chanceux.
Vous devez aller à votre patron dès que possible et lui dire clairement ce que vous avez dit ici.
Tout d'abord, il s'agit d'un dispositif médical. Quelqu'un pourrait-il être blessé ou mourir s'il y a un bug? CODE que la vie ou la santé des peuples dépend des besoins nécessaires pour être aussi robustes que humainement possible, pas une indemnité de buggy écrite par un optimiste pour le scénario au mieux.
Ok, mettant mon ex-manteur chapeau sur ... Vous ne savez pas si votre patron le sait à ce sujet, ou de ce que sa réponse sera si elle lui est une nouvelle. Mais s'il ne sache pas, il a besoin, et vous ne devriez pas le deviner en cachant ces informations. S'il est d'accord avec votre collègue codant de cette façon, il vous le fera savoir.
J'ai rencontré une situation comme celle-ci il y a de nombreuses années. Un "gourou de réseautage" et je travaillais sur une preuve de concept en tant qu'entrepreneurs. En fait, il n'a guère fait quoi que ce soit, et surtout descendant. Un jour, notre patron nous a dit que nous avions une démonstration à venir. Bientôt, le "gourou de réseautage" a commencé à obtenir beaucoup d'appels téléphoniques de Hush, et il m'a finalement dit qu'il allait partir avant que la démo devienne un autre concert avec contrat. Dès que je pourrais tirer notre patron seul, je l'ai parlé. Il a largué le "gourou de réseautage" et a apporté quelqu'un que j'ai recommandé, qui a vécu plus de code dans trois jours que le "gourou" a fait dans trois mois. La démo était un coup écrasé - mais si je me calme, le projet aurait complètement échoué.
Oui, dis votre patron. Ensuite, vous verrez si ce n'est pas vous celui-ci. C'est le travail du gestionnaire de savoir comment l'équipe travaille et si le patron n'a pas encore remarqué, peut-être qu'elles ne se soucient pas autant que vous le faites pour un codage approprié - comme beaucoup, de nombreux endroits où j'ai été.
Et parmi tous ces endroits de travail différents, si j'ai eu une main complète (signifie 5) d'amis, c'est déjà un grand nombre. Ils avaient tous de beaux gars et des gals, mais vous ne perdrez pas une amitié sur votre travail - si vous les perdiez, c'est une bonne chose. Dans votre cas, il serait valorisant le travail plus que vous.
Accordé, ce n'est pas une tentative de le faire tirer. Il s'agit simplement de montrer votre préoccupation sur le bien-être, c'est pourquoi vous êtes tous (ou devriez) être là.
Vous avez essayé de lui parler, après tout, et si vous ne faites rien, vous risquez de vous y risquer de votre emploi.