La description de la situation par le PO est probablement unilatérale. C'est bon.
Je suis un développeur vieillissant (~54 ans) amené dans une entreprise non pas pour diriger, mais pour apporter une certaine expérience. Le personnel de développement était, dans l'ensemble, beaucoup plus compétent que toutes les équipes avec lesquelles j'avais travaillé auparavant. Ils m'ont beaucoup appris, surtout sur l'humilité ! Mais nous avons trouvé des endroits où leur magie technologique ne résolvait pas les problèmes et, dans certains cas, les cachait, les aggravant même. C'est là que j'ai pu vraiment apporter ma contribution.
Votre direction semble sévèrement autocratique. On dirait qu'il a été mandaté par le propriétaire. Le propriétaire n'est pas satisfait du personnel de développement et a fait appel à ce type “intransigeant et sans scrupules” pour améliorer la vitesse de livraison.
Tout d'abord, regardez votre personnel. Avez-vous des faiblesses - des développeurs qui ne “voient pas la matrice” ? Si oui, trouvez leur de nouveaux postes dans l'entreprise ou donnez-leur de bonnes références pour un employeur qui a besoin de leurs compétences uniques.
Il déteste les IDE
J'en connais quelques-uns qui le détestent. Cela me fait rouler les yeux, mais en fin de compte, je m'en fiche. Si les gens produisent en utilisant vi
, alors ok. J'aime mes IDEs.
Il ne refait pas le code, et ne se soucie pas du style (qui est incohérent dans son propre code)
Red flag sur la première partie. Est-il un copiste ? Je suis également coupable de ne pas me soucier du style, mais c'est parce que j'utilise mon IDE pour rendre mon code Python instantanément conforme au PEP8. Mais il n'utilise pas d'IDE…
En passant, le style était auparavant vérifié par un nightly build, qui a commencé à échouer depuis l'arrivée du nouveau lead.
Il rejette l'idée d'un nightly build, ainsi que les tests automatisés. Selon lui, “tout développeur professionnel teste son code de toute façon à la main, il n'y a donc aucune raison de perdre du temps à écrire des tests automatisés”. La compilation nocturne est également une perte de temps, selon lui.
Cela déclenche également un drapeau rouge, mais pour des raisons différentes de celles auxquelles on pourrait s'attendre. Avant que ce type ne soit engagé, combien de fois le propriétaire s'est-il fait dire qu'il ne pouvait pas faire X (donner une démo, utiliser le système, etc.) parce que le nightly build avait échoué ? Que se passe-t-il si le propriétaire perçoit que la construction nocturne est le problème ? Que pensez-vous qu'il dirait au chef de file de faire ?
Mais je m'inquiète de l'attitude du chef de file ; les tests automatisés sont étonnants. Comme avant, le patron ne comprend peut-être pas la valeur des tests, mais il sait sûrement que Y% des salaires du personnel de développement les payent. Lorsque je suis arrivé dans mon entreprise actuelle, la “mafia des tests à 100 %” avait pris le contrôle du personnel de développement et faisait grimper les coûts en flèche. Une mauvaise pomme plus tard, le personnel du développement ronronnait à nouveau.
Il pense que le contrôle de version est en grande partie inutile…
C'est un drapeau rouge de premier ordre. Il se trompe autant que possible. Il est irresponsable avec l'argent du propriétaire.
Il surestime l'importance de l'optimisation du code.
À l'époque, l'optimisation du code pouvait faire la différence. Aujourd'hui, les machines sont si rapides qu'elle est moins importante. Au lieu de cela, nous devons maintenant nous préoccuper des performances des bases de données et du débit du réseau. Mais son habitude de “l'optimisation du code” est difficile à rompre, croyez-moi. Je dois m'efforcer de ne pas pré-optimiser. Au moins, son comportement dans ce cas n'est pas destructeur, sauf pour le temps qu'il prend. (Avez-vous des chiffres pour sa “moitié de son temps” ou est-ce une hyperbole ? Si vous critiquez votre supérieur, aucune hyperbole ne peut être autorisée. Vous devez être pathologiquement objectif).
Il écrit tout le SQL à la main, et rejette l'idée d'un ORM.
Coupable comme accusé ! Je ne comprends pas la peur des gens face au SQL. Je ne comprends pas qu'on enterre le SQL, qui est un simple “dropdead”, sous des couches d'ORM qui obscurcissent. Je ne peux pas vous aider ici :-D Mais s'il vous plaît, jetez tout votre SQL au même endroit - ne le distribuez pas dans tout votre code.
et deux des cinq développeurs n'ont jamais utilisé le SQL auparavant.
C'est inacceptable. Nous sommes en 2016. Ils doivent se perfectionner.
Il rejette les frameworks et les bibliothèques tierces, considérant qu'il est beaucoup plus facile d'écrire des choses à partir de zéro.
Il ne pourrait pas avoir plus tort. Je doute que votre entreprise soit si spéciale que vos utilitaires doivent être écrits en interne. Nous avons eu quelques développeurs qui ont adopté des outils tiers - jusqu'à ce qu'ils fassent quelque chose d'une manière que le développeur n'aimait pas. C'était une excuse pour jeter l'outil et écrire le leur. Cela ne faisait qu'alourdir la charge de travail du personnel de développement, le ralentissant encore plus. Ce code inutile est coûteux à écrire, tester, déboguer et maintenir. Nous avons dépensé tant d'argent pour un bénéfice nul. Ces développeurs sont partis maintenant.
Il a décidé d'abandonner toutes les bibliothèques et tous les frameworks JavaScript sauf jQuery, affirmant que lorsqu'il a commencé à programmer en JavaScript il y a quinze ans, il n'y avait pas de frameworks, et la vie était beaucoup plus facile.
Celui-ci n'est pas aussi clair. La raison en est que la vie était beaucoup plus facile il y a quinze ans la demande des entreprises était beaucoup plus simple. C'est de là que vient le problème. Le web a été inventé comme un système par lots (remplir un formulaire, le soumettre, obtenir une réponse, répéter) et maintenant nous essayons d'écrire des applications web qui se comportent comme des applications de bureau. Son observation est juste, les choses sont difficiles maintenant. Mais il ne réalise pas pourquoi. La complexité des outils est une réponse à une demande plus complexe des entreprises. Il fait donc de mauvais choix.
Nous utilisons AngularJS et cela semble être correct. Comme tous les outils puissants, il peut être utilisé pour le bien ou le mal.
Il pense que les appareils mobiles (y compris les tablettes) ne sont qu'un battage publicitaire, il n'y a donc aucune raison de perdre un temps précieux à assurer la compatibilité du site avec ces appareils et à faire une conception adaptée. Le produit est une application web publique qui ne devrait pas être beaucoup utilisée à partir d'appareils mobiles.
Il se trompe encore. Ce n'est pas du battage publicitaire. Elles sont là pour rester parce qu'elles sont utiles. MAIS l'entreprise n'en a pas besoin. Ne développez pas des choses dont vous n'avez pas besoin. C'est cher.
Le design réactif, cependant, pourrait être très intéressant à avoir pour cette application, …
Est-ce si intéressant que vous payeriez pour le développement personnellement ? Si c'est une bonne idée, vous devriez pouvoir vendre l'idée au propriétaire. Sinon, ne dépensez pas un centime dessus.
Il demande à l'équipe d'arrêter d'utiliser Internet (surtout StackOverflow) et de se fier à leur cerveau, à la documentation hors ligne (je ne savais même pas que Microsoft vendait encore des CD MSDN !) et aux livres.
Il a tort. L'internet est parfait pour cela. Si l'équipe de développement fait du copier-coller à partir de Stackoverflow sans comprendre comment le code fonctionne, alors ils ont également tort. Y a-t-il du temps pour la formation et l'amélioration personnelle dans le programme de développement ? Il est difficile de ne pas faire du copier-coller robotisé quand on est toujours sous pression.
Bien que j'aie des informations limitées, il y a beaucoup de problèmes ici. Il semble que le propriétaire n'ait pas obtenu le code qu'il paie aussi vite qu'il l'espérait. On dirait qu'il a entendu beaucoup d'excuses pour des choses dont il ne se soucie pas ; il est concentré sur le résultat. Si j'ai raison, vous avez une blessure auto-infligée, et vous l'avez rouverte plus d'une fois. Cette piste est la solution du propriétaire au problème que le personnel de développement a posé, et étant donné ses informations limitées, elle est compréhensible.
Je parie aussi que vous dirigez un magasin non agile et que vous avez une mauvaise définition des exigences qui change au gré du vent. Il n'y a pas une couche d'isolation entre le personnel de développement et le propriétaire. A l'exception de cette piste.
Maintenant, que pouvez-vous faire ?
1) Former la piste que l'utilisation de tests automatisés et la gestion du code est la voie à suivre. Cela peut prendre du temps pour gagner en crédibilité auprès de lui - le propriétaire lui a probablement dit que le personnel est défectueux. Voyez si vous pouvez l'empêcher d'imposer des mandats de balayage tels que “supprimer toutes les conneries de tests inutiles et réorienter le serveur SVN”. Cela vous donnera le temps de montrer votre valeur.
2) Continuez à utiliser la gestion de code à un niveau personnel. Au moins, vous pourrez alors vous remettre de vos propres erreurs. Ne lui dites pas que vous faites cela, mais ne lui mentez pas non plus.
3) Continuez les tests automatisés (tests unitaires, si ce n'est rien d'autre) à un niveau personnel. Comme précédemment, ne le mentionnez pas, mais ne le cachez pas.
4) Travaillez avec le responsable pour déterminer quels sont les problèmes réels perçus. Faites preuve d'ouverture d'esprit ; je parie qu'il y a de vrais problèmes avec le personnel. Travaillez avec le responsable pour résoudre les problèmes, pas les symptômes.
5) Discutez avec le responsable de divers sujets de développement, tels que les avantages de la chute d'eau et de l'agilité. Aucun des deux n'est parfait. Posez-lui des questions telles que “Dans quelles circonstances un test automatisé serait-il utile” ? S'il donne une réponse douteuse, demandez-lui comment des entreprises prospères comme Google ont réussi à prospérer malgré cela.
Vous pouvez donc voir que j'ai à cœur d'engager le chef de file et de voir où il a la tête. Construire la confiance. S'entendre sur les problèmes par rapport aux symptômes. Ce n'est pas toujours facile, surtout lorsque vous avez l'impression qu'il est comme Godzilla et qu'il détruit votre travail.
Il y a une chance qu'il ne puisse pas faire de compromis. Il écrasera les tests automatisés. La gestion des codes est destinée aux personnes négligentes. My Way or the Highway.
Mais s'il est arrivé à ce point, il sera temps pour vous de partir. Travailler dans un atelier sans outils, et je veux dire des logiciels et des outils de génie logiciel - ne construit pas votre CV. Vous commencerez à pourrir de la même façon que le plomb a pourri. Dans ce cas, passez à autre chose.