The Pitfalls and Perils of Pair Programming

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.

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 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.

Pembelajaran Mesin Bersama Dengan R Programming: Mengubah Karir Anda dan Opsi Terbaik Yang Tersedia

APA SAJA MESIN BELAJAR?

Ini mengacu pada aplikasi di bidang kecerdasan buatan yang memberikan kemampuan kepada sistem untuk belajar secara otomatis dan memperkaya dari pengalaman tanpa secara eksplisit diprogram yang berarti belajar menjadi otomatis daripada diprogram secara eksplisit.

Ini berkaitan dengan membangun dan mengembangkan program-program komputer yang memiliki keahlian untuk mengakses data dan kemudian menggunakan data untuk tujuan pembelajaran.

Seluruh proses dimulai dengan volume data atau observasi yang mengambil contoh menjadi pertimbangan. Memberikan contoh atau instruksi khusus kepada program komputer membantu dalam mengamati dan menganalisis pola dalam data. Ini akan lebih membantu organisasi atau perusahaan bisnis dalam mengambil keputusan yang lebih baik berdasarkan contoh yang kami berikan kepada sistem yang bervariasi sesuai situasi atau masalah bisnis.

Dimasukkannya pengalaman ke dalam tugasnya akhirnya akan meningkatkan pembelajaran sistem. Tujuan utama dari pembelajaran mesin adalah untuk membuat sistem otomatis sehingga intervensi atau campur tangan manusia tidak diperlukan.

APA YANG DIMAKSUDAKAN R PROGRAMMING?

R, bahasa pemrograman, adalah pilihan terbaik yang dipertimbangkan untuk itu karena bahasa ini digunakan dalam analisis statistik atau data.

Semua teknik yang diperlukan dalam bidang analisis data, seperti pemodelan prediktif, sampling, visualisasi, dll. Disediakan dalam R. Ini sangat kuat dan merupakan alat paling populer di bidang pembelajaran mesin.

Bahasa ini membantu dalam menyediakan data yang dieksplorasi dan dianalisis ke sistem otomatis yang dikembangkan yang berarti eksplorasi dan interpretasi data dilakukan oleh R dan juga membantu dalam mengevaluasi hasil akhir dari algoritma pembelajaran.

BAGAIMANA R PROGRAMMING BANTUAN DI BIDANG PEMBELAJARAN MESIN?

Jika Anda antusias untuk belajar mesin, maka menjadi penting bagi Anda untuk memiliki pengetahuan rinci tentang bahasa pemrograman dan untuk itu R dianggap sebagai yang terbaik jika Anda lebih ke dalam statistik dan perspektif matematis dari pembelajaran mesin .

Di bidang ini, R membantu Anda dalam membangun dan mengembangkan model pembelajaran mesin, saat menangani dataset dan prototipe cepat mereka.

Pemrograman R lebih lanjut membantu dalam mengevaluasi algoritma pembelajaran mesin dan membantu dalam mempelajari langkah-langkah yang diperlukan untuk menyelidiki dan membersihkan data yang berarti mendapatkan tangan kotor dengan data.

Pembelajaran dengan R ini membuat Anda memenuhi syarat untuk berbagai profil pekerjaan di bidang analitik dan teknologi. Beberapa opsi karir yang tersedia adalah seperti di bawah:

1. Data Ilmuwan: Peran ilmuwan data berkaitan dengan bekerja pada matematika dan menggunakan metodologi yang ada untuk memperoleh pola bawaan dan wawasan yang berguna dari data yang mengalir ke dalam organisasi.

2. Engine Learning Engineers: Peran mereka berkaitan dengan membangun aplikasi dan program menggunakan alat atau teknik.

3. Peneliti: Peran mereka berkaitan dengan membangun teknik dan alat baru yang dapat meningkatkan kemampuan sistem untuk belajar lebih efektif dan efisien.