Je n'ai jamais fait de programmation par paires dans la pratique (je l'espérais seulement), donc je ne peux pas comparer directement les deux pratiques. Cependant, je peux raconter mes expériences avec des revues de code formelles.
J'avais l'habitude de diriger des revues de code formelles dans un projet précédent, sur le code hérité. Le projet était dans un désordre complet et la direction a accueilli toute initiative dans l'espoir de mettre de l'ordre dans le chaos. À cette époque, je pensais que la révision formelle du code était une bonne idée. Nous avons trouvé des bogues et nous avons constaté que la qualité du code fraîchement écrit était bien meilleure que celle de l'ancien code. J'ai collecté des statistiques, le nombre de bogues, etc. pour le prouver.
Nous avons fait une session par semaine en moyenne, impliquant 3-5 personnes. Chaque session a duré environ 3 à 4 heures par personne (préparation comprise) et a examiné 200 à 300 lignes de code (LOC) *. À ce rythme, pendant une période de plus de 6 mois, nous avons réussi à revoir environ 5K LOC, sur environ 50K.
Rétrospectivement, je pense que c'était très coûteux. Avec ce rythme, il nous aurait fallu 5 ans pour revoir l'intégralité de la base de code héritée. OTOH ayant plus d'une session par semaine aurait enlevé des ressources au développement. Bien sûr, c'est le dilemme typique avec le code hérité. Mais même l'examen formel de tout le code fraîchement écrit prendrait beaucoup de temps, ralentissant considérablement le développement.
Ma conclusion est que les revues de code formelles sont mieux faites sur du code nouvellement écrit, concentré sur les parties les plus critiques du code. Le reste est mieux géré de manière plus informelle, éventuellement via la programmation par paires. Ce n'est que mon opinion actuelle, qui pourrait changer. Je ne prétends pas être un gourou de la révision de code ou quoi que ce soit.
* Il s'agit du rythme normal des révisions de code formelles.
Les taux de révision de code typiques sont d'environ 150 lignes de code par heure. L'inspection et l'examen de plus de quelques centaines de lignes de code par heure pour les logiciels critiques (tels que les logiciels embarqués critiques pour la sécurité) peuvent être trop rapides pour trouver des erreurs.
Cité sur Wikipedia (souligné par moi).