web-dev-qa-db-fra.com

Paire de la programmation / collaboration dans une petite entreprise

Je travaille dans une petite entreprise de développement en tant que développeur principal. Nous avons deux autres développeurs, ainsi que mon patron qui est un développeur, mais qui ne fait plus vraiment beaucoup de codage.

Le problème que j'essaie de surmonter est multifacété. Nous avons tendance à travailler sur nos propres projets sans beaucoup de collaboration entre nous. En fait, je (comme le développeur le plus avancé) demande l'opinion des autres/aidez plus que ce qu'ils font le mien, car j'apprécie la contribution d'un œil extérieur.

Je veux augmenter notre collaboration et leur avez exprimé cela. En grande partie parce que j'aimerais leur montrer certaines choses sur la manière de devenir de meilleurs développeurs et de suivre de meilleures pratiques. Mais compte tenu de nos types de personnalité des autres développeurs, je pense qu'ils sont plus à l'aise de travailler seuls.

J'ai lu sur la programmation par paire et j'ai lu (dans certains forums) qu'il ne fonctionne pas bien lorsque vous avez un développeur étant plus avancé que les autres (que je suis). Et pourtant, je pense que c'est impératif que nous commençons à collaborer afin que notre travail ne soit pas si disparat.

Ma question est de savoir si quelqu'un a déjà été dans une situation similaire et ce qui a fonctionné pour eux?

Je me rends compte que ce n'est pas une situation unique, mais je suis prêt à donner plusieurs approches un coup.

Nous travaillons tous dans une zone commune, les développeurs n'ont pas de bureaux/cabines individuels.

20
Ryan Williams

Comme il a déjà été discuté dans d'autres réponses pourquoi la programmation par paire n'est pas une solution pour vous , je vais discuter de ce que nous avons actuellement expérimenté et satisfait des résultats.

À mon avis, ce que vous pouvez faire pour accroître la collaboration, c'est avoir deux personnes ensemble sur chaque projet. Chacun d'entre eux travaille sur une autre partie du projet, mais parce que ces pièces doivent être intégrées aux deux développeurs doivent collaborer. Cela nécessite également que les deux programmeurs discutent de l'architecture (superposition et interfaces) du projet, puis décident de prendre des rôles différents.

Et, si cette approche limite le nombre de projets que votre entreprise peut gérer à la fois, vous pouvez affecter simultanément cette paire de paires collaboratrice.

Nous avons récemment expérimenté cette approche, en ayant l'un d'entre eux développer modèles + Intégration avec API et l'autre manipulation de programmeurs Vues et contrôleurs . Nous avons trouvé à la suite des avantages de ce paramètre:

  1. La structure de code résulte d'une manière bien meilleure que si elle ne travaille que sur tous les aspects du projet.
  2. Nous n'avons pas à leur rappeler de commettre du code au référentiel, etc.
  3. Ils doivent faire des efforts pour tester chaque autre code, au lieu de s'appuyer uniquement sur notre QA dédié.
12
Ozair Kafray

À mon avis, la programmation par paire n'est pas la solution au problème que vous soulevez.

Il y a deux rôles distincts dans une programmation paire. Le Observer est là pour examiner et commenter le code écrit par le pilote. Si vous essayez de transmettre des idées pour améliorer les décisions, vos programmeurs juniors font, je me demande à quel point vous pouvez trouver leur capacité à examiner de manière critique le code que vous écrivez lorsque vous effectuez le rôle du pilote.

Sans cette dynamique, le bénéfice de la programmation par paire est perdu.

En tant que programmeur principal, je vous suggère de considérer un programme plus fort de la formation et du développement des employés avec votre patron. Vos programmeurs juniors doivent recevoir un cadre pour améliorer leurs compétences. Généralement, vous pouvez utiliser des méthodes telles que des lumières, écrire un document de normes de codage, diviser les tâches autonomes de votre propre travail et assurer des processus de revue de code appropriés sont en place.

7
user96303

Je ne pense pas que la programmation par paire est quelque chose qui vous aiderait dans votre environnement. Ce n'est pas que cela ne contribuerait pas aux développeurs moins expérimentés dans les compétences - il y a même ne question de programmeurs sur la programmation par paire avec des ingénieurs de niveaux de compétence variable . Même s'il existe des avantages tels que le partage des connaissances et moins d'erreurs, la programmation par paire nécessite un investissement de plus grand temps. Avec une équipe de trois développeurs et seulement quatre personnes ayant des arrière-plans/expériences de développement, le maintien d'une routine de programmation par paire semble être difficile.

Je pense qu'une meilleure alternative dans votre situation concerne les critiques, surtout si vous les adaptez correctement. Un examen de code pourrait se composer de quelque chose d'une personne à la recherche d'un petit peu de code et de fournir des commentaires à plusieurs personnes (même toute l'équipe) dans une pièce d'une heure ou deux pour examiner la conception et la mise en œuvre d'un composant complet. Celles-ci peuvent être modifiées, le cas échéant, sur la base des connaissances, des expériences et des besoins de l'équipe. Vous pouvez toujours obtenir l'aspect de partage des connaissances en présentant plusieurs personnes participant à l'examen aux fins de la recherche de problèmes, de fournir des suggestions et de gagner des connaissances en lisant les résultats de l'examen pour intégrer les commentaires dans leur propre travail, avant qu'ils ne soient examinés. . Cela présente également l'avantage de laisser les autres développeurs travailler individuellement jusqu'à ce qu'ils considèrent que leur travail soit fait, mais fournit toujours un lieu de réalisation de vos objectifs souhaités tout en utilisant les connaissances et les compétences de l'équipe.

4
Thomas Owens

Ma question est de savoir si quelqu'un a déjà été dans une situation similaire et ce qui a fonctionné pour eux.

Puisque vous invitez votre expérience, voici ce que j'ai fait. J'ai choisi l'approche à faible risque et j'ai demandé à quelqu'un de décennie plus jeune que moi de passer du temps à travailler ensemble. Nous n'avons pas étiqueté l'activité. Personne, à l'exception de moi, savait que nous essayions une nouvelle technique.

Je ne sais pas exactement quels détails à raconter, mais le processus a très bien fonctionné. Il voulait être encadré, ce qui était quelque chose que je n'avais eu aucune idée d'avance. Il a donc ouvert la communication dans les deux directions de manière très positive.

En fait, je (comme le développeur le plus avancé) demande l'opinion des autres/aidez plus que ce qu'ils font le mien, car j'apprécie la contribution d'un œil extérieur.

On dirait que vous pouviez encadrer cela comme une progression logique de ce que vous faites actuellement.

2
dcaswell