Saya telah bekerja di beberapa toko di mana manajemen telah memberikan gagasan tentang pemrograman pasangan baik kepada saya atau manajer / pengembang lain, dan saya tidak bisa mendapatkannya sama sekali. Dari sudut pandang pengembang, saya tidak dapat menemukan alasan mengapa beralih ke gaya pengkodean ini akan bermanfaat, juga sebagai manajer tim kecil saya tidak melihat manfaat.
Saya mengerti bahwa ini membantu kesalahan sintaks dasar dan dapat membantu jika Anda perlu melakukan sesuatu, tetapi manajer yang keluar dari lingkaran pemrograman tampaknya terus melihatnya sebagai cara untuk menjaga desainer mereka dari pergi ke Facebook atau Reddit daripada sebagai alat desain.
Sebagai seseorang yang dekat dengan lantai pengembangan yang tampaknya tidak begitu mengerti dari buku yang melemparkan cara saya atau halaman wiki pada subjek ... dari posisi manajemen tingkat tinggi, apa manfaat dari Pair Programming ketika berhadapan dengan Scrum atau Agile lingkungan?
sumber
Jawaban:
Sebagian, itu tergantung pada bagaimana Anda melakukan pemrograman pasangan. Dalam beberapa kasus, driver dari pasangan menulis kode, sedangkan anggota kedua dari pasangan mengamati dan mendiskusikan desain dan implementasi detail dari sistem. Contoh lain dari pemrograman berpasangan melibatkan kedua orang menulis kode secara bersamaan - satu orang sedang menulis fungsionalitas yang diimplementasikan dan yang lainnya secara aktif mengembangkan dan menulis kode uji pada unit dan tingkat integrasi, lagi-lagi mendiskusikan rincian desain dan implementasi sistem.
Terlepas dari jenis pemrograman pasangan, secara efektif berfungsi sebagai tinjauan kode terus menerus . Anda memiliki perhatian dua orang pada kode, mengawasi kesalahan sebelum melarikan diri ke lingkungan pengujian sistem / penerimaan selanjutnya atau bidang. Anda juga memiliki dua orang yang memahami bagian tertentu dari sistem dengan sangat baik, untuk berfungsi sebagai redundansi untuk meminimalkan faktor bus Anda . Cacat penangkapan awal dan penyebaran pengetahuan sistem di sekitar tim mengurangi biaya membangun sistem.
Penyebaran pengetahuan tidak hanya terbatas pada pengetahuan teknis tim. Bergantung pada siapa pasangan itu, dapat memungkinkan informasi mengalir antara anggota yang lebih senior dari perusahaan ke anggota baru tentang hal-hal lain yang melampaui proyek - gaya pengkodean, budaya perusahaan, harapan, dan sebagainya. Hal ini juga dapat memungkinkan seseorang yang lebih akrab dengan teknologi atau alat untuk berbagi pengetahuan mereka dalam teknologi atau alat itu dalam pengaturan dunia nyata yang diterapkan.
Seperti yang Anda sebutkan, ini juga membantu pengembang tetap fokus dan terus berjalan . Selain mengalir, banyak individu lebih kecil kemungkinannya untuk mengganggu beberapa orang yang mengerjakan sesuatu daripada satu individu yang mengerjakan sesuatu. Jika Anda berjalan di dekat meja seseorang dan mereka bekerja sendirian, tetapi Anda perlu berbicara dengan mereka, Anda mungkin mengetuk dan berbicara dengan mereka. Ini lebih kecil kemungkinannya jika Anda melihat dua orang atau lebih bekerja bersama atau berdiskusi - Anda tidak akan mengganggu mereka. Gangguan membutuhkan waktu, dan menghabiskan lebih banyak waktu berarti biaya lebih tinggi. Ini demi kepentingan bisnis terbaik untuk memaksimalkan produktivitas karyawan.
Namun, ada beberapa tantangan yang harus diatasi untuk membuat pemrograman pasangan layak. Pertimbangkan hal-hal seperti bentrokan kepribadian atau memilih pasangan untuk mendistribusikan pengetahuan dengan benar. Ada juga pertimbangan kapan tepatnya memutar pasangan. Pemrograman pasangan yang dilakukan secara sembarangan mungkin tidak akan efektif seperti yang direncanakan. Tergantung pada susunan tim Anda, mungkin tidak efektif untuk memasangkan orang sama sekali.
sumber
Kurang Kesalahan dalam kode akhir (efisiensi)
Tidak sepenuhnya menggantikan ulasan kode tetapi sangat efektif untuk memperbaiki semuanya sejak awal. Ada penelitian di luar sana yang menunjuk ke arah itu.
Penyelesaian lebih cepat (efektivitas)
Ada beberapa penelitian yang menunjukkan hal ini. Ketika datang ke fitur kompleks 2 kepala hanya lebih efektif. Pengalaman dalam Berpasangan adalah suatu keharusan untuk ini.
(catatan: Ini adalah alasan penjualan Anda untuk manajer: Secara finansial keputusan yang waras karena Anda mendapatkan lebih efisien melalui jumlah bug yang lebih rendah dan lebih efektif dengan penyelesaian yang lebih cepat)
Anda dapat menambahkan junior langsung ke programmer yang lebih berpengalaman. Jika Anda memiliki sekelompok pemula absolut, mudah untuk bertahan dan membiarkan mereka, sebagai pasangan, mencari tahu dasar-dasarnya. Tetap di sana dan berikan saran. Konsep ini tampaknya sangat tua dan berasal dari keahlian.
sumber
Jawaban Cepat: sebagian besar manfaat dan biaya dipasang di Wikipedia , mari kita lihat dari sudut yang berbeda.
Saya ingin menyebutkan kasus-kasus tertentu dari manfaat pemrograman pasangan yang berlaku untuk lingkungan pengembangan agile / scrum, yang diambil dari posting blog :
Singkatnya:
sumber
When two developers work together design pattern quality improves
-> frasa itu tidak masuk akal sama sekali. Setidaknya tidak lebih masuk akal daripadaWhen two bakers work together wheat quality improves
atauWhen two race drivers work together asphalt quality improves
.Ada beberapa manfaat untuk pemrograman pasangan:
Wikipedia juga memiliki ringkasan yang bagus tentang biaya dan manfaat dalam entri wiki .
sumber