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?
sumber
Jawaban:
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.
sumber
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.
sumber
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!
sumber
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.
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.
sumber
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.
sumber