Apakah pantas untuk memberikan komentar positif dalam ulasan kode, atau hanya untuk kritik yang membangun?


36

Saya telah melakukan banyak tinjauan kode akhir-akhir ini, dan saya tidak yakin dengan efek positif dan negatif serta profesionalisme dalam memberikan komentar positif dan / atau lucu dalam ulasan kode.

Kami menggunakan Github sebagai platform peninjauan kode kami di tim saya, sehingga komentar dapat dilihat oleh siapa pun. Saya biasanya mencoba menggunakan platform ini sehingga seluruh proses dari awal hingga selesai terlihat dan historis.


Ya, saya menyadari ini sebagian besar berkaitan dengan budaya, tetapi saya mencari jawaban umum.
Codeman

22
Penting untuk memperkuat apa yang ingin Anda lihat dengan komentar positif.

2
Saya tidak tahu apakah itu tepat, tapi kadang-kadang saya memposting kode haikus di ulasan: programmer junior - kode uncommented Anda - seperti serpihan rasa sakit.
yannis

Saya sebenarnya programmer junior meninjau kode senior - kami memiliki proses yang cukup ketat di sini, semua kode harus ditinjau :)
Codeman

Jawaban:


53

Penting untuk menyoroti hal-hal positif maupun negatif. Saya tahu jika saya meninjau refactor dari subsistem neraka tertentu menjadi sesuatu yang rapi dan bersih, saya mungkin akan membeli programmer pizza untuk usahanya.

Jika Anda menggunakan ulasan sebagai pelatihan, ini sangat penting - menyoroti kode yang baik akan bermanfaat bagi para programmer junior yang juga meninjau kode itu. Mereka akan memiliki kesempatan untuk mengajukan pertanyaan tentang mengapa pendekatan atau teknik tertentu lebih baik daripada yang lain.


Bisakah Anda menambahkan catatan "mengapa itu penting"? Saya akan menandai sebagai diterima ketika Anda melakukan itu :)
Codeman

3
Ini membuat orang tahu bahwa apa yang mereka lakukan (menulis kode yang baik) dihargai, dan tetap fokus pada pertumbuhan, yang merupakan tinjauan kode.
Jonathan Rich

1
Bisakah Anda menambahkan ini ke jawaban Anda?
Codeman

2
+1 Anda layak menerima lencana jawaban yang bagus untuk yang satu ini. Jumlah tempat yang tidak menghargai kritik membangun cukup mengejutkan saya. Memberitahu orang bahwa mereka melakukan pekerjaan dengan baik ketika melakukan pekerjaan dengan baik bisa menjadi motivator yang sangat efektif.
Benjamin Gruenbaum

@Benjamin: terlalu banyak organisasi memperlakukan peninjauan kode sebagai 'menemukan cacat pada setiap proses kode karet' dan bukan sebagai 'mari membangun tim berkinerja tinggi'. Dalam pengalaman saya, tinjauan kode adalah cara tercepat dan terbaik untuk mendobrak hambatan yang mencegah kinerja tim perangkat lunak. Kami memiliki standar notasi di mana kami mengawali komentar dengan -2 (harus diperbaiki) meskipun ke +2 (kerja bagus).
mattnz

8

Lucu: Simpan untuk pendingin air, kecuali dalam dosis minimal - memiliki wajah prune bukan keharusan untuk meninjau kode.

Positif: Tentu saja. Tinjauan mencakup positif dan negatif / konstruktif, menurut definisi.

Umpan Balik Positif membantu semua orang:

Untuk yang menerima acungan jempol, Anda memperkuat kepercayaan diri mereka dan menginspirasi mereka untuk melakukan hal yang sama melalui umpan balik positif Anda.

Selebihnya, seperti yang disebutkan orang lain, mereka akan belajar apa yang harus dilakukan , serta apa yang tidak boleh dilakukan . Mereka juga akan didorong untuk unggul, sehingga suatu hari mereka juga dapat menjadi sorotan.

Saya pernah bekerja untuk bos yang liberal dalam umpan balik positifnya - timnya sangat sukses dan produktif. Dia pindah, dan yang lain mengambil alih yang tidak memiliki kemampuan untuk memuji pekerjaan yang dilakukan dengan baik. Produktivitas dan moral terpuruk, dan banyak anggota tim yang lebih baik meninggalkan perusahaan.


3

Saya akan mengatakan menjaga komentar tetap bersih dan to the point, tepatnya karena budaya.

Anda tidak dapat menghindari bahwa beberapa orang akan mengambil hal-hal dengan cara yang salah.
Untuk mengurangi itu, pembicaraan pribadi satu lawan satu akan memperlancar hal-hal, jika tatap muka tidak mungkin, obrolan atau email atau skype.


1
Poin bagus. Menjadi "lucu" dalam berkomentar dapat dengan mudah menjadi bumerang, terutama dalam lingkungan multi-bahasa, multi-budaya.
David Navarre

2

Mengomentari dalam tinjauan kode sedang dikelola

Perlakukan komentar sebagai alat manajemen

Memasukkan komentar ke dalam tinjauan kode adalah bentuk manajemen. Karena itu, harus didekati sebagai alat manajemen.

Gunakan praktik manajerial saat berkomentar

Ada struktur untuk mengelola orang di mana tujuannya adalah untuk memenuhi hasil yang diinginkan. Beberapa pendekatan utama untuk manajemen tidak akan berlaku dalam komentar tetapi sebagian besar akan. Topik yang berlaku mencakup lingkungan, kepemimpinan, pengorganisasian, dan pengendalian.

Lingkungan Hidup

Budaya

Lingkungan menentukan gaya manajemen. Budaya dan lingkungan tempat kerja harus selalu diingat ketika menggunakan alat manajemen apa pun. Biasanya ini dipengaruhi oleh industri dan ukuran perusahaan atau entitas yang dikelola.

Gaya

Jika ada budaya ringan maka itu mungkin akan muncul dalam gaya manajemen yang digunakan. Jika ada pedoman, kebijakan, dan konsekuensi yang sangat ketat, maka itu harus tercermin dalam gaya yang digunakan. Jadi, jika semua orang ada di papan untuk lelucon perang bintang referensi droid dan stormtrooper berpikiran lemah maka interupsi komedi dapat diterapkan. Namun, jika ada konsekuensi yang mengerikan karena tidak menganggap serius hasil akhir maka hal itu mungkin perlu dihindari.

Kepemimpinan

Fundamental

Ada tiga pilar utama kepemimpinan yang perlu dipertimbangkan ketika berkomentar. Yaitu mereka adalah visi, komunikasi, dan penilaian.

Vision

Penting untuk mengingat visi besar saat menjelaskan atau memberikan instruksi. Dalam komentar, ini bisa berarti menunjukkan bagaimana perubahan kecil mempengaruhi proyek secara keseluruhan, apa implikasinya dari mengambil pendekatan yang berbeda, atau ujung topi untuk pemisahan masalah.

Communication

Menjadi komunikator yang baik adalah penting dalam banyak aspek kehidupan. Tidak ada bedanya dalam komentar. Mempekerjakan tingkat singkat yang bijaksana adalah penting - terutama karena komentar tidak boleh mengambil banyak ruang. Dapatkan lebih awal, dan buatlah cadangan dengan contoh jika perlu. Dalam organisasi yang lebih besar, ini juga dapat mencakup kebutuhan untuk mengirimkan komunike atau memo jika masalah tidak dilokalisasi ke satu sesi peninjauan.

Judgement

Adalah penting bahwa strategi digunakan ketika menilai apakah komentar perlu dibuat atau tidak, dan perubahan apa yang perlu dilakukan. Penghakiman Anda tidak selalu harus benar, tetapi perlu secara konsisten benar terutama ketika panggilan penghakiman besar dilakukan.

Pengorganisasian

Dari sudut pandang manajerial, pengorganisasian akan mengacu pada menjaga tujuan akhir dalam pikiran dan memastikan bahwa proses diselaraskan untuk mengikuti serangkaian aturan. Komentar juga harus mengingat hal ini karena komentar harus bila memungkinkan saling membangun untuk memastikan bahwa aliran desain diikuti. Penting juga untuk mengingat ruang lingkup kode yang ditinjau untuk mengurangi penggandengan dan mengikuti keseluruhan desain.

Mengontrol

Mengontrol tindakan mereka yang dikelola adalah proses yang rumit. Sementara bersikap tegas, harus diingat bahwa rakyat itu penting. Ada beberapa keterampilan manajerial yang digunakan saat mengendalikan orang lain. Keterampilan ini bersifat politis, konseptual, interpersonal, diagnostik, dan teknis.

Politik

Politik dapat ditemukan kapan saja ada interaksi antara orang-orang. Ini adalah topik yang sangat besar, tetapi dalam arti umum politik berputar di sekitar pengaruh. Penting untuk mengingat politik pribadi dan profesional di tempat kerja ketika memberikan komentar. Ini bisa terkait dengan instruksi, lelucon, atau bahkan pertanyaan.

Konseptual

Mengelola melalui konseptualisasi adalah alat yang penting. Ini membutuhkan analisis yang kompleks dari situasi yang dihadapi. Ketika berkomentar, akan bermanfaat jika menyertakan beberapa analisis yang digunakan untuk menghasilkan kesimpulan atau perubahan yang ditunjukkan dalam ulasan.

Interpersonal

Keterampilan interpersonal sangat penting ketika mengelola. Ini juga merupakan topik besar. Beberapa hal penting yang perlu dipertimbangkan dengan keterampilan interpersonal adalah bimbingan, kritik konstruktif, dan "harpooning".

Mentoring

Penting bahwa manajemen dipandang lebih sebagai mentor daripada sebagai antagonis. Dalam ulasan kode, ini berarti bahwa kadang-kadang akan bermanfaat untuk memasukkan anggukan pada pola desain atau pendekatan yang dapat digunakan untuk memperbaiki situasi.

Constructive Criticism

Kritik itu penting karena ia mengundang refleksi. Namun, kritik harus dijaga se-positif mungkin. Ini berarti menawarkan bukti yang valid untuk mendukung kritik, dan juga memastikan bahwa nada yang digunakan tidak negatif. Saat meninjau kode, ini dapat mencakup menampilkan pengecualian atau kemungkinan skenario yang akan menghasilkan kesalahan sambil menyiratkan solusi alih-alih menunjukkan setiap tempat yang salah ketika seluruh bagian kode perlu diganti.

"Harpooning"

"Harpooning" adalah ketika Anda secara kiasan menghantam seseorang ke tanah. Ini dilakukan dengan memecah mereka langkah demi langkah tanpa penangguhan hukuman sampai mereka merasa tidak bisa bangun. Jika Anda menusuk seseorang dalam ulasan kode atau di tempat lain Anda akan kehilangan kerja sama mereka. Penting untuk menghindari menjatuhkan seseorang secara berlebihan.


Ringkasan bisnis plan

Perlakukan komentar dalam ulasan kode sebagai alat manajerial. Ingatlah bahwa komentar harus singkat, to the point, dan konstruktif. Juga memastikan bahwa ketika mengomentari orang yang ditinjau dipertimbangkan.


Peninjauan kode tidak boleh manajerial. Nama lainnya adalah 'Tinjauan PEER' karena alasan yang bagus. Masalah lain yang saya miliki dengan jawabannya adalah seharusnya kode yang sedang ditinjau, bukan orangnya. Jika peninjauan kode diperlakukan sebagai peninjauan orang tersebut, maka kode tersebut akan (atau segera) menjadi alat manajemen untuk 'memukul orang'. Saksikan itu menjadi masukan dalam KPI, dan saksikan permainan yang dimainkan teman sebaya - "Kode itu bisa lebih baik, saya akan membiarkannya meluncur jika Anda berjanji untuk mempermudah penurunan kode berikutnya"
mattnz

@mattnz - Teman sebaya sering saling mengelola. Selain itu, tidak semua organisasi beroperasi pada hierarki ketat dari atas ke bawah, di mana rekan sejawat merupakan faktor kunci manajemen. Namun saya menerima masalah dengan klaim Anda bahwa tinjauan kode bukan tentang individu tersebut. Memperbaiki kebiasaan pengkodean yang buruk membutuhkan panduan aktual, dan mengeluarkan panduan dengan cara yang anggun dan penuh hormat sangat penting agar berhasil.
Travis J

@ mattnz - Juga perhatikan, saya tidak pernah menyiratkan bahwa ulasan kode menjadi ulasan orang tersebut. Saya perhatikan bahwa Anda telah mendukung jawaban yang diterima di sini, yang saya setujui juga. Namun, yang aneh adalah bahwa jawaban secara eksplisit berfokus pada individu, membeli pizza dan secara pribadi menawarkan pujian kepada mereka. Saya tidak punya masalah dengan itu, tetapi bagaimana Anda bisa mengatakan itu tidak juga berperan sebagai "ulasan orang". Sejujurnya, sepertinya Anda hanya membaca kalimat pertama dan terakhir dari jawaban ini.
Travis J

0

Ulasan kode adalah alat untuk meningkatkan kualitas kode, sebagian dengan mengungkap cacat. Lebih penting lagi, Anda ingin menanamkan praktik pengkodean yang baik.

Dari perspektif ini, penting untuk mengomentari hal-hal yang dilakukan dengan baik. Dalam konteks pelatihan, peningkatan juga harus dikomentari. Jika budaya Anda adalah salah satu dari perbaikan berkelanjutan, maka Anda harus selalu mengomentari perbaikan.

Kesalahan, bug, dan pengkodean yang buruk akan terjadi. Tunjukkan secara non-pribadi, dan perlakukan seperti yang diharapkan.

Dari perspektif modifikasi perilaku, hadiah jauh lebih baik dalam menghasilkan perubahan daripada hukuman. Saya akan menganggap pekerjaan yang baik diperhatikan sebagai hadiah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.