Posez ces questions sur votre piste.
- Sont-ils habitués à travailler seuls ou avec une très petite équipe?
- Ont-ils principalement codé dans ce magasin?
- Sont-ils habitués à prendre des décisions?
- Sont-ils habitués à «tout faire»?
- Ont-ils écrit la plupart du code?
Si les réponses sont «oui», alors je vais brosser un tableau d'un type particulier de programmeur principal. Si cela correspond à ce que vous avez vécu, cela vous aidera peut-être à entrer dans la tête. Sinon, ignorez cette réponse .
C'est quelqu'un qui est là depuis le premier jour, a passé des années au même travail à travailler sur la même base de code, a l'habitude de faire son chemin et n'a pas beaucoup d'expérience avec d'autres moyens.
Ils ne prennent pas en compte les autres lors de l'écriture de code car tout cela a du sens pour eux. Bien sûr, ils l'ont écrit, ou ils ont passé des années à le comprendre.
Ils considèrent que le style de codage est une préférence personnelle, pas un outil pour réduire la maintenance et les bugs. En discutant du style de codage, ils auront du mal à entendre vos arguments, car ils n'ont probablement jamais beaucoup réfléchi à la raison pour laquelle ils font les choses à leur manière. Ce qu'ils vont entendre, c'est "Je veux le faire à ma façon" ou "Je veux le faire de la manière nouvelle, chic et tendance".
Ils sont déterminés à leur manière. Parce qu'ils font la même chose depuis si longtemps tous leurs outils et éditeurs et cerveau micro-configurés exactement à leur style. Tout écart par rapport à ce style entrera en conflit avec cette façon de travailler soigneusement arrangée, mais très fragile. Les tentatives de modification susciteront des plaintes concernant leur éditeur, leurs outils, leur façon de travailler ou leur «difficulté à lire». Ils rejettent le changement parce qu'ils se sont tellement enveloppés dans le statu quo qu'ils ne peuvent pas changer.
C'est quelqu'un qui n'a jamais correctement appris le génie logiciel et l'architecture logicielle. Ils se mélangent juste quelque chose qui fonctionne.
Vous avez un problème humain, pas technologique.
Vous allez devoir recycler votre avance, ou vous devrez arrêter.
Aller à la gestion est un dernier recours . À la fois pour les raisons indiquées par @JaredSmith et parce que vous perdrez. Ce gars a passé des années à gagner de l'argent pour eux. Il a écrit leur entreprise. Il a été victime de nombreux incendies. Pour vous, c'est un chef cowboy qui fait des spaghettis. Pour eux, c'est un héros qui a construit et sauvé l'entreprise.
Pour vous recycler, vous devrez ...
- Gagnez sa confiance.
- Découvrez comment il pense.
- Répondez à ses craintes concernant le changement.
- Rendez le changement plus facile.
- Montrez comment c'est mieux pour lui .
Prenez son style au sérieux et entrez dans sa tête. Demandez-lui à ce sujet. Pourquoi fait-il les choses comme il le fait? Que voit-il en le lisant? Comment interagit-il avec ses outils? Comment se déplace-t-il dans le code? Connaître toutes ces choses vous permettra de comprendre et de répondre à ses objections.
Trouver la racine objective de ses objections subjectives, les rendre exploitables. "C'est difficile à lire" est subjectif, et il ne vous donne aucune information. Vous ne pouvez rien y faire. "Je suis daltonien et la coloration syntaxique ne fonctionne pas" est objectif, il vous donne des informations et vous pouvez faire quelque chose à ce sujet. Je recommanderais un livre intitulé Getting To Yes pour en savoir plus.
Une fois que vous arrivez au problème racine, le vrai problème qu'il rencontre, voyez si vous pouvez le résoudre ou l'atténuer. Alors ce n'est pas un problème. Ils auront probablement encore des problèmes émotionnels avec le changement, mais au moins ils ne peuvent plus soutenir que c'est un problème réel.
Faites-le petit à petit. C'est quelqu'un qui le fait de la même façon depuis des années. Il est habitué à voir certains modèles dans le code et à les utiliser pour le comprendre. Changer soudainement tous ces schémas sera déroutant. Aussi frustrant que cela puisse être de les mettre lentement au courant des bonnes pratiques connues, vous devez le guider.
Préconisez un style communautaire standard. Cela élimine l'argument selon lequel il s'agit de préférences personnelles et les met sous pression pour justifier pourquoi leur style différent est tellement meilleur. Si vous prévoyez d'embaucher, cela facilite l'intégration de nouvelles embauches.
Préconisez le style de code automatisé. Faites suivre le style correct d'une simple pression sur un bouton. Utilisez un outil qui commence par un style standard, vous permet de le configurer selon vos goûts et peut reformuler le code en appuyant sur un bouton. Rendre le style aussi simple que possible supprime de nombreux arguments sur la difficulté de suivre. Ils peuvent coder comme ils le souhaitent, et lorsqu'ils ont terminé, ils poussent un bouton et il suit un style que les autres peuvent lire.
Puisque cette personne n'est pas dans l'état d'esprit de penser aux autres, vous devrez montrer comment ces changements leur sont bénéfiques. Cela peut être aussi simple que «puisque c'est la norme maintenant, vous n'aurez pas à refaire ce combat avec la prochaine personne que vous embaucherez». Ou cela peut être "si nous avons des tests, vous pouvez être plus agressif pour changer le code et vous soucier moins de changer les choses". Ou "s'il existe de bons documents, les gens n'auront pas à vous déranger avec des questions sur le fonctionnement du code". Pour que cela soit efficace, vous devez savoir ce qu'ils veulent - certaines personnes aiment être dérangées, cela les fait se sentir importantes.
C'est une longue, longue route. Vous devrez décider si vous avez la patience de gérer et de recycler votre patron. Considérez-vous davantage comme leur enseignant que leur subordonné frustré, et vous pourriez vous sentir mieux à ce sujet.