Question:
Comment gérer la moitié de mes collègues dépassant les processus de développement sous la moindre pression?
Eric Yan
2020-07-06 20:48:26 UTC
view on stackexchange narkive permalink

Je suis développeur de logiciels. Mon équipe a une variété de processus de développement que le code est techniquement censé passer pour accéder à la branche principale. Des choses comme les tests unitaires et la révision de code.

Sous la moindre pression de n'importe quelle figure d'autorité (propriétaire de produit, développeur intermédiaire, scrum master, désir de terminer quelque chose avant la planification du stand-up / sprint, même un vendeur aléatoire qui prétend que quelque chose est "urgent") ils l'ignoreront et forceront à pousser leur correctif vers le maître pour le mettre en production. Notre patron est d'accord pour dire que nous ne devrions pas faire ça, mais il ne veut pas avoir à se battre constamment avec les gens, alors il laisse les choses glisser et me dit de dire aux autres développeurs de repousser. 80% du code sort maintenant sans suivre le processus.

Selon les autres développeurs, la situation est qu'ils seront probablement ici pour une autre année au plus, donc laisser le code pourrir coûte moins cher que les disputes quotidiennes sur processus avec diverses personnes qui n'apprécient pas une ingénierie minutieuse.

Que puis-je faire à ce sujet?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (https://chat.stackexchange.com/rooms/110350/discussion-on-question-by-eric-yan-how-to-deal-with-half-my-colleagues-overridin).
21 réponses:
Matthew Gaiser
2020-07-06 21:46:03 UTC
view on stackexchange narkive permalink

Vous avez fondamentalement besoin que l'organisation la valorise dans son ensemble.

J'étais avec vous il y a quelques mois. Je fais maintenant partie de ces développeurs qui vous frustrent.

La réalité est que les gens ont certains délais en tête et que ceux-ci ne changent jamais. Vous leur faites une démonstration, puis ils sont "où est-il? Où est-il?" Et ils le feront à chaque fois. Cela s'ajoute aux personnes soucieuses de faire avancer les choses. Les organisations ont également tendance à valoriser certaines choses et ces valeurs déterminent la façon dont les choses sont faites.

La conversation se déroule généralement comme suit:

Personne: "Hé, où est cette fonctionnalité que vous m'avez montrée hier ? "

Moi:" Il attend la révision du code. "

Personne:" Eh bien, nous en avons besoin pour QA / résoudre le problème de production / l'avoir dans la démo du sprint / pour le client réunion de demain "

Moi:" C'est derrière ce que vous m'avez demandé hier dans la file d'attente. "

Personne:" Eh bien, nous en avons besoin pour QA / résoudre le problème de production / l'avoir dans la démo de sprint / pour la réunion client demain "

Moi:" Je vais voir ce qui peut être fait. "

Personne (une heure plus tard):" Des mises à jour? Nous besoin pour QA / résoudre le problème de production / l'avoir dans la démo de sprint / pour la réunion client demain. "

Après des mois et des mois de cela, git push est un diable beaucoup plus facile à faire. D'autant qu'en ce qui les concerne, c'est urgent, donc ils sont très motivés pour l'obtenir. À bien des égards, ils ont raison car les délais sont réels et ne peuvent pas être contrôlés. Donc, même du point de vue d'une unité commerciale, c'est probablement la bonne décision.

Pour que les processus survivent, l'organisation dans son ensemble (ou du moins toute l'unité commerciale) doit les valoriser. Votre organisation ne le fait clairement pas. Cela entraîne-t-il plus de bogues? Probablement. Mais les gens en dehors des logiciels en sont venus à accepter les bogues comme quelque chose qui se produit, donc les prévenir n'est souvent pas la priorité absolue.

C'est une question de compromis, à la fois pour l'organisation et pour les développeurs individuels.

Si vous voulez résoudre ce problème, vous devez essentiellement convaincre les ventes, le Scrum master et le propriétaire du produit qu'il est utile de ne pas contourner ce processus Ils la considèrent probablement comme de la bureaucratie.

Je ne sais pas si cela doit être valorisé par chaque personne de l'organisation, mais il doit l'être par les responsables.Si la direction n'est pas prête à vous soutenir lorsque vous dites à quelqu'un "Non, ce n'est pas encore prêt, il a encore besoin d'une révision du code", alors vous êtes foutu.Si seulement la moitié des développeurs le font parce que la direction leur permet de s'en tirer sans le faire, l'autre moitié va rapidement être désillusionnée et arrêter
@Kevin dans ce cas, la gestion de cas devrait non seulement la valoriser, mais aussi l'appliquer.Si la direction le considère comme précieux, les ventes n'ont toujours aucune raison de ne pas vous barrer et il incombe toujours au développeur de tenir ferme.
ouais, c'est ce que j'ai dit
@MatthewGaiser "c'est probablement la bonne décision" - de votre point de vue, qui devrait prendre cette décision?Le développeur, son responsable, son propriétaire de produit ou la seule personne responsable du délai?
"vous devez essentiellement convaincre les ventes, le Scrum master et le product owner qu'il y a de la valeur à ne pas contourner ce processus".Ces gens ont déjà entendu parler de la valeur, mais ils s'en moquent.Vous ne pouvez améliorer la culture d'entreprise que si vous êtes dans un poste de gardien (pas nécessairement de gestion) où vous pouvez empêcher quelque chose de se déployer et votre patron vous soutiendra.Cela implique que le grand-père soutiendra votre patron ... que le patron du grand-père le soutiendra et ainsi de suite.
Dans les cas où des étrangers commencent à se mêler de votre processus, arrêtez simplement de leur expliquer votre processus et ne leur donnez pas de crochets pour une argumentation supplémentaire.Dans une entreprise où le refactoring était constamment ignoré en raison de délais "urgents", j'ai simplement commencé à compter le refactoring comme un travail de développement qui faisait partie de l'estimation.Au lieu de "2 jours de développement, 1 jour de révision / refactorisation, ce qui finirait par" pousser après 2 jours ", j'ai plutôt dit" 3 jours de développement ", et la direction a perdu la capacité de discuter des parties de mon travail que je pouvais ignorer carils ne s'en soucient pas personnellement.
@HenryM Il y a une différence assez grande entre dire quelque chose à quelqu'un et convaincre quelqu'un.Dire à quelqu'un s'appuie sur l'autorité, convaincre peut se faire de plusieurs façons.
@GregoryCurrie Quelqu'un qui est un directeur technique chevronné au niveau VP m'a dit qu'il pouvait lui prendre 5 ans pour convaincre un propriétaire d'entreprise de faire les choses de la bonne manière, donc je suis un peu sceptique de pouvoir le faire avant que la plupart des entreprises échouent ou soient vendues..Mais?
@HenryM: Cela dépend fortement de la culture de l'organisation.Dans mon entreprise, la réponse standard à "Poussons les nouvelles fonctionnalités directement dans la production" est quelque chose du genre "Pourquoi détestez-vous vos utilisateurs?"Mais une startup va fonctionner très différemment.
@Kevin Ce qui peut conduire au problème différent de "il faut 7 mois pour obtenir une nouvelle version en direct sur tous les serveurs de production du monde entier car chaque organisation nationale doit également donner le feu vert à la version et à d'autres processus de longue durée".Alors oui, pas si simple.
-1
@Flater Envisageriez-vous de convertir ce commentaire en réponse?Il fournit une idée qu'aucune des réponses actuelles ne fait (c'est donc une réponse valide) mais est actuellement difficile à trouver, étant enterré dans une section de commentaires.
@ivan_pozdeev: Je ne sais pas si c'est une réponse complète mais je l'ai ajoutée par votre demande.
Oncle Bob a des choses intéressantes à dire sur "Je vais voir ce que je peux faire" et comment les gestionnaires l'entendent par rapport à ce que la personne qui dit cela signifie généralement.
Dans les endroits plus organisés où j'ai travaillé, les gars qui font des démos utilisent la mise en scène (ou même la branche dev / ci) au lieu de prod.Quelque chose ne se produit que lorsque tout le monde en est satisfait et qu'il passe le pipeline de test automatique en préparation.
Kevin
2020-07-06 21:12:58 UTC
view on stackexchange narkive permalink

Notre patron est d'accord que nous ne devrions pas faire ça, mais il ne veut pas avoir à se battre constamment avec les gens, alors il laisse juste glisser et me dit de dire aux autres développeurs de repousser. 80% du code sort maintenant sans

Il vous demande de faire son travail. Pas du tout professionnel. Cela ne devrait pas être un combat constant. Cela devrait être une loi absolue et les combats cesseraient après une ou deux réprimandes écrites.

Vous ne pouvez vraiment pas faire grand-chose dans cette situation. Vous et les autres développeurs concernés pourriez essayer de faire pression par les pairs, mais il ne semble pas qu'il y ait suffisamment de soins, ou que vous n'avez pas (naturellement) abandonné, pour faire une différence.

honnêtement, commencez à chercher un autre emploi

MODIFIER:

Une autre option, si vous sentez que vous avez tout essayé avec votre patron, serait de passer par-dessus la tête de votre patron à leur patron et chercher à résoudre ce problème plus haut dans la chaîne. Cela devrait être fait avec soin, et peut-être de manière anonyme, car passer la tête de votre patron peut avoir de graves répercussions.

Les autres sont également à la recherche d'un autre emploi, ont-ils plutôt dit à OP.
Presque toutes les réponses sur ce site se terminent par "chercher un autre emploi" ...
@ ДамянСтанчев Beaucoup de questions sur ce site posent des problèmes qui ne peuvent pas être résolus par OP, c'est donc logique.
Selon que le «patron» dans cette histoire est le plus haut niveau de gestion ou non, je suspendrais tout le conseil «chercher un nouvel emploi».Si vous deviez quitter un emploi où il y a une personne qui ne fait pas correctement son travail, vous auriez du mal à trouver un emploi.Au lieu de cela, dans la mesure du possible, reprenez la réticence du patron à appliquer les bonnes pratiques avec _leur_ patron.Sur la base des déclarations de votre propre patron (ils conviennent que cela devrait être fait, et ensuite ne vous donnez pas la peine de le faire), vous avez amplement la preuve qu'ils n'exercent pas réellement leurs fonctions.
@Mast: Dans cette même logique, chaque ticket de support informatique doit être fermé par "obtenir une nouvelle [chose qui ne fonctionne pas]".Dire à quelqu'un de quitter un emploi à cause de cela, c'est masquer massivement l'impact / l'effort de quitter un emploi, et une affiche Internet aléatoire n'est vraiment pas affectée par le fait que OP doit chercher un nouvel emploi, donc le conseil est donné beaucoup plus souvent quel'affiche la suivrait elle-même.
@Flater Je suis d'accord avec votre dernier commentaire, mais c'est la meilleure réponse à la question du PO après tout: si vous vous souciez vraiment de la qualité du code, vous devez comprendre que la plupart du temps, vous ne pouvez pas changer toute l'entreprise dans laquelle vous travaillez, si la direction ne le fait pas.t agir.C'est lutter contre les moulins à vent.Je l'ai lu plus comme "ne le laissez pas devenir trop lourd pour vous, s'il dépasse le seuil, changez" plutôt que "vous devez changer de travail"
@Flater mais ce n'est pas une personne.c'est tout l'environnement de travail, de la direction aux autres codeurs, en passant par les personnes des autres départements.Et c'est dans la mesure où même les autres bons développeurs ont abandonné.Ce n'est pas quelque chose qui se règle facilement.Je conviens qu'il est facile de recommander de changer d'emploi à un inconnu au hasard sur Internet peut être un peu trop jeté, mais je ne vois vraiment pas de solution ici
@Kaddath (et Kevin) Il y a une ligne raisonnable à tracer là où il est acceptable de renflouer une entreprise / un environnement de travail, par rapport à quand c'est juste une attitude toxique de le faire à première vue.La réponse vient correctement du fait qu'il y a _un_ manager qui ne fait pas tout son possible.Le comportement des autres développeurs peut être attribué au fait de faire essentiellement ce qu'on leur dit, ce qui peut conduire à de mauvaises pratiques, mais à première vue, c'est toujours «être un bon employé».Il n'y a aucune raison de penser que si ce gestionnaire est retiré de l'équation, le problème continuera toujours au même degré.
@Flater Que pensez-vous de ma modification?
@Kevin Cette situation n'existe que parce que le patron n'a pas réussi à convaincre l'équipe que rester plus d'un an est une bonne idée.Même si le patron fait une demande ferme, il ne fera probablement que les pousser plus vite.
@ ДамянСтанчев tout le monde a une liste de choses pour lesquelles ils quitteraient un emploi.Bien qu'il y ait un chevauchement évident, cette liste est en pratique quelque peu différente pour nous tous, et donc pour tout état de choses indésirable, il y aura au moins * quelques * personnes qui abandonneront pour cela.Donc, pour à peu près tout, probablement au moins une personne va y participer.
Ertai87
2020-07-07 02:25:55 UTC
view on stackexchange narkive permalink

Pour le moment: ne rien faire. Tout va bien, rien n'est cassé.

La prochaine fois qu'un bug de rupture de production se produit: Criez du haut de vos poumons (pas littéralement) sur la façon dont ce bug aurait pu être évité si nous avions eu des tests pour attraper il. Expliquez comment des tests minutieux et prendre du temps visent spécifiquement à éviter ce type de situation. Quantifiez combien d'argent l'entreprise a perdu et combien de temps d'indisponibilité le service a eu à cause d'un bogue qui n'a pas été détecté mais qui aurait pu être si les développeurs avaient eu plus de temps pour être plus prudents.

La gestion est toujours plus ouverte à un changement de processus lorsqu'ils voient la valeur de première main et immédiatement. Si vous parlez dans l'abstrait, comme "eh bien, nous devrions vraiment faire des tests, car un jour nous pourrions avoir un problème quelque part qui pourrait détruire nos serveurs", personne ne s'en soucie, car aussi probablement que cela puisse arriver, cela pourrait également ne pas arriver, et pour l'instant, cela ne se produit pas, donc personne ne s'en soucie. Cependant, cela finira certainement par arriver, et c'est à ce moment-là que vous pourrez le désigner comme un problème et montrer la valeur immédiatement, pas dans l'abstrait.

Bien sûr, la direction pourrait revenir et dire "eh bien, si vous étiez de meilleurs développeurs, vous ne feriez pas de bogues et vous n’auriez pas besoin de tests ». C'est le moment où vous rafraîchissez votre CV et trouvez un autre emploi. Chaque développeur fait des erreurs; il n'y a aucun développeur qui n'ait jamais expédié de code bogué, et il est de la responsabilité de l'entreprise de donner aux développeurs le temps de s'assurer que leur code est aussi exempt de bogues que possible.

"comment ce bogue aurait-il pu être évité si nous avions eu des tests pour l'attraper" - le pourrait-il vraiment?Il y a un énorme écart entre la mise en place de tests de régression et leur amélioration au point d'avoir une réelle valeur commerciale.Mon point est que suivre vos conseils pourrait mettre OP dans une situation très inconfortable lorsque la PR / régression est appliquée par la direction et qu'un bug similaire se produit en production la semaine prochaine.
En tant que personne qui a fait pression pour qu'un projet particulier ait des tests et beaucoup de temps pour refactoriser les choses qui sont fragiles, mais qui n'a été capable de refactoriser * certains * qu'après une année littérale de développement, cette réponse sonne bien en théorie,mais absolument destructeur dans la pratique.Si vous ne maintenez pas votre code à jour, vous vous retrouvez avec beaucoup de code que vous n'osez pas toucher lorsque quelqu'un décide enfin que vous pouvez passer du temps à maintenir ce code, car tout changement que vous apportez pourrait oupourrait ne pas le casser, et vous ne savez pas quand ni pourquoi cela se produit.
"comment ce bug aurait pu être évité si nous avions eu des tests pour l'attraper" J'étais là, ça n'a pas fonctionné.À la fin de la journée, l'entreprise fera ce qu'elle fera.
Deux améliorations à cela.La première consiste à envoyer un spam à l'équipe en disant "nous allons travailler de cette façon, mais (patron) va prévoir du temps pour que nous puissions le réparer plus tard".Et la seconde est d'avoir un système de notes de publication qui a des notes de version internes et externes séparées, et votre note de publication interne dit en gras "c'est ce que nous n'avons pas fait et nous devons couvrir pour la prochaine fois".De cette façon, vous vous êtes couvert.Vous avez transmis la planification à votre responsable;et la direction a approuvé une version dans laquelle vous avez explicitement priorisé la date de sortie par rapport à la qualité et identifié comment.
... Si cela explose sur un client en raison d'un manque d'examen / de test et que l'entreprise perd de l'argent en conséquence, ne sous-estimez pas le désir des propriétaires d'entreprise de trouver un coupable.Sous ISO-9001, identifier des problèmes connus comme celui-ci est une chose * positive *, car vous prenez des mesures proactives pour une amélioration future.Ne cédez pas à la pression pour diluer la note de publication interne, car la raison pour laquelle vous avez une note de publication interne est de capturer les problèmes connus que vous n'allez pas dire au client.
@iehrlich La plupart des bogues ne sont pas très difficiles à détecter et à corriger.Des tests unitaires et d'intégration simples peuvent détecter la plupart des problèmes, et des tests unitaires et d'intégration soignés peuvent détecter presque tous les problèmes.À l'heure actuelle, OP n'obtient aucune marge de manœuvre de la part des parties prenantes pour faire l'un ou l'autre, et de plus, les parties prenantes ne comprennent pas l'utilité de le faire.Les tests sont-ils garantis pour détecter tous les bogues?Non. Est-il susceptible d'attraper une grande majorité de bogues?Oui.Certains tests offrent-ils une valeur par rapport à aucun test?Absolument.
@Graham Cette suggestion est bien en théorie, mais: 1) OP ne sait pas quels bogues il repousse, car personne dans son équipe ne teste pour voir s'il y a des bogues.S'il y avait des bogues, alors je suis sûr que les ingénieurs de l'équipe n'enverraient pas de code de bogue "juste parce que".Ils prendraient le temps de les réparer.Les ingénieurs pensent que le code est exempt de bogues, mais ne l'ont en aucun cas vérifié.Par conséquent, une telle «note de publication interne» ne fonctionnerait pas.Le problème est que les parties prenantes ne laissent pas la latitude à OP pour tester et corriger ces bogues.
@Ertai87 Bien sûr, vous n'avez pas besoin de savoir quels sont les bogues inconnus.Là où votre note de publication doit donner des résultats de test, elle contient à la place une déclaration en gras "Cela n'a pas été testé selon les procédures de qualité. Les clients peuvent trouver des bogues que les tests auraient résolus. (Manager) exige que cela soit publié tel quel pourraisons commerciales. Les futures versions devraient effectuer des tests. "J'ai vraiment fait cela, et je l'ai fait approuver par le directeur et par l'AQ.Cet avis est resté dans les notes de publication jusqu'à ce que les tests soient réellement effectués.
@Ertai87 Et BTW, si votre organisation suit l'accréditation ISO-9001, alors la partie prenante qui compte est votre responsable QA.Lorsqu'il s'agit de mener la bataille entre les délais et la qualité, ils sont un allié clé.
@Graham Vous supposez également que la société d'OP publie des notes de publication.Je n'ai jamais travaillé sur un projet de ma vie qui avait des notes de publication.La plupart du temps, nous venons d'annoncer aux parties prenantes quand les fonctionnalités qu'ils voulaient ont été implémentées, et les «notes de publication internes» étaient des bogues sur notre traqueur de tickets.
@Ertai87 En 25 ans, je n'ai jamais travaillé sur un projet qui ne l'a pas fait, car j'ai toujours travaillé dans des entreprises qui étaient ISO-9000 (ou BS-5750, l'original).J'ai récemment rejoint une entreprise qui n'a pas de processus de développement approprié, car les logiciels pour eux étaient une réflexion après coup.Une chose que j'apporte à ce parti, ce sont les bonnes pratiques de développement logiciel, et les notes de publication en font vraiment partie.Sans un processus formel de publication, votre logiciel ne sort pas, il s'échappe!
J'ai voté pour cette réponse, mais en partie par vœux pieux.Le cynique en moi pense que cela vous posera probablement encore plus de problèmes.Par exemple."Si vous saviez que c'était un problème, pourquoi ne l'avez-vous pas résolu".Il y a de fortes chances que si vous criiez tout cela, cela ferait de vous un gentil bouc émissaire pour épingler les choses à la place.
@TasosPapastylianou à laquelle la réponse est: "Parce que l'équipe commerciale a dit que cela devait être sorti demain même si nous avions dit que nous avions besoin de plus de temps, la prochaine fois, donnez-nous plus de temps".À quoi ils peuvent soit dire «oui, nous le ferons», soit «non, nous ne le ferons pas» et essayer de vous blâmer davantage.Dans le premier cas, tout va bien, dans le second cas, trouvez un autre emploi.
@Ertai87 Je pense que c'est trop noir et blanc.Vraisemblablement, si vous étiez heureux de trouver un autre emploi _de toute façon_, alors vous n'auriez pas eu à attendre que le prochain bogue de rupture de production se produise juste pour être tout passif-agressif-dans-votre-visage-comme le patron.Dans ce cas, le dernier résultat est en fait assez mauvais, si tout ce que vous espériez faire est de réparer les mauvais processus dans votre lieu de travail préféré.De plus, pour être honnête, ce genre d'attitude est mauvais.Oui, c'était la «faute» de quelqu'un d'autre, mais ce genre de détournement de responsabilité montre un manque de responsabilité et d'initiative de la part de l'employé.
@TasosPapastylianou Si OP dit "Je pense vraiment que nous devrions prendre plus de temps et ne pas déployer demain" et que l'équipe commerciale dit "Vas-y, on va à Leeroy Jenkins à ce sujet", alors ça ne détourne pas quand OP rapporte autant au leadershipquand (pas si) le projet explose.Ce n'est pas non plus passif-agressif de dire "vous avez dit de faire X, j'ai averti que X était une mauvaise idée, vous avez dit de faire X quand même, j'ai fait X comme vous l'avez dit, tout a explosé".C'est une déclaration factuelle.Si cette déclaration factuelle cause un retour de flamme à OP, c'est une raison suffisante pour l'OMI de trouver un autre emploi.
Kevin
2020-07-07 18:43:49 UTC
view on stackexchange narkive permalink

Vous avez mal diagnostiqué votre problème.

Que constatez-vous avec le contournement des normes / avis / etc? C'est un symptôme de votre problème.

Votre problème réel est la combinaison de deux choses:

  • Votre patron ne veut pas être conflictuel sur les choses
  • Vos collègues considèrent le travail comme temporaire et ne font que le minimum

Votre patron a effectivement délégué la confrontation du domaine d'activité à vos collègues ... et vos collègues sont juste suivre le courant jusqu'à ce qu'ils trouvent un autre emploi. Je serais très surpris si les normes en sont le seul symptôme. Vos priorités sont-elles dictées par les cris les plus élevés, et non par ce qui aide le plus l'entreprise? Ce n'est pas un problème distinct de votre question - c'est quelque chose qui aussi découle de ce combo. Etc - il y a probablement des dizaines de problèmes, petits et grands, qui découlent de ces deux facteurs.

En réalité, vous ne pouvez pas résoudre ce problème. Vos meilleurs clichés seraient:

  • Faire en sorte que votre patron commence à faire son travail, ou le faire remplacer par quelqu'un qui le fera.
  • Rendre l'atmosphère de travail suffisamment agréable pour que vos collègues considéré comme une carrière.
Je ne pense pas non plus que vous ayez identifié les vrais problèmes.Le "propriétaire du produit" est propriétaire du produit.S'ils veulent X, ils obtiennent X. Ils obtiennent implicitement aussi la stabilité Y.Le seul problème ici est que la garantie de stabilité est «implicite». S'il y a un retour de flamme, le propriétaire du produit doit en être responsable.Pour chaque demande, CC le propriétaire du produit et dites que vous avez besoin de son approbation.Quand les choses tournent mal, il y a maintenant une chaîne de responsabilité.
TomEberhard
2020-07-07 11:31:38 UTC
view on stackexchange narkive permalink

Pour les vendeurs qui ont besoin d'une fonctionnalité dans leur démo, vous pouvez configurer une succursale de démonstration et un serveur de démonstration. Il suffit de pousser tout ce dont ils ont besoin de toute urgence, puis de le fusionner dans la branche dev et éventuellement la branche master une fois les tests unitaires et la révision du code terminés.

Sauter le processus pour obtenir quelque chose avant la fin du sprint ou avant le standup est idiot et les gains à court terme seront compensés par la nécessité de réparer quelque chose en production. Votre équipe doit comprendre la valeur des tests et de la révision du code, et vous devrez peut-être également réviser vos estimations de points d'histoire s'il y a une précipitation pour commettre des choses inachevées avant la fin du sprint.

À un endroit où je travaillais, nous avions en fait des succursales pour les vendeurs individuels.Cela s'est avéré extrêmement utile, car cela signifiait que chacun avait également son propre environnement de démonstration, avec ses propres données.Nous leur avons donné des scripts pour sauvegarder et restaurer l'environnement à tout moment, afin qu'ils puissent configurer les données de test pour une démo, les enregistrer, puis les restaurer à un point précédent.Fonctionne bien si vous disposez des ressources d'infrastructure pour le prendre en charge.
Si cela ne vous dérange pas de me demander, comment ces branches se sont-elles transformées en environnements de démonstration?
Flater
2020-07-09 00:51:06 UTC
view on stackexchange narkive permalink

Dans les cas où des tiers commencent à se mêler de votre processus, arrêtez simplement de leur expliquer votre processus. Chaque extrait d'informations que vous leur donnez leur donne un nouveau crochet pour expliquer pourquoi vous devriez / ne devriez pas faire quelque chose.

Dans une entreprise où le refactoring était constamment ignoré en raison de délais "urgents" (j'utilise des guillemets car tout était toujours la priorité absolue sans exception), j'ai simplement arrêté de mentionner le refactoring comme une étape distincte (et donc individuellement désactivable) et j'ai commencé à compter le refactoring comme un travail de développement faisant partie de l'estimation.

Au lieu de " 2 jours de développement, 1 jour de révision / refactorisation ", ce qui susciterait toujours la même réaction de la part de la direction (" j'ai besoin que vous libériez après 2 jours, nous n'avons pas le temps de refactoriser "), j'ai plutôt dit" 3 jours de développement " et ne l'a pas décomposé davantage. La direction a perdu la capacité de discuter des parties de mon travail que je pouvais ignorer simplement parce qu'elle ne s'en soucie pas personnellement.

La refactorisation et la révision du code, du point de vue de la gestion à court terme, est un «gaspillage» du temps qui pourrait être consacré au prochain élément facturable. Mais cela améliore considérablement la qualité de vie des développeurs, ce qui réduit l'épuisement des développeurs et les personnes qui quittent, ce qui améliore considérablement le rendement à long terme de l'équipe de développement.

Dans les entreprises où la qualité du code et les développeurs quittant dans moins d'un an est un problème constant, c'est (d'après mon expérience) presque toujours attribué à la direction qui se mêle des processus de développement dont elle n'apprécie pas ou ne comprend pas la valeur. J'ai travaillé dans plusieurs entreprises comme celles-ci.

Certains gestionnaires comprennent l'importance de la qualité de vie de leurs employés, et certains ne s'en soucient pas ou s'en moquent - de toute façon, le résultat est le même. Lorsque je traite avec des gestionnaires qui appartiennent à cette dernière catégorie, je suis toujours économe avec les détails afin qu'ils ne se mêlent pas là où ils ne devraient pas se mêler.

+1, Bob Martin dit: "ne demandez jamais à votre responsable la permission de refactoriser. Vous êtes un développeur de logiciel. Le refactoring est quelque chose que vous faites."
Excellent point.Cela va de pair avec l'adage «Prévoyez d'en jeter un».Il y a l'idéal de l'itération dans le développement logiciel et la réalité de la cruauté et de la dépendance.Vous avez besoin de temps pour essayer des approches, faire des erreurs, réaliser qu'il s'agit d'erreurs et les rectifier avant qu'elles ne deviennent une dette technique.Sinon, cela devient un coût irrécupérable, et vous vous retrouvez souvent avec des applications "héritées" (fragiles) qui "fonctionnent" alors "pourquoi s'embêter avec ça?".
bytepusher
2020-07-07 03:16:27 UTC
view on stackexchange narkive permalink

Cette bataille ne doit être livrée qu'une seule fois si vous convaincez votre patron et suffisamment de vos collègues de mettre en place un système d'autorisations qui ne le permet tout simplement pas.

Nous utilisons GitHub, mais d'autres services ont des options similaires pour autoriser la fusion à la branche principale uniquement après que le code a été approuvé par un propriétaire de code. Naturellement, seuls ceux qui prennent le processus au sérieux devraient être propriétaires de code.

Une fois établi, cela deviendra une nouvelle norme. Il est préférable de ne pas laisser certains processus au hasard.

Les principaux arguments que je ferais à un gestionnaire pour expliquer pourquoi les révisions de code devraient être appliquées:

  • la révision de code est parmi les plus des mesures efficaces pour éviter les bugs. Personnellement, je les trouve plus efficaces que les tests (même si on devrait avoir les deux!). Un bon développeur peut empêcher le pire de la part d'un certain nombre de développeurs moins expérimentés ou motivés.
  • il suffit d'un seul bogue sérieux pour provoquer une perte potentiellement grave de fonctionnalités et / ou de données. Pire encore, d'une certaine manière, est la corruption des données, qui peut ne pas être détectée pendant un certain temps et rendre les procédures de récupération comme les sauvegardes pratiquement inutiles. Cela dépend bien sûr de votre produit.
  • les bogues vont probablement entraîner un coût direct pour l'entreprise en termes de perte de revenus et / ou de clients (encore une fois, cela dépend du produit, mais peu de gens peuvent "se permettre" de être criblé de bugs)
  • en prime, les avis sont un excellent outil de formation
ce.il suffit de configurer la protection des branches et d'exécuter des tests dans votre pipeline CI avant d'autoriser la fusion ... https://docs.github.com/en/github/administering-a-repository/configuring-protected-branches
Bardicer
2020-07-07 21:20:18 UTC
view on stackexchange narkive permalink

Les utilisateurs finaux (ventes, support client, clients / clients / partenaires, etc.) ne doivent pas avoir un accès direct à l'équipe de développement en général. (Si le secrétaire, les vendeurs ou le service client de triage appelle / envoie un e-mail directement aux développeurs, cela doit être résolu et ils doivent contacter l'interface côté métier de l'équipe ... c'est-à-dire le gardien.)

L'équipe de développement doit adresser toute demande concernant l'état d'un correctif / changement / fonctionnalité au gardien de l'équipe (responsable technique / d'équipe, BA, PM, PO, peu importe).

Comme c'est impossible pour isoler complètement une équipe de développement du reste de l'organisation, il est important que le gardien ne soit pas un "oui", soit fier de son travail et comprenne le concept de "la hâte fait du gaspillage".

Si vous faites une approche agile du développement avec des sprints / rétrospectives, en tant que membre de l'équipe de développement, vous pouvez en parler dans la rétrospective. "Nous avons eu beaucoup de relations publiques sans test ni vérification suffisantes, nous devons travailler là-dessus." C'est précisément la raison pour laquelle les rétrospectives sont une chose - "Qu'est-ce qui a bien fonctionné, qu'est-ce qui a mal tourné, que pouvons-nous faire pour réparer les problèmes?"

Si l'un de ces RP provoque le signalement d'un vous voyez que le bogue a été signalé, si vous pouvez le lier au ticket d'origine, faites-le. Assurez-vous également qu'il est attribué à la personne qui l'a introduit (uniquement parce qu'il a l'expérience la plus récente dans ce domaine du code et sera le plus susceptible de résoudre le problème rapidement, bien sûr, pas parce que "vous l'avez cassé, vous corrigez-le ").

Il existe de nombreuses façons de résoudre ce problème - certaines auront plus de succès que d'autres, et cela dépend en grande partie des processus de votre organisation, ainsi que de la personnalité de votre équipe ( y compris votre superviseur).

Je pense que cela dépend.Je peux obtenir une intégration beaucoup plus réussie avec un fournisseur tiers si je saute les deux BA des deux côtés et que les développeurs s'interfacent avec les développeurs.Selon le manifeste agile, c'est également l'approche préférée.Communication en face à face.
@UncleIroh vous avez raison.Cela dépend.Différentes équipes gèrent les choses différemment, et oui, un développeur devrait parler à un développeur.Les professionnels doivent être tenus aussi loin que possible des développeurs.C'est ce que je voulais dire par le contrôle d'accès.Des souvenirs très douloureux d'avoir des gens d'affaires pour des clients qui voulaient un accès direct à mes geeks mais ne voulaient pas que mes geeks et moi ayons accès aux leurs.De plus, le manifeste agile n'est pas destiné à être une bible - l'agilité est une question de flexibilité et de ce qui fonctionne pour vous.Mais je pense que nous sommes d'accord sur le principe, juste certaines choses se sont perdues dans la traduction.
C'est aussi ce que je pense être la meilleure approche.L'équipe de développement doit remettre les questions à son patron.J'aime généralement le faire précéder d'un signe positif."Oui, absolument, mais j'ai besoin que vous le dirigiez d'abord par Sam."Ensuite, vous pouvez commencer à faire pression sur votre patron pour qu'il établisse des priorités réelles.Je recommanderais cela même si votre patron dit toujours oui.Cela ajoute un peu de friction qui élimine les demandes les plus occasionnelles.
@UncleIroh Je pense que cela revient à la micro-gestion par rapport à la macro-gestion.La micro-direction dit "veuillez fournir une réponse écrite à ces trois tickets de support dans cet ordre spécifique; veuillez ignorer tout contact direct";macro-management dit "veuillez passer une journée à nettoyer l'arriéré de tickets de helpdesk pour le client X, voici notre contact technique là-bas; veuillez vérifier avec moi si vous n'êtes pas sûr des priorités ou si quelque chose entre dans le cadre convenu".Il y a aussi une distinction push / pull: en général, le développeur initie le contact avec le client, et non l'inverse.
Ross Millikan
2020-07-07 08:41:31 UTC
view on stackexchange narkive permalink

Les processus doivent être conçus pour que le travail soit effectué avec précision et rapidité. Si les gens contournent régulièrement le système et que le système est bien conçu, vous devriez être en mesure de citer un certain nombre de problèmes qui ont été générés par le contournement. Vous et / ou votre patron (peut-être votre patron armé de vos données) devez dresser une liste précise de ces problèmes - cela a beaucoup plus de poids que de se plaindre simplement du contournement. Si le contournement est aussi courant que vous le dites et que vous ne pouvez pas faire une telle liste, les processus sont erronés. Ils empêchent en fait de faire du bon travail. Il est temps de revoir attentivement le processus. Les étapes de révision éludées ne créent pas de problèmes, alors débarrassez-vous-en. Voir quels problèmes auraient été détectés par quelles critiques. L'organisation doit ensuite définir quels examens sont obligatoires, appliquer ces normes et faire des examens une priorité afin qu'ils aient lieu en temps opportun afin qu'ils ne ralentissent pas trop le travail.

Dominique
2020-07-07 13:09:39 UTC
view on stackexchange narkive permalink

Votre entrée est inutile si elle n'est pas écrite. Par conséquent, je propose de mettre en place un système de journalisation, qui enregistre toutes les actions, effectuées sur une certaine tâche:

Une fois que quelqu'un a implémenté quelque chose, le hachage de validation est ajouté au rapport de bogue, et chaque tâche supplémentaire (revue de code, tests unitaires, ...) est également ajouté au rapport de bogue, de telle manière que vous pouvez facilement trouver les questions suivantes:

  • Quel pourcentage des rapports de bogue réellement a réussi la révision du code?
  • Quel pourcentage des rapports de bogue ont effectivement passé toute la chaîne de développement?
  • ...

possible de consigner pourquoi quelque chose n'est pas fait:

  • examen du code non réussi en raison de la priorisation de l'entreprise.
  • Tests unitaires incomplets (seulement 20% des tests sont effectués)
  • ...

Sans une telle journalisation, vous criez simplement dans le noir.

brokethebuildagain
2020-07-07 22:48:05 UTC
view on stackexchange narkive permalink

Vous avez raison. Tout le monde dans cette situation a tort.

Il semble que vous deviez continuer à être "ce type" qui agace tout le monde en insistant sur le processus . Votre patron ne prend pas le leadership à ce sujet, vous devez donc le faire à la place. En poussant directement vers Master, cela signifie que ce n'est qu'une question de temps avant que votre produit n'aura une échappatoire de qualité qui aura un impact sur vos clients et sur votre équipe.

Vous voulez être la personne qui dit "Je vous l'ai dit" dans ce cas et qui a la communication (e-mails, etc.) pour le sauvegarder. Cela devrait vous mettre dans une meilleure position - vous pourriez même vous retrouver avec le travail de votre patron.

Une autre chose à considérer est de demander de meilleurs outils qui permettent aux gens de suivre le processus et plus difficile à forcer à maîtriser. GitHub et GitLab ont une fonctionnalité de branche protégée qui permet uniquement aux propriétaires de projet de pousser vers master. Vous pouvez même verrouiller votre référentiel afin que les demandes de fusion doivent être approuvées par un autre développeur et une personne chargée du contrôle qualité avant qu’elles ne soient fusionnées. Vous pouvez également obtenir un serveur de génération qui exécute automatiquement des tests unitaires sur une demande de fusion / extraction. Il semble que votre patron soit d'accord avec cela même si, il ne devrait donc pas être trop difficile de le convaincre de commencer à utiliser de meilleurs outils.

N'attendez pas seulement que les choses changent après que quelqu'un a remarqué une grosse erreur. Vous n'avez aucun contrôle sur ce qui se passe si la direction remarque que l'équipe de développement fait de grosses erreurs. Appelez les problèmes tôt et souvent pour vous-même autant que pour le reste de l'équipe.

Bien sûr, si vous êtes fatigué de vous battre, vous avez toujours la possibilité de partir, mais cela pourrait être une opportunité d'avancement de carrière pour vous si vous choisissez de rester.

Le processus existe pour servir l'entreprise, et non l'inverse.Défendre le processus peut très bien être la bonne chose à faire, mais ce n'est pas une question de dogme.Une bonne analyse des risques et un suivi différentiel des bogues peuvent aider à _ quantifier_ la douleur que le non-respect du processus cause à l'entreprise.Cela compense-t-il le coût des opportunités perdues en manquant les délais «urgents»?Cela pourrait aller dans les deux sens, mais quelle que soit la manière, le fait de disposer de données solides renforcera tous les cas de changement.
Je ne pense pas qu'insister sur le fait que personne ne fusionne directement pour maîtriser est vraiment une affaire d'entreprise au service du processus.Il s'agit de vous protéger et de protéger vos clients.Je ne vois pas d'analyse de rentabilisation où vous perdriez des opportunités ou des revenus en n'exécutant même pas une série rapide de tests de régression.Avez-vous vraiment besoin de "données concrètes" alors qu'il existe de nombreux exemples (parfois dans l'actualité internationale) de ce qui arrive aux organisations qui ne testent / n'audit * pas * correctement leurs logiciels?Une évaluation rapide des risques est tout ce dont vous avez besoin pour prouver la valeur du processus IMO.
Si l'analyse des risques "superficielle" comprend également une comptabilisation du coût d'opportunité et une estimation raisonnable du nombre de bogues réellement détectés par les éléments du processus, bien sûr. La situation de l'entreprise dans son cycle de vie aura un impact énorme sur le niveau de processus raisonnable.
Pete
2020-07-09 03:11:39 UTC
view on stackexchange narkive permalink

J'ai eu le plaisir d'assister à un cours Agile donné par Bob Martin ("Oncle Bob"). Si vous ne le connaissez pas, il est l'un des fondateurs de ce que nous appelons Agile.

Le but d'Agile est d'obtenir «cette fonctionnalité que le client veut voir le 1er octobre» devant le client le 1er octobre OU, indiquez très clairement à votre direction le 1er juillet que vous n'allez jamais terminer cette fonctionnalité avant le 1er octobre. À son tour, votre direction indique clairement à votre client le 2 juillet qu'il ne verra pas cette fonctionnalité le 1er octobre. À moins que certains types de changements / compromis ne soient convenus. C'est ce que la direction est censée faire.

Donc, malgré tous les pièges techniques d'Agile en place, il est clair pour moi que votre entreprise ne fait pas vraiment la partie importante. La direction doit savoir ce que veut le client et quand il le veut. Ils ont besoin de visibilité (une métrique quantitative fiable) sur où se trouvent les développeurs. Ces informations doivent être continuellement discutées et ajustées avec le client au fil du temps. C'est Agile.

Les révisions de code, le TDD, la programmation par paires et la refactorisation sont des tâches techniques qui permettent une bonne qualité logicielle et une bonne exécution. Cependant, ces éléments à eux seuls ne signifient pas que l'entreprise utilise un processus Agile. Les responsables doivent gérer à l'aide de données obtenues à partir de ces processus intégrer les commentaires des clients pour ajuster les délais selon les besoins. C'est aussi simple que cela.

La situation dans laquelle vous vous trouvez est que les développeurs essaient d'utiliser de bonnes techniques de fabrication de logiciels dans une entreprise qui n'utilise pas de processus de gestion Agile. Cela ressemble au chaos, où diverses personnes font diverses promesses de manière non coordonnée. En tant que développeur, vous ne pouvez rien y faire.

Dave3of5
2020-07-07 13:14:23 UTC
view on stackexchange narkive permalink

Le point de vue des autres développeurs sur la situation est qu'ils seront probablement ici pour une autre année au plus, donc laisser le code pourrir coûte moins cher que des disputes quotidiennes sur le processus avec diverses personnes qui n'apprécient pas une ingénierie minutieuse.

Je pense que c'est le problème principal. Si les développeurs ont l'impression de ne rester dans l'entreprise que pendant une courte période, sauter les meilleures pratiques pour faire les choses ne semble pas être un gros problème.

Pourquoi les développeurs ont-ils l'impression de l'être ne restera-t-il dans l'entreprise qu'une «année au plus»? Cela semble être une période assez courte pour quiconque envisage de travailler pour une entreprise.

eee
2020-07-07 18:47:24 UTC
view on stackexchange narkive permalink

Il existe plusieurs façons de faire le développement organisé, selon l'équipe et le produit. Le flux qui est maintenant généralement poussé suppose que tout le monde travaille sur tout et apporte des changements fréquents mais mineurs à la même branche principale, mais via la révision du code et les demandes d'extraction.

Ce n'est pas la seule façon de faire le développement. Si "les processus ne sont pas suivis" encore que le développement se déroule bien, peut-être que d'autres règles et processus sont effectivement suivis: programmation par paires, propriété du code, branches de publication, branches de fonctionnalités, branche de développement, développement piloté par les tests ou quelque chose du genre.

Si tel est le cas, il peut être préférable de découvrir et de capturer les processus réels plutôt que d'essayer de corriger ce qui n'est probablement pas interrompu.

HenryM
2020-07-07 13:08:18 UTC
view on stackexchange narkive permalink

Que puis-je faire à ce sujet?

Votre patron vous a dit que vous pouvez repousser afin que j'évite de me sentir sous pression en ignorant la communication qui est conçu pour vous faire pression pendant que vous travaillez déjà sur un élément. Cela entraînera les autres à cesser d'essayer de vous faire pression.

Après avoir lu quelques autres commentaires sur la culture d'entreprise: vous ne pouvez améliorer la culture d'entreprise que si vous êtes dans un poste de gardien (pas nécessairement de gestion) où vous pouvez bloquer quelque chose de se déployer et votre patron vous soutiendra. Cela implique que le grand-père soutiendra votre patron ... que le patron du grand-père le soutiendra et ainsi de suite.

Je salue le commentaire de Gregory Currie: "Il y a une différence raisonnablement grande entre dire quelqu'un quelque chose, et convaincre quelqu'un. Dire à quelqu'un dépend de l'autorité, convaincre peut être fait de plusieurs façons "

J'ai travaillé dans des endroits où la valeur de faire les choses de la bonne façon ne pouvait pas être montré parce que la direction a continué à autoriser des horaires irréalistes. Je ne l'ai pas vu fonctionner là où les gens sont convaincus sans une autorité soutenant de bons processus.

Habituellement, si les choses vont d'une certaine manière, c'est parce que c'est exactement ce que la direction veut, peu importe ce qu'elle dit tu. Ce type avec qui vous travaillez et qui n'a aucun souci de la qualité a été embauché par quelqu'un qui savait qu'il était comme ça ou qui s'en fichait. Si vous avez un délai déraisonnable, c'est parce que plusieurs personnes au-dessus de vous en êtes d'accord. Si vous ne pouvez pas imaginer pourquoi du code de mauvaise qualité est publié, votre patron peut imaginer pourquoi et comprend pourquoi.

En fin de compte, tout ce que nous faisons en tant que développeurs (dans une entreprise) est motivé par les besoins de l'entreprise. Le côté commercial peut avoir une raison légitime de vous forcer à précipiter le code comme s'ils savaient que l'entreprise échouera dans un court laps de temps si les clients ne peuvent pas voir de nouvelles fonctionnalités et attendre que les fonctionnalités soient de meilleure qualité prendrait aussi. longtemps.

J'ai vu des entreprises où elles ont eu la difficulté que vous décrivez. Et puis dans les 1-2 ans, tout le monde est licencié. La direction savait que cela arriverait bien avant les développeurs.

Benjamin
2020-07-06 21:46:51 UTC
view on stackexchange narkive permalink

Parlez à nouveau à votre patron. Votre patron doit déclarer que c'est désormais la loi . S'il ne veut pas de combats constants, inventez des règles suffisamment strictes pour les exceptions afin que les gens ne les prennent pas à la légère.

Si cela dure trop longtemps, les gens s'y habitueront et il sera de plus en plus difficile de changer. Peut-être que le patron doit impliquer son patron.

Vous seul ne pouvez pas faire grand-chose sans votre soutien. Vous pouvez essayer de persuader vos collègues que suivre le processus est bon pour leur CV, et la capacité de dire poliment non fera avancer leur carrière n'importe où. C'est vrai, et aussi difficile à vendre.

Paddy
2020-07-07 12:39:37 UTC
view on stackexchange narkive permalink

Je suis d'accord avec les autres réponses selon lesquelles le processus doit être en place pour une raison et suivi.

Je suis également d'accord pour dire que c'est le travail de votre patron de lutter contre ce combat avec les parties prenantes de l'entreprise et cela devrait être à eux d'expliquer que la sortie à la vitesse du cou augmente considérablement le risque de problèmes d'arrêt de la série (fin de l'activité?).

Cela dit, une façon de mettre fin à ce saut de processus consiste à mettre en œuvre un correctif technique. Vous pouvez `` protéger '' la branche principale et désactiver la possibilité pour les gens d'y pousser sans processus d'examen approprié:

https://docs.github.com/en/github/administering- a-repository / definition-the-mergeability-of-pull-requests

Cela peut également être fait dans d'autres solutions de gestion de référentiel telles que TFS.

Si vous priver les développeurs de la possibilité de précipiter le code vers la production, alors la pression sur eux pour le faire est également supprimée. Cela fait monter la pression vers votre patron (là où elle devrait être) et c'est alors à eux d'avoir ces arguments.

WoJ
2020-07-07 13:02:15 UTC
view on stackexchange narkive permalink

Pour commencer - ce n'est pas de votre responsabilité de résoudre ce problème, mais c'est néanmoins une bonne chose d'être orienté processus.

Vous pouvez suggérer d'utiliser un système CI / CD qui ne permettra le déploiement que lorsque tous les critères (tests, ...) sont remplis. Sinon, le pipeline échoue et la modification est rejetée.

Si vous avez un contrôle suffisamment serré du tuyau, alors ces raccourcis échoueront. Je documenterais également clairement le processus d'exception afin qu'il y ait quelque chose à signaler lorsque le vendeur ou quiconque en a besoin d'urgence.

Ian Kemp
2020-07-09 16:45:15 UTC
view on stackexchange narkive permalink
  • Vos collègues ne voient pas de perspectives à long terme au sein de l'entreprise et n'ont donc aucun intérêt à suivre le processus.
  • Votre patron se contente de faire des déclarations du bout des lèvres sur le processus et n'a aucun intérêt à faire appliquer
  • Les services dépendant des logiciels ne se soucient pas des défauts, juste des choses qu'ils peuvent montrer aux clients hier, donc ils ne se soucient pas non plus du processus.

Il s'agit d'un scénario extrêmement courant dans les entreprises qui ne comprennent pas que leur produit le plus important n'est pas la marchandise ou le produit qu'elles vendent, mais le logiciel qui le sous-tend. Ces entreprises ne donneront jamais la priorité à faire des logiciels «correctement» parce qu'elles n'y voient aucune valeur.

À moins que vous ne soyez en position de pouvoir dans une telle entreprise, vous ne pouvez rien faire pour corriger cela la perception. En tant que tel, votre seule option - si vous souhaitez conserver votre santé mentale - est de trouver un emploi ailleurs, avec une entreprise qui comprend que des logiciels de qualité sont la base de leur succès, et même de leur existence, à l'avenir.

NKCampbell
2020-07-09 21:40:56 UTC
view on stackexchange narkive permalink

Une chose minable à considérer, en réponse à cette citation de la question.

Mon équipe a une variété de processus de développement que le code est techniquement censé passer pour accéder à la branche master. Des tests unitaires et une révision de code.

Non, vous ne le faites pas. Le processus qui se produit est le processus que vous avez et le processus que l’équipe, l’ensemble de l’équipe (à partir des responsables), apprécie réellement.

S'il y a un document quelque part ou un ensemble nébuleux d'idéaux dans la tête de quelques développeurs, c'est bien, mais ce n'est pas votre processus. Une chose que vous pouvez faire est de vous familiariser avec votre processus réel, de vous rendre compte qu'il n'est pas idéal et de vivre avec (et de communiquer les conséquences) ou de convaincre l'équipe de développement de mettre en œuvre des changements structurels qui appliquent de manière plus tangible les processus que vous souhaitez, tels que comme: la fusion ne peut pas se produire physiquement en dehors d'une demande de tirage approuvée, des pipelines de construction automatisés, etc.

Bonne chance - c'est une situation de merde en tant que développeur

Tasos Papastylianou
2020-07-10 01:39:19 UTC
view on stackexchange narkive permalink

Je ne suis pas un expert en la matière, mais mes 2 ¢ seraient ceci:

Chaque fois que des tests / processus sont repoussés, faites une estimation du nombre de bogues que cela équivaut, plus , les dommages que cela représente en termes de perte d'argent pour l'entreprise, plus les heures de travail qui seront nécessaires si cela devient un correctif hérité (qui est généralement beaucoup plus long que le temps nécessaire pour suivre le développement piloté par les tests dans la première place). Malheureusement, cela nécessite évidemment un peu de travail de votre part, ce qui va probablement au-delà de votre description de poste, mais en même temps, des calculs approximatifs sont bons, et vous pouvez probablement avoir une idée pour cela des rapports de bogues précédents liés à des tests manqués, etc.

Assurez-vous de vous en tenir à ces chiffres et mettez-les à jour chaque fois que les tests sont ignorés. Puis, à la fin de chaque réunion, dans un ton business-as-usual (mais pas passif-agressif), notez occasionnellement "la dette technique accumulée jusqu'à présent", selon ces chiffres. Les gens vont rire au début, puis peut-être en avoir assez de l'entendre, mais une fois que ce nombre commencera à grimper, cela pourrait amener les gens à s'en apercevoir. À un moment donné, j'espère que cela atteindra un point de basculement, et la discussion pourrait se dérouler comme suit:

Patron: Informez-moi de la mise en production d'hier.

Vous: Certainement. Hier, nous avons poussé 5000 lignes de code vers git. En raison de l'urgence, nous avons sauté les tests selon la demande, estimée à environ 30 tests unitaires pour ce commit. D'après l'expérience précédente, nous avons constaté que 1 test unitaire ignoré sur 3 se manifeste par un rapport de bogue utilisateur 2-3 mois plus tard, avec un coût estimé à environ 10000 $ en ventes et 40 heures-personnes de correctifs hérités par bogue. , donc l'engagement d'hier coûte environ 100 000 $ de pertes et 400 PH de dette technique. Compte tenu de notre précédente estimation de la dette technique de 470 bogues, moins 30 bogues spécifiquement liés aux tests manquants que nous avons corrigés au cours du dernier mois (nous avons passé environ 1200PH à le faire), plus la dette technique estimée de 10 bogues aujourd'hui, cela apporte notre endettement aujourd'hui jusqu'à environ 450 bogues, ce qui, pour une estimation de 10 000 $ / 40 PH par bogue, cela entraîne une perte estimée à 4 500 000 $ pour l'entreprise plus 18 000 PH de dette technique jusqu'à présent .

Patron: ... Wtf. Ok, bien, réfléchissons à ça. Pousser tôt sans tests a généré pour nous X $ de plus que si nous avions poussé tard ... mais si ce que vous dites sur les tests est vrai, cela nous a également coûté Y $. Peut-être devrions-nous réfléchir à la question de savoir si le coût de la dette technique $ Y compense réellement le bénéfice d'expédition anticipée de X $ dans ce cas ... de combien de temps supplémentaire avez-vous de toute façon besoin pour appliquer ces tests?



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 4.0 sous laquelle il est distribué.
Loading...