Saya menduga ulasan kode utama ditutup-tutupi di tim saya. Terlalu banyak ulasan kode digabungkan tanpa komentar.
Menurut saya sepertinya tidak ada tinjauan kode tanpa satu komentar.
Bagaimana saya sebagai pemimpin tim dapat memonitor dengan baik bahwa tim saya sedang melakukan proses peninjauan kode yang tepat dan bagaimana saya dapat membantu mereka untuk memaksimalkan manfaat proses?
Memperbarui
Orang yang berpikir mungkin ingin tahu tentang pembaruan apa pun. Saya mencoba banyak saran yang diberikan di sini. sebagian besar sudah digunakan. beberapa membantu sedikit. Namun, masalahnya tetap ada - beberapa orang terus menerus mendapatkan kode yang buruk ketika saya tidak melihat.
Saya menemukan bahwa pemantauan tinjauan kode tidak membantu seperti memberikan alat tim saya untuk membuat kode mereka lebih baik.
Jadi saya menambahkan perpustakaan bernama "jscpd" untuk mendeteksi copy paste. Bangunan gagal pada pasta salinan. Itu menghilangkan satu masalah dengan segera.
selanjutnya kita akan mencoba codeclimate.
Saya juga melakukan tinjauan manual pada ulasan kode lama sekali berlari selama setengah hari. Saya mengkonversi todo
menjadi isu / tiket - karena saya tahu orang-orang menulisnya, tetapi mereka tidak pernah ditangani di kemudian hari. Saya juga melakukan pertemuan dengan seluruh tim untuk meninjau kode bila perlu.
secara umum rasanya seperti kita bergerak ke arah yang benar.
sumber
Jawaban:
Saya akan menawarkan pandangan berbeda dari sesama penjawab saya. Mereka benar - terlibatlah jika Anda ingin melihat bagaimana keadaan. Jika Anda ingin lebih mudah ditelusuri, ada alat untuk itu.
Tetapi dalam pengalaman saya, saya curiga ada sesuatu yang terjadi.
Sudahkah Anda menganggap bahwa tim Anda mungkin merasa bahwa prosesnya rusak / bodoh / tidak efektif untuk sebagian besar komitmen? Ingat, proses mendokumentasikan apa yang berfungsi dengan baik, bukan aturan untuk dipatuhi . Dan sebagai pemimpin tim, Anda berada di sana untuk membantu mereka menjadi yang terbaik, bukan menegakkan aturan.
Jadi dalam retrospektif Anda (jika gesit) atau satu-satunya (jika Anda seorang manajer) atau dalam pertemuan lorong dadakan acak (jika Anda adalah seorang pemimpin tim yang tidak gesit dan ada manajer lain yang mengerjakannya sendiri), bawalah. . Tanyakan pendapat orang tentang proses peninjauan kode. Bagaimana cara kerjanya? Bagaimana tidak? Katakan Anda pikir itu mungkin tidak menguntungkan tim sebanyak mungkin. Pastikan kamu mendengarkan .
Anda dapat melakukan advokasi untuk tinjauan kode dalam pertemuan ini, tetapi lebih baik mendengarkan umpan baliknya. Kemungkinan besar, Anda akan menemukan bahwa tim Anda berpikir bahwa proses "yang tepat" perlu disesuaikan, atau bahwa ada beberapa penyebab utama (tekanan waktu, kurangnya pengulas, Bob hanya melakukan kode-nya jadi mengapa kita tidak bisa) menangani .
Memaksa alat di atas proses yang rusak tidak akan membuat proses lebih baik.
sumber
Saya tidak suka memposting jawaban satu baris, tetapi yang ini sepertinya tepat:
Berpartisipasilah dalam proses ini.
sumber
Dapatkan alat, seperti ReviewBoard atau plugin Redmine's codereview . Kemudian setiap ulasan dibuat sebagai tugas yang harus ditutup atau dikomentari oleh seseorang (seperti tiket bug). Kemudian Anda dapat dilacak dari siapa yang membuat tiket ulasan, dan siapa yang menutupnya. Anda dapat mengikat tiket ulasan dengan checkin kode sumber, yaitu membuat tiket dari revisi.
sumber
Beberapa hal (sejujurnya, sebagian besar dibahas di seluruh jawaban, tapi saya ingin menempatkannya di satu tempat)
Anda bisa menerapkan proses dan aturan untuk memastikan review kode terjadi, tetapi sangat tidak mungkin untuk memasukkannya sehingga review kode sebenarnya lebih dari sekadar latihan mencentang kotak. Pada akhirnya tim harus melihat manfaat dari proses tersebut, jika mereka ingin mendekatinya dengan berguna
Menurut contoh. Ambil bagian dalam ulasan. Sebagai seorang pengembang, saya merasa sedih jika manajer saya (yang bukan pengembang sekarang) melihat hal-hal yang tidak saya lakukan. Sorot masalah yang seharusnya tertangkap dalam tinjauan (dengan cara yang tidak menyalahkan). Jika masalah produksi terjadi, jika masalah muncul selama QA (jika Anda memiliki proses QA terpisah), sorot di mana mereka bisa ditangkap dalam tinjauan kode. Diskusikan dengan tim bagaimana kita bisa memastikan masalah di masa depan seperti itu tertangkap
Diskusikan dengan tim apa yang mereka ingin proses lakukan. Jika mereka tidak melihat titik untuk itu (seperti yang mungkin terjadi di awal) gunakan masalah produksi dan refix yang diperlukan sebagai bukti manfaatnya
Gunakan perangkat lunak pengecekan kode otomatis seperti Sonarqube sehingga ulasan kode dapat fokus pada masalah seperti kode yang tidak dapat dipahami, kesalahan logika, kurangnya dokumentasi, dll yang tidak dapat dilihat secara otomatis.
sumber
Anda dapat mendokumentasikan apa yang diinginkan tim dalam ulasan kode yang telah Anda diskusikan dan sepakati bersama pengembang. Beberapa hal yang dapat Anda pertimbangkan sebagai bagian dari tinjauan kode adalah:
Pastikan kode melakukan apa yang seharusnya dilakukan yaitu memenuhi persyaratan
Gaya kode untuk memastikan bahwa pengembang mengkode ke gaya yang konsisten
Optimasi misalnya jumlah panggilan fungsi
Arsitektur dan penggunaan kembali
Penanganan dan penebangan pengecualian
Utang teknis: adalah kode dalam kondisi yang lebih baik daripada saat pengembang mulai mengerjakannya
Lihat dan buat kodenya (saya menemukan ini berguna tetapi pengembang lain di tim saya lebih suka menyerahkan ini kepada penguji)
Menggunakan alat otomatis (Saya sudah menggunakan SonarQube ). Saya merasa berguna untuk mengintegrasikan ini ke dalam proses pembuatan Anda untuk menegakkan perbaikan pada kode misalnya meningkatkan cakupan pengujian
Beberapa langkah di atas dapat dicakup oleh alat otomatis, tetapi saat Anda mencoba meningkatkan ulasan kode cara atau melakukannya mungkin layak menggunakan kedua alat dan tinjauan bola mata. Namun, langkah paling penting untuk mencegah utang teknis (arsitektur dan penggunaan kembali) tidak dapat sepenuhnya otomatis.
Jika tim Anda tidak konsisten dalam menerapkan ini, Anda bisa mencoba hanya mengizinkan pengembang yang melakukan tinjauan kode dengan benar untuk memiliki hak penggabungan. Misalnya, Anda mungkin hanya ingin memulai dengan pemimpin tim. Pertukaran dengan pendekatan ini adalah bahwa para pengembang tersebut dapat menjadi penghambat dalam proses pengembangan, sehingga Anda dan tim perlu memutuskan apakah Anda menginginkannya. Secara pribadi saya akan menerima pertukaran ini dan melalui ulasan kode meningkatkan disiplin di seluruh tim dan kemudian ketika siap Anda dapat meningkatkan jumlah pengembang dengan hak penggabungan.
Akhirnya, ada baiknya meninjau ulasan. Jadi seminggu sekali berkumpul dengan para pengembang dan secara konstruktif membahas ulasan dan cara untuk memperbaikinya.
sumber
Saya akan memberi tahu Anda bagaimana tim saya dengan cepat mengintegrasikan tinjauan kode ke dalam alur kerjanya.
Pertama, izinkan saya mengajukan pertanyaan kepada Anda. Apakah Anda menggunakan sistem kontrol versi (mis. Mercurial, Git)?
Jika jawaban Anda adalah ya, maka lanjutkan.
Sekarang Anda memiliki titik yang tepat dalam alur kerja Anda di mana peninjauan kode dilakukan.
Bertindak di sana.
* dapat diberlakukan secara otomatis, dengan kait sisi server
** prosedur ini didukung sepenuhnya oleh GitHub (antara lain), dan cukup mudah digunakan, periksa saja
sumber
Saya pikir Anda harus membuat template dan meminta anggota tim Anda untuk memperbaruinya setiap kali mereka melakukan review kode. Tetapi meskipun begitu, Anda harus berpartisipasi dalam proses peninjauan pada awalnya.
sumber