The Pitfalls and Perils of Pair Programming

[ad_1]

Memasangkan pemrograman: Orang menyukainya atau membencinya.

Konsep pemrograman pasangan pertama menjadi populer berkat "pemrograman ekstrim" atau XP – seperangkat praktik yang seharusnya memungkinkan perusahaan untuk mengembangkan perangkat lunak dengan cara yang lebih efisien, lebih "gesit". Pendukung klaim XP yang memungkinkan pemrogram untuk menanggapi perubahan atau persyaratan perangkat lunak ambigu tanpa mengorbankan kualitas. Skeptis tidak setuju, dengan alasan bahwa manfaat yang dituduhkan ini bersifat ilusi atau berlebihan.

Para pendukung XP berpendapat bahwa dua kepala pemrograman lebih baik dari satu – bahwa dua pengembang perangkat lunak yang bekerja bersama akan cenderung menghasilkan lebih baik, lebih dapat diandalkan, dan lebih mudah dipelihara daripada seorang programmer tunggal yang bekerja sendiri. Praktek ini dikenal sebagai pemrograman pasangan, dan pada pandangan pertama, kedengarannya seperti ide bagus. Meskipun secara pribadi, saya pikir itu bernada mentalitas "satu ukuran cocok untuk semua". Artinya, ini mengasumsikan bahwa dua programmer yang bekerja di konser memang akan lebih efisien dan mereka akan menghasilkan hasil yang lebih baik. Saya pikir ada alasan bagus untuk percaya sebaliknya.

Banyak penelitian Williams yang dibangga-banggakan

Penggemar XP biasanya menunjuk pada penelitian terkenal yang dipimpin oleh Prof. Laurie Williams di Universitas Utah. Dalam penelitian ini, Williams menyimpulkan bahwa pasangan pemrograman membutuhkan waktu 15% lebih banyak daripada pengembangan solo, tetapi menghasilkan perangkat lunak yang 15% lebih baik. Mereka berpendapat bahwa peningkatan sederhana dalam waktu pengembangan ini adalah harga kecil yang harus dibayar, karena kualitas kode yang lebih baik berarti semakin sedikit waktu dan upaya yang diperlukan di kemudian hari – selama pengujian dan pemeliharaan, misalnya.

Saya pikir ada banyak masalah dengan penelitian ini. Bagaimana para peneliti mengukur kualitas perangkat lunak, misalnya? Panjang kode yang digunakan sebagai metrik kualitas; yaitu, semakin pendek kode sumber, semakin baik mereka menganggapnya. Dilaporkan, "[The paired teams] secara konsisten menerapkan fungsi yang sama dengan individu dalam baris kode yang lebih sedikit. Kami percaya ini adalah indikasi bahwa pasangan memiliki desain yang lebih baik. "Saya pikir ini adalah lompatan logika yang terburu-buru, untuk sedikitnya!

Apakah kode sumber yang lebih pendek menunjukkan kualitas yang lebih baik? Terkadang, mungkin. Namun, orang bisa dengan mudah berspekulasi bahwa kode yang lebih panjang berisi lebih banyak perbaikan bug dan perlindungan. Selain itu, menambahkan lebih banyak baris kode – untuk menerapkan pola desain, misalnya – dapat membuat perangkat lunak lebih efisien atau lebih mudah dikelola. Saya pikir bahwa korelasi yang diasumsikan antara panjang kode dan kurangnya kualitas tidak dapat dibenarkan dengan baik.

Studi ini juga menunjukkan kasus bias partisipan yang parah. Para siswa di kelas ditanya apakah mereka lebih suka bekerja dalam kelompok atau sendirian. 35 responden mengatakan bahwa mereka lebih suka bekerja kolaboratif; dari siswa-siswa ini, 28 dari mereka dipilih untuk membentuk kelompok eksperimen berpasangan. Sisanya tujuh ditempatkan dalam kelompok pemrograman solo, yaitu kontrol eksperimental. Ini menciptakan bias eksperimental yang kuat; semua pasangan programmer relawan bersedia, sedangkan beberapa anggota kelompok kontrol ada enggan.

Terlebih lagi, 13 dari 14 pasang memilih sendiri; yaitu, siswa diizinkan untuk memilih pasangan mereka dengan sukarela. Sekali lagi, ini bias hasil, karena peserta cenderung memilih mitra dengan siapa mereka sangat kompatibel.

(Yang cukup menarik, bias ini dapat dengan mudah dihindari dengan menugaskan pasangan secara acak. Saya tidak ingin melontarkan kesalahan; namun, saya tidak bisa tidak bertanya-tanya apakah Prof. Williams dan perusahaan mungkin secara tidak sadar membiaskan eksperimen mereka untuk menunjukkan superioritas pemrograman pasangan.)

Hubungan arus pendek proses kreatif

Singkatnya, bukti yang seharusnya untuk peningkatan produktivitas di bawah program pasangan patut dipertanyakan. Selain itu, kita harus bertanya apakah ada alasan untuk percaya bahwa pemrograman pasangan dapat menjadi kontra-produktif atau berbahaya.

Saya percaya itu bisa terjadi. Memasangkan pemrograman tentu dapat membantu orang menangkap atau mencegah bug; ketika klise hoary berjalan, dua pasang mata lebih baik dari satu. Ketika dihadapkan pada masalah pelik, seseorang sering perlu membiarkan masalah meresap di otak seseorang untuk sementara sebelum tiba pada solusi yang tepat. Seringkali, begitulah cara berpikir kreatif beroperasi; mereka harus membiarkan pikiran mereka menyaring masalah terlebih dahulu sebelum mencoba memperbaikinya.

Dengan pemrograman berpasangan, proses ini adalah hubung singkat. Daripada membiarkan pikiran seseorang mencerna masalah pada waktunya, pemrograman pasangan memberi tekanan pada orang untuk sampai pada solusi lebih cepat. Terkadang, ini dapat menghasilkan hasil yang lebih baik; Namun, itu juga dapat memiliki efek sebaliknya. Saya menduga bahwa untuk pikiran yang paling kreatif, tekanan semacam ini dapat melumpuhkan kreativitas daripada menghambatnya.

Tapi tunggu! Apakah tidak ada kekuatan dalam angka? Bukankah ada saat-saat ketika hasil terbaik dihasilkan dengan membuat orang bertukar pikiran dan berunding? Tentu saja … tetapi "pertemuan pikiran" ini tidak harus terjadi selama proses pemrograman. Mereka dapat terjadi selama sesi perencanaan, selama tinjauan desain, atau ketika duduk di sekitar meja makan siang. Kita tidak boleh membuang pemecahan masalah dan desain grup; kita tidak seharusnya memaksakan ini terjadi pada tahap pengkodean. Itu bisa lebih merusak daripada bagus.

Terlebih lagi, pikiran yang paling kreatif sering membutuhkan ukuran waktu bermain – kesempatan untuk bermain-main dengan kode, sementara mengeksplorasi berbagai opsi dan membiarkan pikiran seseorang bebas berkeliaran. Ini bisa sulit dilakukan ketika programmer lain melihat dari belakang bahumu. Lagi pula, apa yang harus kita lakukan – menjelaskan dan mendiskusikan setiap langkah sementara? Untuk pikiran yang kreatif, hal ini bisa sangat menyesakkan.

Kesimpulan

Singkatnya, saya pikir bahwa bukti efektivitas pemrograman pasangan itu dipertanyakan dan dilebih-lebihkan. Saya juga berpikir bahwa ada alasan kuat untuk percaya bahwa pemrograman berpasangan dapat menghambat proses kreatif, bukannya membantu. Bisakah memasangkan pemrograman bermanfaat? Tentu saja … Namun, ketika dipaksakan pada orang, itu menjadi "satu ukuran cocok untuk semua" strategi – dan sayangnya, ukuran tunggal tidak mungkin cocok untuk semua orang, tidak peduli apa yang dikatakan penjual.

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *