Saya telah mencoba pemrograman pasangan beberapa kali, termasuk dalam sebuah organisasi yang (secara singkat) menganggap meluncurkannya sebagai proses wajib untuk semua insinyur (Anda dapat menebak seberapa baik ide itu muncul). Secara pribadi, saya benci itu.
Alasan saya daftar di bawah ini hanya pengalaman subjektif saya, dan saya tidak bisa 'mengukur' dampaknya secara konkret. Tapi di sini semuanya sama:
1 - Memiliki 'navigator' dan 'driver' hanya membantu jika yang pertama vokal dan yang kedua akan mendengarkan.
Kita semua telah bertemu dengan pengembang yang keras kepala, bersemangat tentang beberapa masalah teoretis atau secara patologis tidak mampu - secara psikologis - untuk 'membuang' pekerjaan lama ketika seseorang menyarankan masalah dengannya. Dan kita semua tahu individu terlalu malu-malu atau malu-malu untuk mengajukan kekhawatiran atau menyarankan kasus sudut.
Saat pengembang semacam ini dipasangkan, navigator dengan cepat mengambil peran pasif, dan yang akhirnya Anda lakukan adalah pemrograman tunggal dengan peninjauan kode otomatis. Ini adalah pemborosan sumber daya yang monumental.
2 - Berpasangan mencegah kreativitas.
Bertentangan dengan apa yang sebelumnya dirasakan tentang nilai 'brainstorming kelompok', konsensus akhir-akhir ini adalah bahwa pekerjaan pengetahuan kreatif membutuhkan kemandirian dan otonomi . Ketika Anda bekerja sendirian, Anda dapat dengan cepat meretas beberapa ide gila untuk melihat apakah itu benar-benar layak. Tanpa kata-kata Anda dapat membuat prototipe aneh, dan jika Anda gagal, itu tidak masalah, karena tidak ada yang tahu .
Bandingkan dengan berpasangan: ketika saya ingin mencoba beberapa konsep baru, saya harus meyakinkan pasangan saya, membicarakannya melalui implementasi, langkah-demi-langkah, dan berharap mereka tidak akan menilai saya jika gagal. Lingkungan semacam itu beracun untuk menciptakan ide-ide baru.
3 - Desain penyebut umum terendah.
Ketika pasangan tidak dapat memunculkan ide-ide baru, seperti di atas, atau ketika individu tidak dapat menyetujui beberapa prinsip dasar tentang bagaimana fitur harus dirancang, apa yang keluar adalah desain yang kacau yang berusaha untuk berkompromi dan memuaskan tidak ada seorang pun.
Jika Anda memasangkan pengembang yang membangun abstraksi pemrograman fungsional yang indah, fasih, dan ke langit dengan kinerja yang cepat dan kotor, kode yang mereka hasilkan bersama biasanya tidak akan terlalu elegan atau terlalu cepat.
4 - Kurangnya otonomi dan transparansi yang keras.
Transparansi dengan kekerasan adalah ungkapan yang saya petik dari polemik yang cukup terkenal (dan cukup kontroversial) terhadap metodologi Scrum. Ini menggambarkan cara beberapa organisasi menghina pengembang dan memperlakukan mereka dengan kecurigaan yang biasanya diperuntukkan bagi pekerja non-profesional.
Apa pun yang Anda pikirkan tentang 'bahaya' membuat pekerjaan pengembang sepenuhnya transparan (dan Anda mungkin tidak setuju itu sebenarnya merugikan), banyak orang menghargai otonomi mereka dan kemampuan mereka untuk bekerja sendiri, dipercaya untuk melakukan hal yang benar. Ini merupakan kebutuhan psikologis yang penting, dan untuk memaksa pengembang berpasangan (seperti yang saya lihat terjadi di setidaknya satu toko) akan membuat karyawan kecewa, kesal, dan teralienasi.
5 - Beberapa pengembang tidak bermain baik berpasangan.
Beberapa orang tidak akan atau tidak dapat berperilaku dengan tepat di lingkungan berpasangan. Mereka mungkin memiliki kebersihan yang buruk, kebiasaan kerja yang buruk, kepribadian yang kasar, cara yang 'keras' dan 'intens', atau sejumlah atribut lain yang membuat mereka menjadi pekerja individu yang baik, tetapi pemrogram pasangan yang miskin.
Bisakah kamu menyelesaikan ini? Tidak juga. Mengubah perilaku pribadi itu sulit. Toko pemrograman pasangan harus sangat berhati-hati dalam merekrut dan menginvestasikan banyak waktu untuk melihat bagaimana seseorang bekerja dan apakah mereka akan dapat bekerja dengan baik dengan rekan-rekan mereka. Namun, mendiskriminasi kepribadian dengan lebih keras berarti perekrutan akan memakan waktu lebih lama kecuali Anda melonggarkan standar keterampilan dan keahlian Anda.