web-dev-qa-db-fra.com

À quel moment la critique "constructive" de votre code est-elle inutile?

J'ai récemment commencé comme un développeur junior. En plus d'être l'une des personnes les moins expérimentées de l'équipe, je suis aussi une femme, qui vient avec toutes sortes de ses propres défis travaillant dans un environnement dominé par des hommes. J'ai eu des problèmes récemment parce que j'ai l'impression d'avoir trop de critique pédagogique injustifiée sur mon travail. Permettez-moi de vous donner un exemple de ce qui s'est passé récemment.

Le chef de l'équipe était trop occupé pour pousser dans certaines branches que j'ai faite, alors il ne leur est pas arrivé avant le week-end. J'ai vérifié mon courrier, pas vraiment de sens pour faire du travail et j'ai constaté que mes deux branches avaient été rejetées sur la base de noms de variables, en faisant des messages d'erreur plus descriptifs et déplacez certaines valeurs dans le fichier de configuration.

Je n'ai pas envie de rejeter ma branche sur cette base est utile. Beaucoup de gens travaillaient pendant le week-end et je n'avais jamais dit que je travaillerais. Effectivement, certaines personnes ont probablement été bloquées parce que je n'avais pas le temps de faire les changements et de soumettre à nouveau. Nous travaillons sur un projet très sensible à la taille du temps et il me semble que ce n'est pas utile de rejeter le code de rejeter clairement basé sur des choses transparentes pour le client. Je me trompe peut-être, mais cela semble que ce genre de choses devait être traitée dans le type de patch comme j'ai le temps.

Maintenant, je peux voir que dans certains environnements, ce serait la norme. Cependant, la critique ne semble pas également distribuée de manière égale, ce qui conduit à mon prochain problème. La base de la plupart de ces problèmes était due au fait que j'étais dans une base de base que quelqu'un d'autre avait écrit et essayait d'être peu invasif. J'immoutitais les noms de variables utilisés ailleurs dans le fichier. Quand je l'ai dit, j'étais franchement dit: "N'impacez pas les autres, faites ce qui est juste." C'est peut-être la chose la moins utile que j'aurais pu être racontée. Si le code déjà enregistré est inacceptable, comment suis-je censé dire ce qui est juste et ce qui ne va pas? Si la base de la confusion provenait du code sous-jacent, je ne pense pas qu'il est de ma responsabilité de passer des heures à refactons tout un dossier que quelqu'un d'autre a écrit (et fonctionne parfaitement), introduisant potentiellement de nouveaux bugs, etc.

Je me sens vraiment distingué et frustré dans cette situation. J'en ai beaucoup amélioré à la suite des normes attendues et je me sens frustré que, par exemple, lorsque je refacteur un morceau de code pour ajouter une vérification des erreurs précédemment manquante, je n'ai dit que je ne l'ai pas fait Faites suffisamment d'erreurs verbose (et la branche a été rejetée sur cette base). Et si je n'avais jamais ajouté ça pour commencer? Comment s'est-il entré dans le code pour commencer si c'était tellement faux? C'est pourquoi je me sens tellement distingué: je rencontre constamment ce code problématique existant, que je imite ou refacteur. Quand je l'imite, c'est "faux", et si je le refactteur, je suis en train de ne pas faire assez (et si je vais tout le chemin, introduisant des bugs, etc.). Encore une fois, si cela est un tel problème, je ne comprends pas comment le code pénètre dans le codeBase et pourquoi cela devient ma responsabilité lorsqu'il a été écrit par quelqu'un d'autre, qui n'avait apparemment pas son code examiné.

Quoi qu'il en soit, comment puis-je gérer cela? N'oubliez pas que j'ai dit au sommet que je suis une femme, et je suis sûr que ces gars ne doivent généralement pas avoir à s'inquiéter du décorum quand ils examinent le code d'autres gars, mais honnêtement qui ne fonctionne pas pour moi et cela me faisait moins productif. Je crains que si je parle à mon responsable à ce sujet, il pensera que je ne peux pas manipuler l'environnement, etc.

40
user15859

On dirait que vous prenez peut-être ce genre de choses un peu trop personnellement. Ne pas; Ce genre de chose arrive tout le temps.

Les raisons de rejeter votre check-in (nom de nommage variable, qualité de commentaire, emplacement de configuration) semblent joli standard pour moi.

Le moment de c'était la décision de votre équipe, et je ne m'inquiéterais pas à ce sujet si j'étais vous. Si quelqu'un est bloqué au cours du week-end, le fil de l'équipe pourrait choisir de permettre l'enregistrement et de vous demander de le réparer par la suite. S'il estimait qu'il était approprié de bousculer, même s'il pourrait bloquer d'autres devs, c'est sa responsabilité.

En ce qui concerne l'équipe, dirigez-vous de ne pas imiter les autres mais de faire ce qui a raison, cela ressemble à il d'essayer de vous donner une initiative pour améliorer la base du code. C'est un bon signe. Il vous fait confiance à utiliser votre jugement, alors allez-y et faites ce que vous savez a raison. Cela ne signifie pas que vous devez aller changer le code de tout le monde, mais cela signifie que vous devez assumer la responsabilité de la qualité du code que vous écrivez.

25
Eric King

Un ajout aux autres réponses:

En tant que développeur principal, je suis généralement plus difficile avec les Devs junior car ils sont beaucoup plus malléables que ceux qui travaillent depuis quelques années. (Mes compétences de PPL ne sont pas si bonnes ... encore.)

Il est très difficile de changer quelqu'un qui travaille (et gagne un salaire décent) pendant un moment et est satisfait de son niveau de code (même si la qualité pourrait être améliorée). Ces gars ne se soucient pas si vous essayez de les guider pour devenir de meilleurs/de grands programmeurs. Ils travaillent heureux dans le code-usine.

Nouveaux gars, comme vous-même, OTOH, habituellement aspirant à des conseils et à savoir ce qui est juste et non. En outre, ils sont capables d'absorber de fruits et de changer leurs façons pour le mieux. Ils ne sont pas définis de différentes manières.

Si vous prenez ces conseils à cœur et faites-leur une partie de votre vie quotidienne, vous constaterez qu'en aucun temps, vous écrirez du code supérieur à une grande partie de la base de code existante.

Donc ...

.. Cela pourrait être que vous obtenez plus de commentaires simplement parce que vous avez le potentiel de faire quelque chose. :)

14
Macke

C'est tout à fait possible que vous soyez distingué parce que ... vous êtes un développeur junior.

De votre description, on dirait que vous n'avez pas suivi la norme comme le périmètre de l'équipe le perçoit.

La solution est simple:

  • Si c'est la norme, suivez-la.
  • Si vous ne comprenez pas la norme, demandez des éclaircissements.
  • Si votre interprétation de la norme ou des instructions diffère des dirigeants de l'équipe, demandez des éclaircissements

Ne pas en faire une bataille; Si vous essayez de rendre l'équipe diriger "faux", alors même si vous gagnez, vous perdez. Apprenez la leçon appropriée et continuez à croître.

13
Steven A. Lowe

Note de l'auteur

Quelques années plus tard; J'ai modifié cela pour refléter plus précisément ce que je ressens sur la situation. Je mettant plus de nuance dans ma réponse parce que j'apprends plus sur Nuance dans ces situations. Il est facile de réclamer une réponse "noire ou blanche", mais nous savons tous que ce n'est pas si simple. Ma réponse reflète maintenant cela.

De ce que vous avez décrit; Le comportement que vous rencontrez ne semble rien avoir à faire avec votre sexe. Cela ne veut pas dire que vous n'avez pas de traitement de sexe (j'espère que vous n'êtes pas), seulement que ce que vous décrivez ne semble pas être associé au genre.

Quand j'étais un chef d'équipe, j'ai traité tout le monde de manière égale. Il n'y a pas de place dans la technologie pour traiter mal quelqu'un à cause de leur sexe. Je ne sais pas comment traiter avec ça si cela vous arrive.

Il est important que vous fassiez confiance à ce que votre équipe file traite des hommes et des femmes de manière égale. S'il y a des preuves, il ne l'est pas, le vieil adage s'applique: Changez votre environnement ou modifiez votre environnement.

De même, je veux dire qu'il traite tout le monde également sans déférence au genre. S'il fait son travail correctement, vous ne devriez pas le voir critiquer quiconque; et ils ne devraient pas le voir critiquer. Devant d'autres, il est très important que le chef d'équipe montre la confiance, même s'il vient de passer les cinq dernières minutes avant de corriger le comportement en privé.

Maintenant, sur les problèmes que vous avez soulevés:

Vous avez vérifié dans le code qui n'a pas répondu à la norme qu'il a définie, alors il a rejeté votre succursale. Si j'étais à sa place, je n'aurais pas fait la même chose de la même manière, mais je m'assurerais que mes subordonnés (mot impair; parce que je ne pense pas à un dirigeant comme "supérieur" aux gens qu'ils ont Diriger; mais il décrit avec précision (pas de manière adéquate) la situation) Savoir quelle est la bonne chose à faire, c'est. S'ils ne savent pas quelles sont les normes, c'est ma faute en tant que chef de file. C'est à moi de le corriger. Dans ce cas, vous avez peut-être commis une erreur, mais le fait que cela se produisait signifie que vous étiez soit 1) à ne pas dire ce que la bonne chose à faire était ou 2) n'a pas été mentorée de manière appropriée. Votre faute n'est pas non plus.

L'une des parties les plus importantes d'être un programmeur est de se rendre compte que la base de code que vous travaillez doit être maintenue par de nombreuses personnes différentes. Toute Messups variable ou d'autres choses qui empêchent de pouvoir lire le code ne sont pas transparentes pour le client , car il faut plus de temps pour résoudre les problèmes dans le code qui est plus difficile à lire.

Si votre équipe a écrit des directives de codage, suivez-les. S'ils ne le font pas, il devrait y avoir une sorte de convention communautaire pour votre langue (pour .NET et C #, Microsoft a une norme que beaucoup d'entreprises suivent).

Demandez à votre équipe dans laquelle les directives de codage sont pour que vous puissiez vous assurer de les suivre. Prenez deux enregistrements à vos réunions où deux autres développeurs n'ont pas systématiquement suivi des directives, de sorte que, lorsqu'il dit qu'il n'y en ait pas, vous pouvez souligner que d'autres semblent avoir des problèmes avec cela aussi, et tout le monde bénéficierait d'avoir ces lignes directrices.

S'il vous traite équitablement, il verra cela et cela devrait être au sommet de sa liste de choses à faire. S'il ne vous traite pas équitablement, vous avez des munitions si cela continue à se produire.

Dire "Je vais y arriver plus tard" est mauvais. Plus tard n'arrive jamais. Prenez le temps de le faire correctement. Il n'y a pas plus tard dans la programmation.

C'est dur quand vous êtes un développeur junior. Vous vous sentez sous pression pour effectuer et il y a beaucoup de gens qui vous regardent, et chaque erreur que vous faites est liée à votre nom dans le contrôle de la source pour toujours.

10
George Stocker

Je n'ai pas envie de rejeter ma branche sur cette base est utile. Beaucoup de gens travaillaient pendant le week-end et je n'avais jamais dit que je travaillerais. Effectivement, certaines personnes ont probablement été bloquées parce que je n'avais pas le temps de faire les changements et de soumettre à nouveau. Nous travaillons sur un projet très sensible à la taille du temps et il me semble que ce n'est pas utile de rejeter le code de rejeter clairement basé sur des choses transparentes pour le client. Je me trompe peut-être, mais cela semble que ce genre de choses devait être traitée dans le type de patch comme j'ai le temps.

Il est difficile de dire quoi que ce soit utile comme une personne qui n'a pas vu votre code ni sa connaissance de votre horaire de projets. Mais, si votre plomb se comporte de manière responsable et ce qui fait un bon travail, il sait que d'autres n'étaient pas vraiment bloqués et que le sprint ne sera pas en retard. Alors, ne vous inquiétez pas pour ça. Peut-être Vous dépassez l'impact sur votre commit. Sinon: si votre projet est critique et passe tous les tests, il serait trop difficile de rejeter le code, ce qui pourrait être fixé après la libération en un clin d'œil.

Faites que cela fonctionne correctement le rendre rapide

Donc, si votre responsable a pris la décision de rejeter votre commit, en tant que professionnel Il devrait savoir, ce qu'il faisait.

Maintenant, je peux voir que dans certains environnements, ce serait la norme. Cependant, la critique ne semble pas également distribuée de manière égale, ce qui conduit à mon prochain problème. La base de la plupart de ces problèmes était due au fait que j'étais dans une base de base que quelqu'un d'autre avait écrit et essayait d'être peu invasif. J'immoutitais les noms de variables utilisés ailleurs dans le fichier. Quand je l'ai dit, j'étais franchement dit: "N'impacez pas les autres, faites ce qui est juste."

En tant que junior, il est difficile de trouver autre chose dans une base de sociétés.

Meilleur: Il y a documenté Normes de codage - et vous espérez-vous apprendre à y avoir des poignées.

Habituellement: il y a non-documenté Normes de codage - et vous devez apprendre via Essai et erreur ou dois-je dire Commouver et _Reject? Ceci est souvent douloureux (comme dans votre cas). Ceci est parfois dangereux en termes de qualité de code et pourrait conduire à programmation de Cult de cargaison , où l'on non seulement Mimics Nommage de la variable, mais copie et pâtes de structures et de motifs de la base de code de bonne foi, il doit être fait comme ça. Ne faites pas cela! Ne pas même imiter la dénomination variable existante.

Stick to Clean Code . C'est une bonne pratique et vous donne une position facile à défendre. S'il s'agit d'un code lisible, testable et maintenable, vous avez la plupart des discussions.

Et cela conduit à un autre (le dernier) conseil: suivez la Rule Boy Scout !

Toujours quitter le codebase dans un meilleur état que c'était. Même si le code environnant que vous travaillez est méchant, créez le vôtre propre - et si vous avez le temps de réparer les environs.

1
Thomas Junk

Prenez un peu de temps pour apprendre les différentes nuances des personnalités de vos collègues. D'après mon expérience, vous pouvez éviter une critique irrationnelle, inutile, incohérente ou tout simplement sans valeur si vous travaillez autour de vos collègues bizarreries.

Par exemple, certains collègues peuvent avoir une hippover le lundi. Ils peuvent être très irritables et trop désireux de rejeter certaines branches de code ou commettre. Si vous devez travailler avec quelqu'un comme ça, essayez d'éviter de commettre le code le lundi.

D'autre part, un collègue hippover peut être trop blasé pour se soucier de la verbosité des messages d'erreur ... Donc, le lundi matin peut être le moment idéal pour commettre votre code :-p

Les bizarreries de personnalité dans le bureau ou le lieu de travail sont littéralement infinies. J'espère que vous pourrez apprendre qui éviter et quand les éviter. Ne soyez pas aussi trop fort sur vous-même :-) Vous pouvez toujours arrêter de fumer et trouver un autre emploi!

0
MrDatabase