Apakah pemrograman pasangan menghapus kebutuhan ulasan kode dalam proyek Extreme Programming (XP)?

14

Dalam proyek pemrograman ekstrem, pemrogram melakukan pairing pemrograman hampir sepanjang waktu.

Karena pasangan ini juga berputar, yaitu, Anda memasangkan program dengan orang yang berbeda, dan ada rasa kepemilikan bersama, kode sumber sering ditinjau dan diperbarui.

Jadi, apakah ada kebutuhan untuk ulasan kode? Maksud saya, hentikan pemrograman dan sebenarnya hanya melakukan review kode.

Eduardo Copat
sumber
3
Pemrograman pasangan hanya merupakan penyewa XP. Ada banyak metodologi tangkas lainnya yang tidak mengikuti XP. Tidak ada dalam Manifesto untuk Pengembangan Perangkat Lunak Agile atau Prinsip di belakang Agile Manifesto yang menyebutkan pemrograman pasangan. Juga tidak ada tentang ulasan kode. Penting untuk tidak menganggap bahwa semua gesit itu ekstrem.
Biarkan saya ulangi pertanyaan saya untuk memasukkan XP saja.
Eduardo Copat
Apakah ada alasan mengapa Anda tidak mencobanya dan pastikan Anda menetapkan beberapa kriteria untuk berhenti? Jika tim merasa nyaman dengan kode yang masuk, itu harus menjadi alasan yang cukup baik.
JeffO

Jawaban:

13

Salah satu sumber utama untuk Pemrograman Ekstrim adalah dari Ward's Wiki alias Portland Pattern Repository alias C2.com . Di sinilah sejumlah orang menggunakan berbagai metodologi dan mendokumentasikannya saat mereka menggunakannya.

Di dalam wiki ini, ada halaman: Ulasan Kode Pemrograman Ekstrim yang memiliki sejumlah kontributor, termasuk Ron Jeffries dan Kent Beck.

Untuk ini, mereka berkata:

Ulasan kode dianggap penting oleh banyak guru proses besar. Mereka dimaksudkan untuk memastikan kesesuaian dengan standar, dan yang lebih penting, dimaksudkan untuk memastikan bahwa kode tersebut jelas, efisien, berfungsi, dan memiliki QWAN. Mereka juga bermaksud untuk membantu menyebarkan pengetahuan tentang kode ke seluruh tim.

ExtremeProgramming mengharuskan semua pengembangan dilakukan oleh dua insinyur yang bekerja bersama. Kode sebenarnya ditinjau dengan cepat, hingga tingkat yang cukup besar. Ini memastikan bahwa lebih dari satu orang memiliki pengetahuan yang mendalam tentang kode setiap saat.

ExtremeProgramming mengharuskan semua objek memiliki UnitTests. Ini memastikan bahwa objek bekerja, dan terus bekerja sebagaimana diubah.

Beberapa bahasa bersifat reflektif. Dalam bahasa seperti itu, UnitTests dapat memeriksa langsung untuk kesesuaian standar penting. (mis. objek harus mengimplementasikan # = dan #hash, atau keduanya.)

Praktik ExtremeProgramming CollectiveCodeOwnership, yang berarti bahwa objek yang membutuhkan perhatian akan ditelusuri oleh banyak pengembang. Ini cenderung memberi tekanan pada mereka yang memproduksi kode yang tidak sesuai dengan standar. Pengembang mengunjungi didorong / diharapkan untuk membawa kode menjadi sesuai ketika mereka menemukan penyimpangan. Ini juga memastikan bahwa pengetahuan kode disebarluaskan di luar pasangan awal programmer yang membuatnya.

Oleh karena itu, proyek ExtremeProgramming tidak memerlukan ulasan eksplisit. Jatuhkan mereka dari metodologi Anda.

Ada juga diskusi lebih banyak tentang topik di sana dari orang lain.

Poin-poin utama adalah bahwa dengan kombinasi tes, kepemilikan kolaboratif dan pemrograman pasangan hal-hal ini menyelesaikan tujuan yang biasanya dilakukan oleh tinjauan kode seperti:

  • Membubarkan pengetahuan tentang apa yang sedang dilakukan
  • Satu set kedua (atau lebih) bola mata pada kode untuk memastikan itu mengikuti standar
  • Verifikasi berfungsinya kode dengan benar

Ini dilakukan terus menerus melalui pemrograman berpasangan dan pengujian otomatis dalam Extreme Programming dan karenanya inspeksi Fagan eksplisit tidak diperlukan.

Bacaan terkait:


sumber
4
Saya berpendapat dalam q & a lain bahwa tinjauan kode adalah pemborosan yang tidak perlu (dalam arti Lean of the word) dan bahwa pemrograman pasangan harus menjadi metode yang disukai untuk memberikan semua manfaat yang akan diberikan oleh tinjauan kode. Tak perlu dikatakan, orang-orang tersinggung dengan argumen saya karena saya belum mendukungnya dengan THE VOICE of AUTHORITY (TM) seperti yang Anda miliki. Untuk sekelompok orang yang berurusan dengan logika hari demi hari, kami adalah sekelompok yang tidak masuk akal.
Michael Brown
6
Risiko melakukan pemrograman berpasangan tanpa ulasan kode tambahan adalah bahwa kedua programmer sangat terlibat pada saat penulisan dan mereka dapat menulis kode yang tampaknya benar-benar jelas dan logis pada saat itu, tetapi kurang begitu ketika dilihat lagi setelah beberapa hari. Seberapa besar dan / atau dapat diterima risiko itu tergantung pada organisasi Anda.
Bart van Ingen Schenau
@MikeBrown Anda dapat juga berpendapat bahwa Pair Programming adalah pemborosan yang tidak perlu dan bahwa tinjauan kode harus dll.
AlexFoxGill
Lihat apa yang saya maksudkan dengan WASTE adalah definisi kata "Lean". Pikirkan proses jalur perakitan khas. Idenya adalah untuk mendapatkan mobil di telepon secepat mungkin dan pemeriksaan kualitas dilakukan setelah fakta (review kode). Prinsip lean mendukung lebih banyak waktu dan upaya untuk membangun kualitas dalam (pair programming) sehingga pemeriksaan pos menjadi tidak perlu.
Michael Brown