Я опишу свій досвід і спробую вийняти з нього якусь «стратегію».
Я колись пару програмував з повним непрограмістом. Він був експертом у галузі розробленого нами програмного продукту. Навпаки, у мене не було досвіду в проблемній галузі. І він також був моїм керівником на даний момент (я знаю, це може здатися дивним :)
Основна перевага цієї методології полягала в тому, що мені довелося пояснити реалізацію багатьох речей з його галузі знань, забезпечуючи тим самим точність впровадження та його розуміння процесу, що означало, що він розуміє, чому це потребує цього часу.
Ще одна користь - це легка орієнтація на завдання, ніяких відволікань (ха-ха, уявіть, відкрийте Twitter перед носом свого начальника).
Однак часом це було досить заляканим, оскільки навіть перерва на чай стала цілком «відволіканням на роботу» (не з його точки зору; просити перерви тощо було просто незручно).
Отже, це насправді не є програмуванням пари, оскільки він майже не міг переглянути код під час введення. Однак, здавалося, це була розумна стратегія (принаймні на деякий час). Зрештою, це взагалі спрацювало через відносну простоту як методології розробки (я маю на увазі, ніяких складних методик розробки програмного забезпечення, як OOP Patterns, не було залучено), так і теми. Це не спрацює у випадку, якщо нам доведеться розробити компілятор, я думаю. Я вважаю, що це все-таки може спрацювати, якщо спостерігач непрограміст бере участь у процесі розробки невеликих чітко визначених творів. Скажімо, це нормально, щоб він спостерігав за програмуванням функції "обчисли параметр X з Y і Z за заданим алгоритмом", але це може бути не так добре, щоб він спостерігав за загальним процесом проектування системи (мається на увазі розвиток архітектури програмного забезпечення, тобто ієрархія класи,
Я думаю, що це би спрацювало ще краще, якби він мав якісь основні навички програміста, тому що мені не доведеться пояснювати "що таке масив".
Сподіваюся, це допомагає :)