Simyl
simylflow
Accueil du cours
Module 4 : Pratiques d'équipe
Leçon 2 sur 5
11 min

Propriété collective du code

N'importe qui peut modifier n'importe quel code. Responsabilité partagée pour l'ensemble de la base de code.

1Pourquoi la propriété collective?

Dans les modèles traditionnels, le code a des propriétaires. « C'est le module d'Alice. » « Parle à Bob pour la couche base de données. » Cela crée des problèmes :

Goulots d'étranglement : Quand Alice est en vacances, son module ne peut pas être modifié. Quand Bob est occupé, le travail sur la base de données s'accumule.

Silos : Les gens ne comprennent pas le code qu'ils ne possèdent pas. L'intégration devient pénible.

Facteur autobus : Si Alice part, les connaissances partent avec elle.

La propriété collective signifie que n'importe qui dans l'équipe peut modifier n'importe quel code. Il n'y a pas de territoires personnels. L'équipe possède la base de code ensemble.

C'est effrayant au début. Les gens ne vont-ils pas briser des choses qu'ils ne comprennent pas? Le code ne deviendra-t-il pas incohérent? Le chaos ne s'ensuivra-t-il pas?

Pas si vous avez les pratiques de soutien.

Le compromis

La propriété individuelle protège le code contre les modifications non informées. La propriété collective permet le flux et l'apprentissage partagé. XP utilise des pratiques (tests, normes, jumelage) pour obtenir les avantages de la propriété collective sans le chaos.

2Faire fonctionner la propriété collective

La propriété collective nécessite des pratiques de soutien :

Tests complets : Si vous brisez quelque chose, les tests le détectent immédiatement. Cela rend sûr pour les non-experts de modifier le code.

Programmation en binôme : Lors de la modification de code inconnu, jumelez-vous avec quelqu'un qui le connaît. Les connaissances se transfèrent et les erreurs sont détectées.

Normes de codage : Un style cohérent signifie que n'importe qui peut lire n'importe quel code. Pas de traduction entre « le style d'Alice » et « le style de Bob ».

Intégration continue : Les modifications s'intègrent immédiatement. Si quelque chose entre en conflit ou se brise, vous le savez rapidement.

Refactorisation : Tout le monde améliore le code en travaillant. La base de code s'améliore, ne se détériore pas, au fil du temps.

Sans ces pratiques, la propriété collective est le chaos. Avec elles, c'est libérateur.

3Le contraste : propriété individuelle

La propriété individuelle a sa place. Elle offre :

  • Profondeur d'expertise : Les propriétaires deviennent de véritables experts dans leur domaine
  • Responsabilité claire : Une personne est responsable
  • Décisions plus rapides : Pas besoin de consensus

Mais les coûts sont élevés :

  • Goulots d'étranglement : Le propriétaire est un point de défaillance unique
  • Accumulation de connaissances : Intentionnelle ou non, l'expertise se concentre
  • Comportement territorial : « Ne touche pas à mon code »
  • Mobilité limitée : Les gens ne peuvent pas facilement changer de focus

XP dit que les coûts l'emportent sur les avantages. La propriété partagée avec des pratiques de soutien bat la propriété individuelle.

Certaines équipes utilisent un hybride : propriétaires primaires et secondaires. Le primaire connaît le mieux le code; le secondaire apprend. Cela fournit de l'expertise tout en réduisant le risque de goulot d'étranglement.

Bonne propriété collective

Un développeur doit corriger un bogue dans un module inconnu. Il ouvre le code, lit les tests, se jumelle avec quelqu'un qui connaît le domaine, fait la correction et exécute tous les tests. Les connaissances se répandent.

Goulot d'étranglement de propriété individuelle

Un bogue critique est trouvé dans le module d'Alice. Alice est en vacances. L'équipe décide d'attendre son retour parce que personne d'autre ne « devrait » toucher à son code. Le bogue reste en production pendant une semaine.

4Surmonter la résistance

Passer à la propriété collective peut être difficile :

« Mais je suis l'expert! » Tu es toujours l'expert. Tu te jumelleras avec d'autres quand ils modifieront ton code. Ton expertise se répand — elle ne diminue pas.

« Les gens vont gâcher mon code. » Les tests protègent contre le gâchis. La revue de code (ou le jumelage) détecte les problèmes. Et « ton » code n'est pas vraiment le tien — c'est celui de l'équipe.

« Je ne peux pas suivre tout le code. » Tu n'as pas à le faire. Tu apprends ce dont tu as besoin quand tu en as besoin. Jumelle-toi avec des experts. Lis les tests. Suis les normes.

« Notre code est trop complexe pour les non-experts. » C'est un code smell, pas un argument de propriété. Le code complexe devrait être simplifié. En attendant, la programmation en binôme protège contre les modifications non informées.

Le changement est autant culturel que technique. Il nécessite confiance, transparence et un état d'esprit de croissance.

5Étapes pratiques

Passer à la propriété collective graduellement :

Semaines 1-2 : Jumelage inter-domaines. Faites jumeler les experts avec les non-experts sur le code de chacun.

Semaines 3-4 : Retirez les étiquettes de propriété explicites. Arrêtez de dire « le module d'Alice ». Commencez à dire « le module de paiement ».

Semaines 5-6 : Encouragez la pollinisation croisée. Lors de l'attribution des histoires, mettez intentionnellement les gens sur du code inconnu (avec soutien de jumelage).

En continu : Célébrez le partage des connaissances. Reconnaissez quand quelqu'un apprend un nouveau domaine ou quand un « propriétaire » transfère avec succès ses connaissances.

Mesurez le facteur autobus : Combien de personnes peuvent travailler de manière significative sur chaque domaine de la base de code? Visez au moins 2, idéalement 3+.

Une vérification rapide du facteur autobus : pour chaque domaine majeur du code, qui pourrait corriger un bogue de production là à 3 h du matin? Si la réponse est une personne, vous avez un problème.

Points clés
  • La propriété collective élimine les goulots d'étranglement et répand les connaissances
  • Elle nécessite des pratiques de soutien : tests, jumelage, normes, intégration continue
  • La propriété individuelle fournit de l'expertise au prix de goulots d'étranglement
  • Le changement culturel nécessite confiance et un état d'esprit de croissance
  • Mesurez le facteur autobus : combien de personnes peuvent travailler sur chaque domaine?
Pièges courants à éviter
  • Propriété collective sans tests (les modifications brisent des choses)
  • Propriété collective sans jumelage (les erreurs ne sont pas détectées)
  • Retrait forcé de la propriété sans adhésion culturelle
  • Confondre propriété collective avec absence de responsabilité

Exercices pratiques