À deux reprises, un problème deviendrait trop chaud et conflictuel entre moi et un autre développeur. Je construis mes points de vue en recherchant les meilleures pratiques de codage en ligne et en leur écrivant des e-mails, invitant à la discussion , tout doit être contré par "Ne faites pas confiance à Internet" et "expérience".
Une des choses qu'une nouvelle personne entrant dans n'importe quel secteur doit apprendre est l'humilité. Les déclarations «ne faites pas confiance à Internet» et «expérience» sont en fait tout à fait valables, que vous le sachiez encore ou non. Plus précisément, vous semblez vous heurter à des gens qui ont beaucoup plus d'expérience que vous ... Ils n'aimeront tout simplement pas qu'une personne beaucoup plus jeune se mette en face.
À leurs yeux, vous N'ayez pas les «cicatrices de bataille» qui viennent de passer un nombre impie de nuits tardives à vous cogner la tête contre un mur en essayant de réparer quelque chose qui aurait juste dû marcher. Vous n'êtes probablement pas resté assis pendant des heures à regarder un morceau de code tel que var x = 1 + 1;
et vous avez été déconcerté par la raison pour laquelle le programme insiste sur le fait que x est en fait égal à 3. Une fois que vous avez fait ce, pas seulement une fois mais sur une période de plusieurs années, alors vous commencez à comprendre que l'Internet est souvent faux. Que les idées et les concepts présentés peuvent être de bonnes solutions ... mais dans des situations très spécifiques.
Je sais que j'ai vu un grand nombre de juniors se précipiter pour mettre en œuvre la dernière chose qu'ils ont lu, souvent écrit par un autre jeune homme, sans vraiment comprendre les conséquences. J'ai également passé pas mal de nuits tardives à essayer de sauver un projet lorsque j'ai été appelé pour nettoyer leur désordre. À cette fin, j'ai développé une politique de "si vous ne pouvez pas l'expliquer dans un langage simple et me convaincre que cela résout le problème devant nous, alors vous ne le comprenez pas assez et donc cela n'appartient pas."
Cela dit, la clé ici est vraiment la façon dont vous abordez les choses. Dire à un développeur qui a fait le tour du bloc à plusieurs reprises qu'il a tort ne fonctionnera jamais. Essayer de justifier cela avec un lien vers un article ou même dire "Martin Fowler a dit ..." encore une fois ne fonctionne pas. Les gars expérimentés apprennent à juger un morceau de code ou une approche sur son mérite, pas sur qui est le messager.
Au lieu de cela, vous devez aborder cela dans une direction totalement différente. À savoir, demandez-leur de vous expliquer vous pourquoi votre idée est fausse. Il s'agit essentiellement de psychologie inversée et en leur demandant de signaler vos lacunes (ce qu'ils feront avec plaisir), l'une des deux choses se produira. Soit ils se rendront compte que leur approche est mauvaise et finissent donc par être d'accord avec vous, soit ils vous expliqueront pourquoi vous vous trompez. Les deux devraient être des situations bienvenues.
Regardez les conversations suivantes:
Mauvaise manière
Vous :: "Bob, vous devriez avoir utilisé le modèle d'inversion de contrôle
ici, Martin Fowler dans son article sur www.wherever.com dit que vous devriez. Ce que vous avez fait doit être complètement réécrit."
Bob :: "Cela fonctionne très bien. Vous n'avez pas de classe pour refactoriser? Peut-être CS 101?"
Vous :: "Mais il a dit. .. "
Bob ::" Va-t'en bien! " à part Jim: "Qu'est-ce qu'ils apprennent à ces enfants?"
Ce n'est pas vraiment une bonne approche car cela met immédiatement Bob sur la défensive. De plus, cela montre que vous manquez simplement d'expérience et donc de crédibilité en utilisant uniquement une référence à l'opinion de quelqu'un d'autre pour justifier votre déclaration. Cependant, si vous avez fait quelque chose comme ceci:
Meilleure façon
Vous :: "Bob, qu'est-ce que vous pensez utiliser un modèle IoC ici? Cela ne faciliterait-il pas les tests? Nous pourrions définir un paramètre de configuration afin de savoir dans quel environnement il se trouve et supprimer tout ce code. "
Bob :: "Peut-être ... Bien sûr, peu de gens comprennent comment bien faire l'IoC et se retrouvent généralement avec du code très difficile à lire. Dans ce cas, je préfère avoir quelque chose qui était plus facile à comprendre. "
Approche bien meilleure. Vous avez fait une suggestion et présenté une raison claire expliquant pourquoi cela s'applique tout en vous reportant à l'expérience de Bob. Plutôt que d'être sur la défensive, Bob est maintenant engagé et essaiera naturellement de vous «éduquer». Plus important encore, vous avez la possibilité de donner plus de détails afin de dissiper son inquiétude. Au cours de la discussion, il pourrait changer d'avis ou vous apprendrez certains des pièges avec ce que vous lisez. Dans tous les cas, vous devez apprendre quelque chose d'important.
Pour résoudre les problèmes à ce stade, vous devez faire trois choses. Tout d'abord, arrêtez de citer Internet. Deuxièmement, posez des questions, ne faites pas de déclarations. Troisièmement, sachez de quoi vous parlez avant d'en parler. Cela signifie jouer avec cette «pratique de codage» et l'utiliser dans un projet de test afin que vous sachiez ce qui ne va pas.