Pemrograman pasangan cukup terkenal sekarang-a-hari.
Ini memiliki beberapa keunggulan seperti:
- Program dengan bug lebih sedikit.
- Biaya perawatan pasca produksi jauh lebih sedikit.
- Praktik yang sudah mapan ditantang sehingga muncul ide-ide baru.
- Programmer saling belajar satu sama lain.
- Programmer mengembangkan soft skill.
Tapi apa kelemahan pemrograman pasangan?
design
programming-practices
pair-programming
burung bebas
sumber
sumber
Jawaban:
Meskipun pemrograman pasangan telah mendapatkan reputasi yang cukup besar, ia memiliki beberapa jebakan juga.
Beberapa di antaranya adalah sebagai berikut:
sumber
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.
sumber
Tergantung pada situasi atau perspektif Anda.
Pemrograman Pasangan baik untuk organisasi. Tetapi apakah itu baik untuk individu?
Bagaimanapun, ini adalah metode penghematan biaya (umpan balik awal) dan produktivitas; Ini bukan tentang Anda tetapi proyek, produk, perusahaan ($$).
Meskipun Anda dapat memiliki manfaat pribadi, itu bukan alasan atau akhir dari metodologi pengembangan apa pun. Pemrograman pasangan (penuh waktu), misalnya, juga menghentikan Anda dari mengendur, berselancar, dll. Anda harus membenarkan jeda Anda kepada pasangan Anda.
Pasangan (berputar) Anda akan menjadi kamera pengintai terbaik: intensitas kerja meningkat.
Atau, dengan mendistribusikan pengetahuan, individu menjadi kurang berisiko bagi perusahaan (mis. Tidak dapat meninggalkan perusahaan dengan pengetahuan penting) dan memiliki lebih sedikit "chip tawar-menawar".
Saya yakin Anda menemukan lebih banyak poin dengan membaca artikel afirmatif lebih kritis dari situasi / sudut pandang ANDA yang sebenarnya di perusahaan daripada dari sudut pandang manajer Anda.
Hampir semua metodologi ditulis dari sudut pandang manajer.
sumber
Tiba-tiba Anda sekarang harus memberi tahu seseorang ketika Anda ingin pergi ke toilet atau minum kopi. Setidaknya tidak perlu meminta izin.
Anda harus mengatasi standar kebersihan orang lain.
sumber
Selain jawaban lain:
Banyak perusahaan tempat saya bekerja untuk mengeluarkan programmer mereka dengan laptop (berbasis di situs klien - lebih mudah untuk menjaga peralatan tetap aman jika dibawa pulang setelah bekerja, dapat melakukan pekerjaan sambilan dari rumah menggunakan VPN dalam keadaan darurat, dll.) lalu saya sudah memiliki masalah untuk melihat pada layar laptop orang lain ("driver") dari perspektif selancar bahu - usia tidak akan memperbaiki ini (dan beberapa layar menjadi sulit dibaca di luar sudut pandang ideal dalam hal apapun).
Jadi pasangan programmer akan membutuhkan layar yang cukup besar, yang akan meningkatkan biaya perangkat keras dan membatasi adaptasi ke lokasi. Mungkin tidak menjadi masalah bagi sebagian orang, dalam kasus lain itu akan menjadi masalah.
Anekdot untuk hiburan Anda:
sumber
Saya pikir pemrograman pasangan gagal karena alasan sosial dan praktis. Pada dasarnya Anda meminta satu orang untuk bekerja di bawah pengawasan konstan dan yang lain untuk melakukan apa-apa selain menyodok lubang.
Apa yang tak terelakkan terjadi setelah beberapa saat adalah bahwa pasangan berpisah untuk 'memeriksa email' atau 'Anda melakukan pemeriksaan buruk pada masalah langsung itu' dll
Daripada meningkatkan output kode volume berkurang. Keduanya untuk alasan praktis, 'Saya perlu makan siang / rapat agar tidak selaras dengan Anda' dan sosial 'Saya hanya menunggu bob untuk menyelesaikan apa yang dia lakukan sebelum saya bertanya tentang berpasangan lagi, saya tidak ingin dilihat mengganggu'
Adapun keuntungan yang dibanggakan, ada banyak praktik umum yang mencapainya dengan cara yang lebih sederhana dan efektif
sumber
Memberitahu dua pengembang senior untuk melakukan "pemrograman rasa sakit" jika mereka yakin orang dapat melakukan pekerjaan itu adalah salah satu kelemahan terbesarnya.
sumber