Tôi sẽ mô tả kinh nghiệm của mình và cố gắng đưa ra một số "chiến lược" từ đó.
Tôi đã từng lập trình cặp với một người không lập trình hoàn chỉnh. Ông là chuyên gia về vấn đề của sản phẩm phần mềm chúng tôi đã phát triển. Ngược lại, tôi không có kinh nghiệm trong lĩnh vực vấn đề. Và anh ấy cũng là người giám sát của tôi vào lúc này (tôi biết điều này nghe có vẻ lạ :)
Lợi ích chính của phương pháp này là tôi phải giải thích việc thực hiện nhiều điều từ lĩnh vực kiến thức của anh ấy, do đó đảm bảo tính chính xác của việc thực hiện và sự hiểu biết của anh ấy về quy trình, điều đó có nghĩa là anh ấy hiểu tại sao phải mất thời gian này.
Một lợi ích khác là dễ dàng tập trung vào nhiệm vụ, không có phiền nhiễu (ha-ha, hãy tưởng tượng mở Twitter trước mũi sếp của bạn).
Tuy nhiên, điều đó khá đáng sợ, tuy nhiên, ngay cả khi nghỉ giải lao cũng trở thành một "sự xao lãng khỏi công việc" (không phải theo quan điểm của anh ta; thật bất tiện khi yêu cầu nghỉ giải lao và vân vân).
Vì vậy, đây thực sự không phải là một chương trình ghép đôi vì anh ta gần như không thể xem lại mã khi nó được nhập vào. Tuy nhiên, nó dường như là một chiến lược lành mạnh (ít nhất là trong một thời gian). Cuối cùng nó hoạt động hoàn toàn vì sự đơn giản tương đối của cả phương pháp phát triển (ý tôi là, không có kỹ thuật thiết kế phần mềm phức tạp nào như Mô hình OOP được tham gia) và chủ đề. Điều này sẽ không hoạt động trong trường hợp chúng tôi phải phát triển một trình biên dịch tôi nghĩ. Tôi tin rằng nó vẫn có thể hoạt động trong trường hợp người quan sát không lập trình viên đang tham gia vào quá trình phát triển các phần nhỏ được xác định rõ ràng. Nói, sẽ ổn khi anh ta xem lập trình hàm "tính toán tham số X từ Y và Z theo thuật toán đã cho", nhưng có thể không ổn khi anh ta xem quy trình thiết kế hệ thống tổng thể (nghĩa là phát triển kiến trúc phần mềm, tức là phân cấp các lớp học,
Tôi nghĩ nó sẽ hoạt động tốt hơn nữa trong trường hợp anh ta có một số kỹ năng lập trình cơ bản, vì tôi sẽ không phải giải thích "mảng là gì".
Hy vọng nó giúp :)