Comment convaincre mes collègues que faire les choses correctement leur fera gagner du temps


11

J'ai récemment commencé dans une nouvelle entreprise, avec une poignée de programmeurs. C'est une entreprise de taille moyenne, avec environ 70 employés, mais l'informatique n'en a que 9-10, et il y a 3 "programmeurs" à côté de moi. Cependant, ces gars-là ont une expérience très limitée et font beaucoup de choses vraiment terriblement. Par exemple, l'un de nos projets est un site Web PHP. La majorité du code est stocké dans un contrôleur PHP de 20 000 lignes, avec environ 6 000 lignes de JavaScript intégrées dans le PHP.

Je continue de faire de petites suggestions ici et là mais personne n'a écouté, tout le monde dit qu'ils sont trop occupés pour mettre en œuvre mes suggestions. Le truc, c'est qu'ils ne devraient pas être aussi occupés et ne le seraient pas si les choses étaient bien faites. Ils passent la plupart de leur temps à réparer des choses qui ne cessent de se briser. Si chaque projet était construit correctement, je pourrais tout faire moi-même.

Quelle approche dois-je adopter pour convaincre ces gars-là ou le manager que les choses doivent changer et que changer les choses fera gagner beaucoup de temps? Dois-je éviter d'essayer de convaincre mes collègues et aller directement au directeur, avec une proposition commerciale sur la façon dont l'entreprise économisera beaucoup d'argent si elle commence à faire les choses correctement?


2
Encadrez-les à bien faire les choses. Prouvez-vous en étant meilleur qu'eux. Quand ils sont coincés, offrez de l'aide.
Dave Hillier

18
« Si chaque projet était construit correctement, je pourrais tout faire moi-même. » Faites attention aux déclarations scandaleuses, ou du moins impopulaires.
Greg Hewgill

1
Dans quel rôle avez-vous été embauché? Avez-vous été embauché en tant que personne autorisée en PHP ou êtes-vous simplement un autre développeur?
Tyanna

1
Vous semblez être en position d'autorité. Utilise le. Dites-leur que la qualité de leur code n'est pas à la hauteur des normes de l'entreprise et imaginez un plan pour le mettre à jour. Asseyez-vous avec eux et découvrez pourquoi ils sont «trop occupés» et établissez des priorités en conséquence.
binarycleric

5
Tellement occupé à combattre les aligators, nous n'avons pas le temps de vider le marais.
JeffO

Réponses:


22

J'ai trouvé que la principale cause du travail bâclé, en dehors du programmeur ne se soucie tout simplement pas, est un manque de connaissances. Malheureusement, dans de nombreux environnements, le manque de connaissances est méprisé plutôt que discuté ouvertement.

Certaines techniques que j'ai utilisées avec succès pour favoriser la discussion, la croissance et l'enthousiasme général à propos de la programmation sont:

  • Séances techniques hebdomadaires sur les sacs bruns (demandez-leur de rechercher un sujet et de présenter).
  • Séances de mentorat individuelles ou quotidiennes entre membres juniors et seniors.
  • Revues de code (en mettant l'accent sur l'apprentissage, sans signaler les erreurs).

L'apprentissage est contagieux. Lorsque vous favorisez un environnement qui encourage l'apprentissage, vous produisez non seulement de meilleurs développeurs, mais montrez aux autres membres de votre équipe qu'ils font partie de quelque chose de plus grand qu'un moyen d'obtenir un salaire.


Oui, je pense que les revues de code seraient très bénéfiques. Avant de pouvoir vraiment faire les deux premières choses que vous avez énumérées, je dois les faire faire des réunions de standup hebdomadaires / quotidiennes.
Brandon Wamboldt

C'est là que vous devrez peut-être fléchir certains muscles faisant autorité. Il est difficile d'amener les programmeurs occupés à voir la valeur de quelque chose qui les éloigne de leur tâche actuelle. L'idée est, au fil du temps, de promouvoir un environnement qui ne consiste pas seulement à faire le travail.
jeuton

Et ils (la plupart) viendront. Ceux qui ne le sont pas sont souvent ceux pour lesquels vous ne voudriez pas nécessairement construire une équipe de toute façon (et d'après mon expérience, ce sont ceux qui ne seront pas là pour le long terme).
jeuton

+1 pour "Revues de code (en mettant l'accent sur l'apprentissage, sans signaler les erreurs)"
Md Mahbubur Rahman

14

En voyant que vous avez été embauché en tant que développeur PHP principal et que votre travail consiste à réparer les choses, je suggère qu'il soit temps de vous muscler.

Si j'étais à votre place, je ferais une bonne étude du code et je verrais les erreurs qui se répètent encore et encore. Bloquez le temps de réunion chaque semaine pour passer en revue ces choses avec l'équipe. Ne pointez pas les doigts ou les noms de noms, montrez simplement comment faire correctement cette tâche.

Ensuite, puisque vous avez déjà vu des besoins de correction, faites une liste. Si c'est rapide et facile à faire, faites-le. Si cela vous facilite la vie, faites-le ... faites-le. Faites une liste de toutes les choses qui doivent être faites et faites des billets pour eux et voyez quand les gens ont des cycles pour les faire. Si quelqu'un corrige un bogue dans une zone à problème, expliquez-lui comment le corriger correctement.

Si cela nécessite un changement important, asseyez-vous avec l'équipe et les parties prenantes et discutez des options.

Ayez une politique de porte ouverte où vous aiderez les gens. Soyez quelqu'un qui éduque et non intimide. Non, "vous devez le faire de cette façon" et plus "ce serait mieux si cela était fait de cette façon". Expliquez les avantages de le faire comme vous le suggérez et les inconvénients de la façon dont cela a été fait. Les gens seront plus disposés à le faire de la bonne façon s'ils sentent qu'ils ont appris quelque chose au lieu qu'on leur dise que leur chemin est faux et à le faire d'une autre manière b / c vous le dites.


2

Point de vue de la direction sur le problème S'ils ont accepté le moment du développement par rapport à la quantité de défauts, pourquoi le risqueraient-ils? Lorsque les avantages à long terme contredisent les objectifs à court terme, ils perdent généralement. Vous leur demandez de prendre un peu de recul. Ils peuvent penser que cela entraînera un long retard. Vous devez les convaincre que cela ne s'accompagnera pas des avantages supplémentaires. S'ils ne pensent pas qu'ils ont un gâchis, demandez-leur d'expliquer pourquoi il faut autant de temps pour introduire rapidement de nouveaux bogues à chaque "correction".

La qualité du code dépend de nombreuses circonstances et situations. Les ventes, le marketing et les gestionnaires vous feront croire que chaque échéance échouée signifie que l'entreprise manquera un coup à l'investisseur en méga-million de capital-risque. La réalité est qu'ils ne veulent pas annoncer la mauvaise nouvelle au 1% de vos clients qui n'ont vraiment pas besoin de la fonctionnalité de toute façon. Je suis extrême et généralement cela se situe quelque part entre les deux, les développeurs doivent donc savoir ce qu'est une véritable urgence. Il est alors plus facile de les convaincre de prendre le temps de bien faire les choses au lieu d'avoir besoin de temps pour les refaire. Vous devez comprendre les risques.

Comme un grand roman, le code n'est pas bien écrit la première fois, mais malheureusement il est toujours publié trop souvent. Commencez par quelque chose de fondamental comme l'établissement d'une norme de codage. Tout le monde en a un, mais beaucoup comme dans votre situation, ils n'ont pas été formalisés ni très stricts. "Fais ce que tu veux." est une norme très facile à maintenir. L'étape suivante consiste à déterminer comment vous allez maintenir vos normes.

Vous avez une tâche majeure devant vous. Peut-être que quelques grands programmeurs ont développé leurs compétences et leurs habitudes dans la mesure où ils n'ont jamais à faire de compromis sur la qualité de leur code ou à s'endetter techniquement, mais attendez de voir ce qui se passe lorsque cet investisseur providentiel promet que tout le monde deviendra riche.


1

Asseyez-vous et écrivez le prototype (ou un module si l'ensemble du projet est trop grand) qui utilise un très bon design comme bon vous semble. Ensuite, présentez-en / discutez-en avec l'équipe. Il peut être plus facile de convaincre par l'exemple.

Dans ce processus, vous pouvez également découvrir que certains outils, bibliothèques, approches ou similaires ne sont pas si bons. Évaluez toujours d'abord et demandez à votre équipe de l'utiliser plus tard. Méfiez-vous du marketing bon marché autour d'outils de qualité inférieure.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.