Tim kami baru-baru ini mulai melakukan tinjauan kode terhadap setiap checkin.
Saat tim memimpin saya mencoba menemukan keseimbangan antara memberikan terlalu banyak saran, mengganggu pengembang dan mengurangi output tim, dan melepaskan kode yang saya tulis berbeda.
Adakah bukti, studi, atau panduan dari sumber-sumber terkenal yang menyarankan pendekatan yang membantu?
Jawaban:
Ingatlah tujuan menyeluruh: pada akhirnya, hanya perangkat lunak yang berfungsi
Tinjauan rekan dan tinjauan kode check-in memiliki tujuan untuk meningkatkan kualitas . Tetapi tidak ada yang lebih buruk untuk kualitas selain seorang pengembang yang terdemotivasi. Sebagai pemimpin tim, peran Anda bukan untuk mengesahkan kode sebagai sesuatu yang bisa Anda tulis sendiri, tetapi untuk mempromosikan kerja tim dan memastikan hasil keseluruhan.
Tetapkan cakupan yang jelas untuk ulasan Anda
Ingat: ini bukan kode Anda, tetapi kode tim. Jadi, fokuslah pada hal-hal yang bisa mengarah pada hasil yang salah.
Jangan menantang cara pengembang Anda telah memilih untuk memenuhi persyaratan, kecuali Anda yakin itu tidak akan berhasil (tapi itu seharusnya sudah gagal tes, bukan?)
Jangan menantang kinerja yang buruk kecuali jika ada ukuran yang menunjukkan di mana masalahnya. Optimalisasi prematur adalah akar dari semua kejahatan ;-)
Jika Anda menemukan desain atau struktur perangkat lunak yang menantang, maka tanyakan pada diri Anda mengapa itu tidak tertangkap muka! Kode yang sudah ditulis mahal untuk ditulis ulang. Jika ini terjadi, saatnya untuk meninjau pengembangan perangkat lunak Anda dan praktik kerja tim setidaknya sebanyak kode.
alamat kepatuhan dengan standar pengkodean yang ditetapkan. Ini adalah topik yang paling menjengkelkan untuk didiskusikan baik bagi peninjau maupun yang ditinjau. Ketika semua orang setuju untuk menggunakan nama kelas dengan huruf besar dalam tim Anda dan satu orang tanpa kelas, apakah ini masalah selera? Atau efektivitas kerja tim dan risiko?
By the way, jika Anda merasa standar pengkodean tidak layak untuk dibahas, hapus itu membentuk standar Anda dan jangan buang waktu dan energi di atasnya.
Kembangkan kepemimpinan: sisi manusiawi dari tinjauan
Sebagai pemimpin tim, di sini Anda dapat menemukan peluang untuk mengembangkan diri dan tim Anda, di luar formalitas kendali mutu:
Manfaatkan praktik lain
Ada beberapa hal yang dapat Anda hindari dalam tinjauan kode:
sumber
Sebagai pengembang kita, pola pikir harus tetap terbuka dan skeptis pada saat yang sama.
Terbuka, karena kita tidak tahu kapan pengembang mungkin mengejutkan kita, dan skeptis tentang ide kita sendiri karena kita sering lupa bahwa dalam rekayasa perangkat lunak tidak ada satu pun cara yang benar untuk mengimplementasikan solusi. Alasan di balik solusi kami bisa masuk akal bagi kami dan tidak membuat yang lain untuk yang lain. Di balik bau kode mungkin ada ide bagus. Mungkin, pengembang tidak menemukan cara untuk mengekspresikannya dengan benar.
Karena kami (manusia) sangat buruk dalam berkomunikasi, jangan membuat asumsi yang salah, berkeinginan untuk bertanya kepada pemilik kode tentang kode yang Anda tinjau. Jika dia gagal dalam mengkode ide di bawah standar perusahaan, karena pengembang utama bersedia membimbingnya juga.
Di sini pendekatan subyektif. Pendekatan objektif, IMO, dijelaskan dengan sangat baik dalam pertanyaan ini .
Selain tautan di atas, serangkaian tujuan yang harus dicapai (rawatan, keterbacaan, portabilitas, kohesi tinggi, kopling longgar, dll.) Tidak harus Sepuluh Perintah. Anda (tim) harus dapat menyesuaikan tujuan-tujuan ini ke titik di mana keseimbangan antara kualitas dan produktivitas membuat pekerjaan lebih nyaman dan "layak huni bagi pengembang".
Saya akan menyarankan penggunaan alat analisis kode statis untuk mengukur kemajuan kualitas sesuai dengan tujuan ini. Alat-alat seperti SonarQube memberi kami Gerbang Kualitas dan Profil Kualitas yang dapat disesuaikan sesuai dengan prioritas kami. Ini juga memberi kami pelacak masalah, di mana pengembang dapat ditargetkan dengan masalah yang terkait dengan bau kode, bug, praktik yang meragukan, dll.
Alat semacam ini bisa menjadi titik awal yang baik, tetapi seperti yang saya katakan tetap skeptis. Anda dapat menemukan beberapa aturan di Sonar menjadi tidak berarti bagi Anda, jadi silakan mengabaikannya atau menghapusnya dari profil kualitas Anda.
sumber
Campur tangan dengan kode pengembang untuk perubahan kosmetik akan mendemotivasi pengembang tetapi dalam keadaan absolut itu harus dilakukan. Pemimpin harus menemukan keseimbangan antara memberikan ulasan kode yang berguna dan belajar untuk melepaskan kekurangan kecil. https://blog.smartbear.com/sqc/for-the-new-team-lead-the-first-six-things-you-should-know/
sumber
Beberapa hal yang perlu diingat:
sumber
Hanya ada dua hal yang penting.
Segala sesuatu yang lain adalah kosmetik dan harus diperdebatkan tentang bir daripada ditegakkan sebagai gerbang.
Jika Anda mengikuti pandangan ini, maka itu membatasi Anda untuk area fokus yang sempit.
Apakah persyaratannya baik? Yang idealnya Anda harus tahu sebelum memulai tugas, yaitu kinerja, keamanan dll semua harus ada di sana
Apakah tes itu tes yang bagus? Setiap kasus tepi terjawab, apakah mereka menguji persyaratan dengan baik dll. Pada akhirnya: Dapatkah Anda menulis tes yang untuk persyaratan yang ada tetapi yang akan gagal?
sumber