Et si coder à deux (pair programming) était une des clés du succès ? Projet de recherche sur les impacts de cette pratique sur la productivité (RAILS ou Python/PHP)
Quel est l’impact du pair programming sur la productivité et la progression des développeurs, individuellement et collectivement ?

Missions

  • Faire un état des lieux des études sur le sujet.
  • Définir un protocole de recherche pour mesurer l’impact du pair programming.
  • Se constituer une expérience professionnelle en intégrant une équipe projet.
  • Proposer la mise en place du protocole sur d’autres projets OCTO et collecter les résultats.
  • Rédiger et publier ses conclusions.

Conditions

Type de stage : Stage de fin d'études (pré-embauche)
Lieu : 34, avenue de l'Opéra 75002 Paris
Rémunération : 1500 € bruts
Date : Début 2017

Profil

  • Vous êtes actuellement en dernière année d’école d’ingénieur ou d’université.
  • Vous avez déjà eu l’occasion de travailler sur un protocole de recherche, sa mise en place et la rédaction du mémoire associé.
  • Vous avez des bases en programmation.
  • Vous êtes curieux(se) des pratiques de l’eXtreme Programming et souhaitez les expérimenter en contexte professionnel.
  • Vous aimez partager votre savoir et faire progresser les autres.
  • Vous avez envie de contribuer à l’amélioration globale des pratiques de développement.
  • Vous êtes autant intéressé(e) par les sciences humaines que par la programmation.
  • Vous possédez un niveau d’anglais vous permettant de lire des papiers de recherche dans cette langue
  • L’expression orale et écrite ne vous font pas peur.

Contexte

Le pair programming est une pratique de développement popularisée par l’eXtreme Programming à la fin des années 90. Elle consiste à avoir deux développeurs travaillant sur un seul ordinateur. Pendant que l’un contrôle le clavier et l’écriture du code, le second va faire une revue de ce qui est produit et proposer des améliorations. Les deux coéquipiers changent très régulièrement de rôle.

Aujourd’hui, la pratique a ses partisans et ses détracteurs. Ses partisans mettent en avant, entre autres, la meilleure qualité du code produit, un meilleur partage des connaissances et une meilleure montée en compétence. Ses détracteurs lui reprochent la perte de productivité qu’elle induit pour des résultats que l’on pourrait obtenir autrement.

Chez OCTO Technology, nous sommes des partisans de cette pratique. Mais, alors que l’eXtreme Programming prône le pair programming tout au long de la journée et chaque jour de la semaine, nous avons opté pour une version partielle et plus accessible. Ainsi, les binômes se forment seulement sur les tâches complexes et/ou critiques ou lors d’une demande d’assistance (pour résoudre un problème ou tout simplement pour un besoin de montée en compétence).

L’objectif de ce stage sera d’identifier les différences observées entre le pair programming constant, le pair programming partiel et l’absence de pair programming, sur les critères suivants :
- Qualité du code
- Productivité
- Progression technique
- Compréhension de l’existant


Il serait intéressant aussi d’observer l’impact que la pratique peut avoir sur son état de fatigue et de concentration (et si cela varie au fil du temps).

Objectifs du stage

Etape 1 : Etat des lieux et synthèse
Dans cette première étape, vous serez d’abord amené(e) à trouver, lire et synthétiser les différentes recherches et études ayant déjà été effectuées sur le sujet. Ensuite, il nous semble intéressant de synthétiser les retours d’expériences, positifs ou négatifs, qui existent sur la pratique afin d’en tirer des axes d’observations.

Etape 2 : Définition d’un protocole de recherche
Dans cette deuxième étape, vous serez amené(e) à définir un protocole de recherche vous permettant de recueillir des données sur l’impact de la mise en place complète ou partielle du pair programming au sein d’une équipe de développement. Il sera notamment essentiel de définir des indicateurs à surveiller.

Etape 3 : Identification d’un ou plusieurs projets pilotes sur lesquels appliquer le protocole
Il est essentiel d’appliquer le protocole à plusieurs projets pour pouvoir comparer les résultats. Il sera notamment intéressant de mesurer l’impact de la mise en place du pair programming sur des projets n’étant pas au même stade de leur cycle de vie.

Etape 4 : Application du protocole sur soi-même
En plus d’une étude plus chiffrée, nous souhaitons avoir le ressenti d’une personne appliquant le pair programming, total ou partiel. Nous pensons que cela peut faire l’objet d’un rapport d’étonnement, qui étaiera l’étude complète. Cette mise en pratique se fera en intégrant une des différentes équipes produits OCTO.

Etape 5 : Analyse et partage des premiers résultats
Nous avons conscience que ces 6 mois ne permettront peut être pas d’avoir suffisamment de données pour en tirer l’intégralité des conclusions. Toutefois, nous espérons voir émerger des premiers résultats. Ce sera l’occasion pour vous de les partager sous forme d’une présentation orale d’une heure devant la communauté OCTO et d'un article sur blog.octo.com.

Encadrement

Vous serez encadré(e) par un membre la tribu CRAFT. Vous serez d’ailleurs intégré(e) à cette équipe, constituée de 15 personnes passionnées par les pratiques de développement de qualité. Vous serez suivi(e) et aidé(e) tout au long de votre stage par votre tuteur (au moins un entretien hebdomadaire de 30 min et une demi-journée de présence) et la communauté OCTO (via des mailing list internes très actives ou en demandant de l’aide dans votre open space).