Bagaimana cara secara bertahap memperkenalkan ulasan kode?

26

Saya memimpin tim dengan setengah lusin insinyur senior. Saya sangat percaya akan sangat bermanfaat bagi kami untuk melakukan review kode untuk semua alasan standar. Tidak harus setiap perubahan tetapi setidaknya aliran ulasan latar belakang. Jadi orang setidaknya melihat perubahan orang lain dan mulai membicarakannya.

Apakah ada cara yang baik untuk memperkenalkan ulasan? Saya merasakan keengganan besar dari tim, karena itu hanya satu hal lagi yang harus dilakukan, dan percakapan menjadi menyakitkan. Saya merasa seperti meninjau setiap perubahan bukanlah hal yang baru, setidaknya sebagai langkah pertama. Saya ingin orang-orang masuk ke ritme dan berlatih melakukan review dengan frekuensi rendah terlebih dahulu sebelum meningkatkan kuantitas.

Adakah yang berhasil memperkenalkan ulasan kode secara bertahap? Bagaimana? Saya sudah sekitar membutuhkan ulasan pada file "panas" atau perpustakaan. Atau memilih secara acak. Atau saya memilih "pilihan" harus meninjau perubahan. Atau apakah mengambil risiko dan melakukan setiap perubahan satu-satunya cara untuk pergi?

Philip
sumber
Saya tidak cukup menekankan hal itu dalam pertanyaan tetapi "secara bertahap" adalah elemen kunci di sini. Saya pikir meninjau 100% perubahan sama sekali tidak layak. Namun jika meninjau hanya sebagian, bagaimana cara memilih bagian? Cukup pilih "perubahan favorit"? Sesuatu yang acak? Pilihan timah? Jawaban di sini bagus, tetapi tidak benar-benar menyentuh bagian "bertahap" dalam pikiran saya.
Philip

Jawaban:

16

Ini bukan masalah perkakas atau proses. Ini tentang budaya. Anda menggambarkan tim yang terdiri dari orang-orang yang sensitif terhadap kritik dan melindungi pekerjaan mereka sendiri. Ini sangat, sangat umum. Tapi itu tidak profesional.

Saran saya adalah mulai memimpin dengan memberi contoh. Tawarkan komitmen Anda untuk ditinjau. Bersikap terbuka tentang meminta orang-orang menyoroti masalah dalam pendekatan Anda. Bersikaplah menerima umpan balik. Jangan bersikap defensif, tetapi jelajahi alasan di balik umpan balik & sepakati tindakan sebagai sebuah tim. Dorong suasana dialog terbuka. Temukan satu atau dua juara di tim Anda yang bersedia melakukan ini juga.

Ini kerja keras.

Synesso
sumber
38

Langkah pertama adalah berjalan ke seseorang dan berkata "hei, apakah Anda akan meninjau kode saya?". Jadilah perubahan yang ingin Anda lihat di organisasi Anda. Jika Anda tidak dapat menemukan satu individu yang mau melakukannya, Anda tidak akan dapat meyakinkan seluruh tim. Jika Anda berdua berhasil, laporkan kembali ke tim.

Setelah Anda menemukan seseorang untuk meninjau kode Anda, tanyakan apakah mereka keberatan jika Anda meninjau beberapa kode mereka . Frase sebagai kesempatan belajar untuk Anda dan bukan sebagai kesempatan bagi mereka untuk meningkatkan kode mereka.

Bryan Oakley
sumber
10
"Hei, aku tidak senang dengan desain ini, bisakah aku mendapatkan set kedua bola mata?" Merupakan langkah awal yang bagus. ++
RubberDuck
4

Sebagai seorang pemimpin tim, nilai yang paling saya dapatkan dari proses peninjauan kode adalah kesadaran akan apa yang sedang terjadi. Saya suka mendapat kesempatan untuk melihat setiap perubahan, bahkan jika saya tidak memiliki perubahan atau saran untuk pengembang. Saya menyebutnya "ulasan kesadaran." Saya bisa memutarnya dalam waktu kurang dari 30 menit sehingga tidak ada hambatan.

Saya sarankan Anda mulai dengan itu. Tetapkan proses pengiriman ulasan kode (itu cukup dipotong dan dikeringkan jika Anda menggunakan TFS) dan membuat semua orang terlibat mengirimkan perubahan mereka kepada Anda (dan Anda hanya) sebelum checkin. Katakan kepada mereka itu hanya untuk kesadaran dan tidak ada yang akan mengkritik kode mereka.

Setelah satu atau dua kali pengulangan ulasan penyadaran, mulailah mengundang anggota tim lainnya untuk meninjau kode satu sama lain ... sekali lagi, hanya untuk penyadaran. Percaya atau tidak, ini sendiri dapat membantu kohesi tim dan keseragaman kode.

Setelah seluruh tim terlibat, Anda mungkin akan menemukan bahwa pengembang Anda tidak dapat menahan diri untuk memberikan saran pada kode masing-masing. Ini akan terjadi secara alami dan organik (insinyur tidak dapat menahan diri!) Mintalah tim bertemu untuk membahas hal ini dan membuat pedoman untuk menawarkan umpan balik yang konstruktif satu sama lain. Kemudian atur mereka untuk itu. Selamat, Anda sekarang dalam mode peninjauan kode lengkap!

John Wu
sumber
1
Saya sangat suka istilah "ulasan kesadaran" konsep yang menarik. Untuk petunjuk, tampaknya Anda menginginkan kesadaran tentang apa yang dilakukan orang lain. Tapi saya pikir Anda dapat membuat kasus untuk semua orang di tim, kita harus menyadari apa yang dilakukan orang lain untuk keuntungan kita sendiri dan mereka. Kalau tidak, kita bahkan tidak dalam tim, kita hanya bekerja secara paralel.
Philip
4

Apakah ada cara yang baik untuk memperkenalkan ulasan?

Mungkin ada beberapa cara yang baik, tergantung pada tim Anda dan manfaat yang Anda harapkan dari ulasan, tetapi pendekatan apa pun akan memiliki beberapa fitur umum:

  • jelaskan apa yang Anda harapkan: Ini adalah proses baru untuk tim Anda, atau setidaknya perubahan pada proses yang ada, jadi cukup adil untuk membiarkan tim tahu mengapa Anda melembagakan perubahan, bagaimana Anda mengharapkan tim mendapat manfaat, dan bagaimana Anda akan tahu apakah itu berfungsi.

  • tentukan prosesnya: Arahkan orang melalui proses yang Anda ingin mereka ikuti untuk meninjau kode, mendiskusikan perubahan, dll., sehingga semua orang di tim tahu bagaimana melanjutkan.

  • tentukan kriteria: Susun jenis-jenis perubahan yang harus dan tidak boleh disebut sebagai perbaikan. Misalnya, bug dan peningkatan kinerja yang signifikan bagus untuk ditunjukkan; standar pengkodean, keterbacaan, dan masalah pemeliharaan harus diperhatikan tetapi tidak dipikirkan; masalah selera atau gaya pribadi harus dibiarkan sendiri.

  • bahas perilaku: Tunjukkan bahwa tujuannya adalah untuk meningkatkan kode dan menumbuhkan pemahaman bersama yang akan membantu tim menulis kode yang lebih baik, tidak mempermalukan siapa pun, menyelesaikan skor, dll. Kritik harus objektif dan konstruktif, tidak pernah bersifat pribadi. Meletakkan beberapa aturan dasar dapat membantu meringankan keraguan tentang kode yang ditinjau.

  • Tempatkan diri Anda di kursi panas terlebih dahulu: Apakah Anda berencana untuk memiliki ulasan individu atau ulasan grup, mungkin ide yang baik untuk melewati beberapa yang pertama sebagai sebuah grup. Peninjauan pertama harus dari kode Anda sendiri sehingga anggota tim lain dapat melihat bahwa prosesnya tidak terlalu buruk dan Anda bersedia melakukannya sendiri.

Mulailah dengan mengadakan pertemuan kickoff untuk menjelaskan semua hal di atas dan mengatasi kekhawatiran anggota tim. Tindak lanjuti dengan email yang mendokumentasikan prosesnya.

Saya merasakan keengganan besar dari tim, karena itu hanya satu hal lagi yang harus dilakukan, dan percakapan menjadi menyakitkan.

Itu adalah dua keprihatinan yang berbeda. Jika Anda percaya bahwa ulasan akan membantu, maka Anda perlu menambah waktu dalam jadwal untuk melakukannya. Pastikan bahwa anggota tim memahami bahwa peninjauan adalah pekerjaan seperti tugas lainnya, bukan sesuatu tambahan yang harus mereka lakukan sambil terus menyelesaikan tugas lain dengan kecepatan yang sama.

Pertemuan-pertemuan tinjauan kelompok harus dipimpin oleh seorang fasilitator yang membuat diskusi berjalan terus, membatasi waktu rapat, dan membuat segala sesuatu tetap konstruktif. Itu harus pergi jauh ke arah menghindari percakapan yang menyakitkan. Pada saat Anda siap untuk memulai ulasan individu, tim diharapkan akan mengadopsi perilaku yang membantu mereka menjaga hal-hal yang konstruktif pada mereka sendiri.

Anda juga harus meninjau proses peninjauan dari waktu ke waktu. Buat tim bersama-sama sering membahas proses: seberapa baik kerjanya, bagaimana bisa ditingkatkan, praktik apa yang harus ditinggalkan, dll. Berikan kepemilikan tim pada proses dan kebebasan untuk mencoba hal-hal baru.

Caleb
sumber
-2

Salah satu cara melakukannya adalah dengan melakukan sesi tinjauan kode setelah setiap sprint, dan melalui perubahan semua orang di mana kode diproyeksikan ke semacam layar besar sehingga semua orang dalam tim dapat berpartisipasi. Setiap perbaikan dapat ditambahkan sebagai hutang teknis ke dalam simpanan.

Pendekatan ini berhasil, tetapi itu tidak sempurna.

Tujuan akhir adalah menggunakan permintaan tarik untuk menggabungkan kode kembali ke master atau mengembangkan cabang tempat setiap baris kode harus ditinjau.

Pelican Terbang Rendah
sumber
3
Duduk semua orang selama berjam-jam untuk meninjau semua kode yang dihasilkan selama iterasi setelah selesai (dan terlambat secara sah) terdengar seperti cara yang bagus untuk membuat semua orang membenci gagasan Ulasan Kode.
RubberDuck
Nah .. jika perlu berjam-jam untuk meninjau kode yang dihasilkan dalam satu sprint, maka Anda salah melakukannya, baik Sprint adalah 6 bulan, atau tim dengan 50 orang, atau pengembang tidak melakukan apa pun tentang pengkodean atau praktik terbaik. Karena pengkodean tidak berakhir setelah iterasi, tidak pernah ada kata terlambat, dan kode selalu berubah dan utang teknologi dapat ditangani dalam iterasi berikutnya. Dan melakukan tinjauan kode dengan cara ini memungkinkan pengembang yang belum pernah melakukannya untuk melihat apa yang harus dicari dan seterusnya ... begitu dimulai seperti itu dapat secara bertahap dipindahkan ke arah permintaan tarik
Pelican Rendah Terbang
7 tim saya menambah / menghapus / memodifikasi beberapa ribu baris kode lebih dari ~ 3 lusin komit setiap dua minggu. Tinjauan kualitas PR membutuhkan waktu sekitar 15-60 menit. PR rata-rata adalah 3-4 komit. Jadi ya. Jika kita melakukan semuanya sekaligus sebagai tim, itu akan membutuhkan 8 jam X 7 devs bukannya 8 jam tersebar di seluruh tim. Saya membenci sindiran Anda bahwa kami melakukan sesuatu yang salah. Kami pergi ke prod beberapa kali seminggu . Apakah kamu?
RubberDuck
Kami melakukan prod setiap pengulangan
Low Flying Pelican