Tôi đã thử lập trình cặp nhiều lần, kể cả trong một tổ chức (một thời gian ngắn) coi việc triển khai nó như là một quy trình bắt buộc đối với tất cả các kỹ sư (bạn có thể đoán ý tưởng đó được thực hiện tốt như thế nào). Cá nhân, tôi ghét nó.
Những lý do tôi liệt kê dưới đây chỉ là những trải nghiệm chủ quan của tôi và tôi không thể 'đo lường' tác động của chúng theo các thuật ngữ cụ thể. Nhưng ở đây tất cả đều giống nhau:
1 - Có một 'hoa tiêu' và một 'tài xế' chỉ giúp nếu người trước là giọng nói và người sau sẽ lắng nghe.
Tất cả chúng ta đều đã gặp những nhà phát triển bướng bỉnh, sốt sắng về một số mối quan tâm về mặt lý thuyết hoặc không thể bệnh lý - về mặt tâm lý - để 'vứt bỏ' công việc cũ khi ai đó gợi ý vấn đề với nó. Và tất cả chúng ta đều biết các cá nhân quá rụt rè hoặc khác biệt để nêu lên mối quan tâm hoặc đề xuất các trường hợp góc.
Khi các loại nhà phát triển này được ghép nối, bộ điều hướng nhanh chóng có vai trò thụ động và những gì bạn kết thúc là lập trình duy nhất với đánh giá mã tự động. Đây là một sự lãng phí tài nguyên lớn.
2 - Ghép đôi ngăn cản sự sáng tạo.
Trái ngược với những gì trước đây cảm nhận về giá trị của 'động não nhóm', sự đồng thuận ngày nay là công việc tri thức sáng tạo đòi hỏi sự độc lập và tự chủ . Khi bạn làm việc một mình, bạn có thể nhanh chóng hack một số ý tưởng điên rồ để xem nó có thực sự khả thi hay không. Bạn có thể lắp ráp một cách nguyên mẫu một số nguyên mẫu lạ, và nếu bạn thất bại, điều đó không thành vấn đề, bởi vì không ai biết .
So sánh điều đó với việc ghép nối: khi tôi muốn thử một số khái niệm mới, tôi phải thuyết phục đối tác của mình, nói chuyện với họ thông qua việc thực hiện, từng bước một và hy vọng rằng họ sẽ không phán xét tôi nếu thất bại. Loại môi trường đó là độc hại để tạo ra những ý tưởng mới.
3 - Thiết kế mẫu số chung thấp nhất.
Khi một cặp không thể tạo ra các ý tưởng mới, như trên hoặc khi các cá nhân không thể đồng ý về một số nguyên tắc cơ bản về cách thiết kế một tính năng, cái xuất hiện là một thiết kế lộn xộn cố gắng thỏa hiệp và làm hài lòng không ai.
Nếu bạn kết hợp một nhà phát triển xây dựng các bản tóm tắt lập trình chức năng tuyệt vời, hùng hồn, tuyệt vời với một hiệu suất nhanh và bẩn, mã họ sẽ cùng nhau tạo ra sẽ không thanh lịch khủng khiếp hay đặc biệt nhanh.
4 - Thiếu tự chủ và minh bạch bạo lực.
Minh bạch bạo lực là cụm từ tôi đã rút ra từ một cuộc bút chiến nổi tiếng vừa phải (và khá gây tranh cãi) chống lại phương pháp Scrum. Nó mô tả cách mà một số tổ chức phát triển trẻ sơ sinh và đối xử với họ với sự nghi ngờ thường dành cho những người lao động không chuyên nghiệp.
Bất cứ điều gì bạn nghĩ về "tác hại" của việc làm cho các nhà phát triển hoạt động hoàn toàn minh bạch (và bạn có thể không đồng ý rằng đó thực sự là một tác hại), nhiều cá nhân đánh giá cao sự tự chủ của họ và khả năng làm việc một mình, đáng tin cậy để làm điều đúng đắn. Đó là một nhu cầu tâm lý quan trọng và buộc các nhà phát triển phải ghép nối (như tôi đã thấy xảy ra ở ít nhất một cửa hàng) sẽ khiến nhân viên mất tinh thần, buồn bã và xa lánh.
5 - Một số nhà phát triển không chơi độc đáo theo cặp.
Một số người sẽ không hoặc không thể tự hành xử một cách thích hợp trong môi trường được ghép nối. Họ có thể có vệ sinh kém, thói quen làm việc kém, tính cách nham hiểm, cách 'ồn ào' và 'dữ dội' hoặc một loạt các thuộc tính khác khiến họ trở thành những người lao động tốt, nhưng lập trình viên kém.
Bạn có thể giải quyết điều này? Không hẳn vậy. Thay đổi hành vi cá nhân là khó khăn. Một cửa hàng lập trình cặp cần phải rất cẩn thận trong việc tuyển dụng và đầu tư nhiều thời gian để xem ai đó làm việc như thế nào và liệu họ có thể làm việc tốt với các đồng nghiệp của họ không. Tuy nhiên, phân biệt đối xử khó khăn hơn về tính cách có nghĩa là việc tuyển dụng sẽ mất nhiều thời gian hơn trừ khi bạn nới lỏng các tiêu chuẩn về kỹ năng và chuyên môn.