64 votes

Est-ce impoli de refactoriser / améliorer le code des membres de l'équipe?

Lorsque vous travaillez sur un projet unique avec une petite équipe, disons, trois développeurs, il est commun pour nous poser des questions aux autres:

"Oh, comment ce travail en classe?" ou "Quels sont les biens que j'cela pour rendre ce arrivé?", comme le code de base augmente, et bien sûr, nous devons utiliser les Api disponibles, les cours, les contrôles, et al. que nous construisons.

Cependant, je suis parfois insatisfaits avec certaines implémentations, mais je ne veux pas de "dire" les autres gens quoi faire.

Parfois, c'est quelque chose d'aussi petit que "au lieu de changer deux propriétés pour faire quelque chose, pourquoi ne pas simplement appeler une méthode avec deux paramètres?" Ce genre de chose.

D'autres fois, c'est quelque chose de légèrement plus grand, comme la façon dont l'ensemble des boîtes de dialogue ont été mis en œuvre tout au long de l'application.

Dans ces cas, je me trouve parfois juste d'aller là-bas une fois que tout a été vérifié, et modifiant le code, puis de communiquer que je viens de changer ceci ou cela, et pourquoi.

C'est que impoli? En aucun cas je dis je sais toujours mieux, c'est purement un cas-par-cas chose.

Mon sentiment est que je veux travailler dans des environnements où les autres n'hésitez pas à améliorer sur ce que j'ai fait, aussi longtemps qu'ils le communiquer à moi par la suite. Non pas parce que je "possède" le code, mais parce que j'aimerais apprendre.

Yay ou non?

Mise à JOUR

Merci pour tous les commentaires. Je tiens à répondre à des réponses spécifiques lorsque je reçois un certain temps.

Pendant ce temps, le principal sentiment que je reçois est que, en tant qu'équipe, nous avons vraiment besoin de régler certaines attentes quant à la façon dont nous nous traitons les uns les autres travaillent. Que ce soit à travers des revues de code, ou que nous venons de dire, "regardez, il est gratuit pour tous!". Non pas que nous le ferions, mais au moins les attentes sont définies.

37voto

Tom Anderson Points 323

La vraie réponse à votre question est PEUT-être. Vous devez vous conformer à des pratiques de votre équipe, et chaque équipe est différente. J'ai refait le top des réponses à générer des avantages et des inconvénients de ce sujet, et a ouvert cette réponse comme un wiki de la communauté.

PROs

Le Code est subordonné à des objectifs

  1. Vous pouvez changer le code des autres. Vous avez la bonne attitude. Personne n' propriétaire du code.
  2. Il est impoli (et même dangereux) pour laisser le problème se glisser sans les modifier.
  3. Il repose sur les résultats. Si le nouveau code est nettement meilleure (plus rapide, moins de ressources, moins de bugs, plus lisible), alors les gens serait insensé de l'objet. J'ai eu mon code s'est amélioré de plus compétent co-travailleurs et reconnaissante.

Changer si il y a une raison impérieuse

  1. Ne pas changer quelque chose à moins qu'il y est une raison impérieuse de le faire. Mais si il y en a un, je ne peux pas en discuter.
  2. Soyez prêt à expliquer les changements. Si l'autre programmeur n'est pas d'accord avec eux, il arrive à garder sa version, ou vous en découdre avec le chef d'équipe.

Le travail d'équipe

  1. Si vous pouvez changer le code, c'est un signe de la force de l'équipe.
  2. Cela ne fonctionne que si l'équipe est vraiment pris forme une équipe.
  3. Apprendre à le faire avec humilité peut vraiment aider une équipe de gel.
  4. Sur l'équipe avec laquelle je travaille, il n'est pas impoli. Nous la pratique collective du code de la propriété -- donc, si quelqu'un rencontre quelque chose qui doit être amélioré, ils sont habilités à fixer.

Normaliser les pratiques de codage

  1. Promouvoir les bonnes pratiques de codage en les partageant. Communiquer avec vos collègues de comprendre pourquoi quelque chose a été fait d'une certaine façon, au lieu de simplement le changer. Parfois, il ya une raison pourquoi quelque chose a été fait dans un sous-optimale.
  2. Si les modifications sont mineures/trivial, le réparer sur place. Si c'est un changement majeur (à grande échelle refactor/modification de conception), le mieux est d'en discuter d'abord avec la personne concernée qui a mis en œuvre le code de plomb avant de creuser pour faire des changements.

CONs

Attention: les Modifications ne sont pas garantis être exempts d'erreurs

  1. Il est important de savoir si vous avez raison sur les améliorations. Si vous faites les choses de cette façon (même si ils ont raison) sans toute l'équipe de la consultation, vous êtes potentiellement un problème dans l'équipe.
  2. Parfois, après vous améliorer quelque chose, il change de revenir plus tard. C'est un signe que pas tout le monde dans l'équipe a une compréhension commune de la situation du code en question. Dans ce cas, l'action appropriée est d'avoir une conversation et de construire une compréhension commune (qui peut ne pas correspondre à votre avis initial) et ensuite décider quoi faire.

Il prend trop de temps

  1. Il prend trop de temps pour discuter des changements, mais si vous faites un changement de fournir des commentaires expliquant le changement. Ou être prêt à discuter de la changer si les gens vous posent des questions à ce sujet plus tard.
  2. Si il y a un manque de transparence et l'impossibilité d'arriver à un consensus sur un problème de conception, ce sera difficile et potentiellement destructrice.
  3. Si vous n'avez rien de plus urgent à faire pour le moment alors refactoring est d'accord. Si vous avez un tas de travail à faire et obtenir le côté suivi de refactoring de code qui n'est pas pertinent pour votre tâche en cours, alors vous peut-être juste de perdre du temps.

Ego

  1. Ce genre de chose honnêtement me dérange pas et je suis sûr qu'il pourrait déranger les autres dans l'équipe si je le faisait. C'est pourquoi nous faire des revues de code et d'offrir des suggestions pour les uns les autres. Je pense faire quelque chose comme ça après l'état de fait peut conduire à de mauvais sang entre les membres de l'équipe.
  2. Lorsque vous traitez avec des égos dans le bureau, vous serait probablement mieux servi que de vous poser la même question. Si vous aviez mis en place quelque chose, auriez-vous l'impression que c'était impoli pour quelqu'un d'autre sur votre équipe de le ré-écrire sans vous faire savoir?
  3. À l'extrême serait quelqu'un qui est en négligeant leur propre tâche/liste de bugs, et commence à l'insertion d'un bug dans les autres peuples de code tout en pensant qu'ils l'ont amélioré. Ce genre de truc, vous obtiendrez méprisé, et, espérons-le feu.

22voto

Robert Harvey Points 103562

Vous avez la bonne attitude. Personne ne possède le code. Toutefois, soyez prêt à expliquer vos modifications. Si l’autre programmeur est en désaccord avec eux, il soit arrive à garder sa version, ou vous en découdre avec le chef d’équipe.

Généralement je ne change pas quelque chose à moins qu’il y a une raison impérieuse de le faire. Mais s’il y en a un, j’ai rarement en discuter. Je n’ai pas le temps de discuter chaque petit changement que je apporter au code. Cependant, je fournissent des commentaires expliquant le changement.

18voto

Sean Reilly Points 9869

Sur l'équipe avec laquelle je travaille, il n'est pas impoli. Nous la pratique collective du code de la propriété -- donc, si quelqu'un rencontre quelque chose qui doit être amélioré, ils sont habilités à fixer.

Parfois, vous pouvez constater qu'après l'amélioration de quelque chose, il change de revenir plus tard. C'est un signe que pas tout le monde dans l'équipe a une compréhension commune de la situation du code en question. Dans ce cas, l'action appropriée est d'avoir une conversation et de construire une compréhension commune (qui peut ne pas correspondre à votre avis initial) et ensuite décider quoi faire.

9voto

Cade Roux Points 53870

Cela ne fonctionne que si l'équipe est vraiment pris forme une équipe.

Si il y a un manque de transparence et l'impossibilité d'arriver à un consensus sur un problème de conception, ce sera difficile et potentiellement destructrice.

Je prendrais si vous pouvez faire cela comme un signe de la force de l'équipe.

Il est également important de savoir si votre jugement est correct dans votre raisonnement sur les améliorations. Peu importe, si vous faire des choses comme ça (même si ils ont raison) sans toute l'équipe de la consultation, vous êtes potentiellement un problème dans l'équipe.

8voto

Sai Ganesh Points 291

Un champ appelé génie logiciel peut être appliqué très efficacement dans votre cas. Que diriez-vous présentant une revue de conception & de la révision du code en cours de développement ?

Et lisez ce livre blanc pour les révisions de code : http://smartbear.com/SmartBear/media/pdfs/WP-CC-11-Best-Practices-of-Peer-Code-Review.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X