Je vais décrire mon expérience et essayer d'en tirer une "stratégie".
J'ai déjà programmé une paire avec un non-programmeur complet. Il était expert sur le sujet du produit logiciel que nous avons développé. Au contraire, je n'avais aucune expérience dans le domaine problématique. Et il était aussi mon superviseur en ce moment (je sais que cela peut sembler étrange :)
Le principal avantage de cette méthodologie était que je devais expliquer la mise en œuvre de nombreuses choses de son domaine de connaissances, assurant ainsi l'exactitude de la mise en œuvre et sa compréhension du processus, ce qui signifiait qu'il comprenait pourquoi cela prenait du temps.
Un autre avantage est une concentration facile sur la tâche, aucune distraction (ha-ha, imaginez ouvrir Twitter devant le nez de votre patron).
Cependant, il était parfois assez intimidant, car même une pause-thé devenait une "distraction du travail" (pas de son point de vue; il était simplement gênant de demander une pause, etc.).
Donc, ce n'est pas vraiment une programmation par paires car il ne pouvait pratiquement pas réviser le code tel qu'il était tapé. Cependant, cela semblait être une stratégie sensée (au moins pendant un certain temps). Cela a finalement fonctionné du fait de la relative simplicité de la méthodologie de développement (je veux dire, aucune technique de conception de logiciel complexe comme les modèles OOP n'était impliquée) et du sujet. Cela ne fonctionnerait pas si nous devions développer un compilateur, je pense. Je crois que cela pourrait encore fonctionner si un observateur non programmeur participe au processus de développement de petites pièces clairement définies. Dites, c'est bien de lui faire regarder la programmation d'une fonction "calculer le paramètre X à partir de Y et Z par un algorithme donné", mais peut-être pas si bien de lui faire regarder le processus global de conception du système (c'est-à-dire le développement de l'architecture logicielle, c'est-à-dire la hiérarchie des Des classes,
Je pense que cela fonctionnerait encore mieux au cas où il aurait des compétences de base en programmation, car je n'aurais pas à expliquer "ce qu'est un tableau".
J'espère que ça aide :)