Apa itu pemrograman mob?

Pemrograman mob (mob programming) adalah pendekatan kolaboratif dalam pengembangan perangkat lunak di mana sekelompok pengembang bekerja bersama secara real-time pada satu tugas. Pemrograman mob berakar dari pair programming, sebuah teknik dalam Extreme Programming (XP) di mana dua pengembang bekerja sebagai tim pada tugas yang sama, menggunakan hanya satu komputer.
Pemrograman mob memanfaatkan pengetahuan kolektif kelompok dan mendorong pengembangan soft skills dan hard skills. Peserta dalam pemrograman mob bergantian melalui peran-peran berikut:

  • Mob. Merujuk pada kelompok pengembang yang bekerja bersama. Mereka bertanggung jawab untuk mendiskusikan berbagai alternatif implementasi dan memilih tindakan terbaik.
  • Navigator. Pengembang ini bertanggung jawab untuk mendengarkan diskusi mob dan mengkomunikasikan instruksi kepada driver.
  • Driver. Pengembang ini bertanggung jawab untuk mengubah instruksi navigator menjadi kode.

Seringkali, sesi pemrograman mob juga mencakup seorang champion dalam kelompok. Pengembang ini bertanggung jawab untuk menjaga diskusi mob tetap pada tugas dan memberi tahu kelompok kapan peran harus berganti, yang sebaiknya dilakukan setiap 15 menit.
Pemrograman mob dapat digunakan untuk satu langkah tertentu dalam proses pengembangan, beberapa langkah, atau seluruh proyek pengembangan.

Pendekatan kolaboratif ini dalam mendefinisikan persyaratan pengguna, merancang, menguji, dan menerapkan perangkat lunak memperkuat keterampilan dengan memberikan kesempatan kepada karyawan baru untuk memanfaatkan pengetahuan yang dimiliki oleh anggota tim yang lebih berpengalaman. Pendekatan ini juga memberikan kesempatan kepada karyawan yang lebih berpengalaman untuk mendapatkan perspektif baru dari karyawan baru. Idealnya, setiap peserta mendapatkan kesempatan untuk memainkan setiap peran selama setiap sesi pemrograman mob.

Bagaimana cara kerja pemrograman mob?

Ciri khas dari pemrograman mob adalah semua pengembang dikelompokkan bersama di satu workstation dan seluruh tim bekerja pada tugas yang sama pada waktu yang sama. Tidak ada jumlah spesifik pengembang yang diperlukan untuk dianggap sebagai mob, tetapi empat hingga enam pengembang dianggap sebagai norma. Proyektor dan monitor ganda dapat digunakan untuk memastikan setiap orang dalam tim pengembangan dapat melihat dengan tepat kode apa yang sedang mereka kerjakan pada waktu tertentu.

Strategi mob menggunakan alur kerja driver-navigator. Driver adalah pengembang yang ditunjuk yang mengontrol keyboard. Tugas navigator adalah memberikan instruksi kepada driver dan membantu mob meninjau kode saat mereka menulisnya. Setiap saat, hanya boleh ada satu orang di belakang keyboard. Proses pengembangan dimulai dengan champion atau fasilitator yang menyatakan tugas apa yang perlu dilakukan. Mob mendiskusikan pendekatan yang harus mereka gunakan, dan navigator bertanggung jawab untuk mencapai konsensus dan memberikan instruksi kepada driver.

Jika pemrograman mob diterapkan untuk tugas individu yang lebih kecil, maka mob yang lebih kecil mungkin memadai. Jika implementasi berlangsung melalui seluruh proses pengembangan atau memerlukan keputusan desain dan pengembangan tingkat tinggi, mob yang lebih besar lebih masuk akal.

Dalam pemrograman mob, komputer yang sama digunakan untuk merancang dan menguji kode. Tim dapat menggunakan komputer tambahan untuk penelitian dan melihat database.

Manfaat pemrograman mob

Manfaat potensial dari pemrograman mob meliputi:

  • Memungkinkan pembelajaran berkelanjutan. Semua orang memiliki akses penuh ke pengetahuan bersama anggota tim. Tim dapat dengan cepat menyelesaikan masalah yang muncul, dan anggota tim terus-menerus belajar lebih banyak tentang proses pengembangan.
  • Memastikan standar pengkodean terpenuhi. Dengan navigator dan anggota mob meninjau kode saat driver menulisnya, tim dapat memastikan standar pengkodean terpenuhi. Tidak diperlukan tinjauan kode terpisah. Praktik terbaik juga dapat ditinjau secara real-time.
  • Mengatasi kelemahan individu. Saat pengembangan berlanjut, kekuatan dan kelemahan masing-masing anggota tim menjadi lebih jelas. Dengan akses bersama ke pengetahuan, anggota tim tersebut dapat belajar bagaimana mengatasi kelemahan tersebut.
  • Menyediakan umpan balik cepat. Umpan balik konstan dapat diberikan dan didiskusikan oleh anggota mob.
  • Memungkinkan pekerjaan berkelanjutan. Jika satu anggota tim tidak hadir, pekerjaan dapat dilanjutkan sesuai rencana.
  • Mengembangkan hard dan soft skills. Tidak hanya anggota tim meningkatkan keterampilan teknis mereka, tetapi mereka juga mengembangkan soft skills, seperti kemampuan komunikasi dan manajemen waktu.

Kekurangan pemrograman mob

Pemrograman mob mungkin tidak cocok untuk setiap organisasi. Tergantung pada lingkungan, beberapa pengembang mungkin berpikir bahwa kerja kelompok dan diskusi wajib lebih membosankan daripada bermanfaat dan menemukan proses kolaboratif ini tidak perlu lambat. Jika tim tidak sepenuhnya setuju, sesi pemrograman mob bisa sulit dikelola, dan mungkin terjadi penurunan produktivitas kode.
Aspek lain dari pemrograman mob yang bisa menjadi sulit adalah pemrograman mob jarak jauh. Meskipun memungkinkan, pemrograman jarak jauh bisa menjadi tantangan ketika pengembang berada di zona waktu yang berbeda atau terjadi kesulitan teknis pada perangkat lunak pertemuan.

Praktik Terbaik Pemrograman Mob

Karena pemrograman mob bisa sulit diterapkan untuk semua anggota tim, penting untuk mengikuti daftar praktik terbaik. Beberapa praktik terbaik tersebut adalah:

  • Perlakukan anggota tim lain dengan kebaikan dan rasa hormat.
  • Ikuti pendekatan driver-navigator.
  • Fokus pada pembuatan kode berkualitas. Minta navigator dan anggota mob meninjau kode saat ditulis.
  • Ambil istirahat kecil pada waktu yang ditentukan, dan pastikan peran berganti.
  • Navigators harus menyampaikan keputusan mob kepada driver dengan jelas. Ini bisa pada tingkat tinggi jika driver memahami apa yang diinstruksikan atau lebih rinci jika tidak.
  • Adakan retrospektif kapan pun mereka akan paling membantu tim. Retrospektif ini bisa dibuat singkat dan berfokus pada satu aspek tertentu jika diperlukan.
  • Adakan panggilan dan kirim email sebagai tim. Ini memastikan semua anggota tetap mendapatkan informasi dan memahami interaksi yang terjadi antara tim pengembang dan bagian lain dalam organisasi.

Perbandingan Pemrograman Mob vs. Pair Programming

Pair programming adalah teknik pengembangan Agile yang berasal dari XP. Dalam pair programming, dua pengembang bekerja bersama di satu komputer untuk merancang, mengkodekan, dan menguji persyaratan pengguna. Biasanya, kedua pengembang bergantian dalam menulis kode atau meninjau, saling memeriksa pekerjaan satu sama lain. Idealnya, tingkat keterampilan mereka harus relatif seimbang.

Pemrograman mob berfungsi sebagai perluasan dari pair programming. Alih-alih hanya memiliki dua orang dalam satu tim, tim pemrograman mob terdiri dari beberapa pengembang. Pemrograman mob bisa lebih efektif dibandingkan pair programming dalam situasi yang membutuhkan keputusan desain dan pengembangan tingkat tinggi. Dengan lebih banyak orang yang bekerja bersama, lebih besar kemungkinan tim dapat menghasilkan ide-ide berbeda dan beragam untuk menyelesaikan suatu masalah.

Perkembangan Terkini dalam Pemrograman Mob

Dengan meningkatnya adopsi kerja jarak jauh dan kolaborasi berbasis cloud, pemrograman mob kini semakin banyak dilakukan secara virtual menggunakan alat-alat seperti Visual Studio Live Share, JetBrains Code With Me, dan fitur kolaborasi real-time di GitHub Codespaces. Kemajuan dalam kecerdasan buatan (AI) seperti penggunaan asisten pengkodean berbasis AI (misalnya, GitHub Copilot atau Tabnine) juga semakin membantu dalam meningkatkan produktivitas tim dalam sesi mob programming.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *