Satu kepala baik, dan dua lebih baik, atau memasangkan pemrograman dalam aksi


Driver dan navigator beraksi (versi metodologi Korea Utara)

Dari penerjemah: Hari ini kami menerbitkan artikel untuk Anda oleh Andrew Sprul , Spesialis Ilmu Data. Dia berbicara tentang manfaat memasangkan programmer pada proyek yang sama.

Saya sering mendengar orang mengatakan bahwa mereka bekerja paling baik sendirian. Saya mengerti bahwa beberapa ide dan metode yang cocok untuk satu orang tidak cocok untuk orang lain. Namun demikian, pepatah "Satu kepala baik dan dua lebih baik" dekat dengan saya. Di bawah potongan adalah dua video yang menunjukkan seberapa baik dua orang dapat bekerja pada satu tugas. Ini hanya harmoni - baik secara harfiah maupun kiasan.

Skillbox merekomendasikan: kursus praktis dua tahun, "Saya seorang Pengembang Web PRO . "

Kami mengingatkan Anda: untuk semua pembaca "Habr" - diskon 10.000 rubel saat mendaftar untuk kursus Skillbox apa pun menggunakan kode promo "Habr".



Ini adalah video kedua (penulis melarang penyematan pada sumber daya pihak ketiga, tetapi jelas layak untuk dilihat).

Musik bukan satu-satunya bidang di mana kolaborasi antara dua orang dapat menguntungkan proyek bersama. Ada banyak lagi, seperti yang dijelaskan oleh profesor sosiologi di University of Buffalo, Michael P. Farrell, dalam bukunya Collaborative Circles: Dynamics Persahabatan dan Karya Kreatif. Secara khusus, ia percaya bahwa banyak ide hebat muncul pada orang yang bekerja berpasangan: bisa jadi ilmuwan, seniman, penulis.

Dalam melukis, ini Monet dan Renoir, secara tertulis - Tolkien dan Lewis, dalam sains - Creek dan Watson ... Anda dapat membuat daftar untuk waktu yang lama. Selain itu, sekitar setengah dari pemenang Nobel dalam kategori "Fisiologi dan Kedokteran" adalah tim dua orang.

Nah, di zaman kita, “pair programming”, yang dijelaskan Wikipedia sebagai agile-metodologi untuk pengembangan perangkat lunak, yang terdiri dari dua programmer yang bekerja di workstation yang sama, memberikan hasil yang sangat baik. Salah satunya, pengemudi, menulis kode, yang kedua, pengamat, memantau proses dan membaca setiap baris yang diketik. Pemrogram sering mengubah peran.

Teknik ini tidak terkait dengan pekerjaan pada model "guru-murid", kita berbicara tentang kerja bersama dua spesialis yang sama. Salah satu dari mereka mungkin memiliki lebih banyak pengalaman, tetapi mereka bekerja dengan cara yang sama, haknya sama. Secara umum, idenya adalah bahwa dua orang menemukan solusi lebih cepat daripada satu.

Awalnya, mungkin sulit bagi pasangan untuk bekerja dengan lancar, dan memang alur kerja seperti itu akan tampak konyol bagi banyak orang. Tetapi di sini, seperti di tempat lain, pengalaman dibutuhkan. Seiring waktu, pekerjaan semakin baik dan proses berjalan dengan lancar, hampir tanpa masalah.



Saya ulangi, dalam pemrograman berpasangan ada dua peran: driver dan navigator. Tugas utama yang pertama adalah mengikuti detail kode, mengimplementasikan ide, mengubahnya menjadi baris kode. Pengemudi dan navigator harus mendiskusikan ide dan masalah.

Navigator memperhatikan setiap baris yang diketik, dan perhatian ini tidak tersebar, karena ia tidak perlu mengetik teks. Tujuan utama navigator adalah untuk menyampaikan ide yang jelas kepada pengemudi. Navigator harus memberikan instruksi pengemudi dengan tingkat abstraksi tertentu sehingga ia dapat mengimplementasikannya seefisien mungkin.



Jika driver memiliki ide, maka navigator dan driver dapat beralih peran. Ini membantu mitra bekerja secara sinkron. Berbagi ide mirip dengan brainstorming, tetapi ini adalah proses yang lebih efisien, ditambah tingkat kesalahan berkurang (seperti yang ditunjukkan pada diagram di atas).

Saya dapat menyarankan spesialis yang bekerja berpasangan untuk mengganggu kadang-kadang dan saling bertanya. Ini membantu untuk berpikir dalam satu arah, saling memahami dan bekerja secara efisien.

Memasangkan pemrograman dan alur kerja




Mempelajari pertanyaan pemrograman pasangan, saya menemukan bahwa ada beberapa strategi untuk pekerjaan tersebut. Beberapa opsi dapat ditemukan di sini . Salah satu strategi yang paling menarik disebut Ping Pong Sparring. Ia bekerja sebagai berikut:
  • Programmer A menulis tes baru dan melihat bahwa itu tidak berhasil.
  • Programmer B menambahkan kode yang diperlukan untuk lulus tes.
  • Programmer B menulis tes baru dan melihat bahwa itu tidak berhasil.
  • Programmer A menambahkan kode yang diperlukan untuk lulus tes.
  • Kembali.

Ya, itu tidak terlihat seperti alur kerja yang ideal, tetapi kami tidak akan tahu seberapa efektifnya sampai kami mencobanya.

Baru-baru ini saya belajar dari teman sekelas bahwa Atom memiliki paket Teletype yang memungkinkan pengembang untuk bekerja bersama secara real time, memberikan kolega akses ke desktop mereka. Ini bahkan lebih baik daripada hanya duduk bersama di stasiun kerja yang sama, karena memungkinkan Anda berada dalam kondisi yang lebih nyaman dan tidak terlalu terganggu.

Dan jangan lupa: peran yang perlu Anda ubah sepanjang hari. Namun, Anda tidak dapat menggunakan timer, karena akan mengganggu alur kerja. Banyak orang berpikir bahwa Anda harus mengubah peran dalam selang waktu 30 menit. Tapi semuanya subjektif di sini.

Periode adaptasi selama transisi dari program single ke pair mirip dengan makan cabai. Pertama kali semuanya salah, Anda tidak menyukainya. Tetapi semakin sering Anda makan lada, semakin cepat Anda mulai menyukainya.

Kesimpulannya, apa yang telah dikatakan


Suatu kali saya mendengar ungkapan: “Agar gagasan dapat diwujudkan dalam bentuk angka, maka perlu bahwa gagasan itu melewati tangan orang lain. Jenis pemrograman ini adalah komunikasi dan kolaborasi. " Tampak bagi saya bahwa komunikasi dan kerja sama adalah dua komponen pekerjaan yang berhasil.

Saya sendiri lebih produktif ketika saya bekerja bersama dengan seseorang. Pengalaman saya sebagai musisi menunjukkan bahwa bermain dalam ansambel lebih baik daripada menjadi artis solo. Ini bukan karena saya bergantung pada orang lain, melainkan, kepercayaan diri saya pada kesuksesan tumbuh ketika saya melihat bahwa pekerjaan umum lebih efektif. Sekarang saya memiliki navigator yang lebih baik daripada pengemudi, tetapi saya secara bertahap membaik. Semoga artikel ini membantu proyek masa depan Anda.

Skillbox merekomendasikan:

Source: https://habr.com/ru/post/id436442/


All Articles