Apakah penting untuk menunjukkan bagian yang baik dari kode selama ulasan kode dan alasan mengapa itu baik? Umpan balik positif mungkin bermanfaat bagi pengembang yang sedang ditinjau dan bagi orang lain yang berpartisipasi dalam ulasan.
Kami sedang melakukan tinjauan menggunakan alat online, sehingga pengembang dapat membuka ulasan untuk kode komitmen mereka dan orang lain dapat meninjau kode mereka dalam periode waktu tertentu (misalnya 1 minggu). Orang lain dapat mengomentari kode atau komentar pengulas lainnya.
Haruskah ada keseimbangan antara umpan balik positif dan negatif?
code-reviews
c_maker
sumber
sumber
Jawaban:
Tingkatkan Kualitas dan Semangat Menggunakan Peer Code Reviews
http://www.slideshare.net/SmartBear_Software/improve-quality-and-morale-using-peer-code-reviews
Hal Yang Harus Dilakukan Setiap Orang: Tinjauan Kode
http://scientopia.org/blogs/goodmath/2011/07/06/things-everyone-should-do-code-review/
Kedua artikel ini menyatakan bahwa salah satu tujuan dari tinjauan kode adalah untuk berbagi pengetahuan tentang teknik pengembangan yang baik, bukan hanya menemukan kesalahan.
Jadi menurut saya ini sangat penting. Siapa yang ingin pergi ke pertemuan dan hanya dikritik?
sumber
Ketika saya melakukan review kode, saya cenderung hanya memiliki monolog yang sedang berjalan, jadi ketika saya memahami apa yang saya baca akan ada banyak "Ok, saya mengerti apa yang terjadi .. Bagus terhubung dengan ini dan memanggil itu, baiklah .. dan bagian itu tergantung pada keduanya baik - baik saja. "
Saya pikir dengan cara ini bukan "oo la la ini begitu hebat!", Itu bisa menjadi kode membosankan sepele, tetapi mendengar orang lain benar-benar mengurai dan menunjukkan pemahaman tentang apa yang Anda tulis adalah bentuk umpan balik positif di dalam dan dari dirinya sendiri, umpan baliknya adalah "Kode ini masuk akal", ketika saya menemukan bagian-bagian yang saya tidak mengerti, saya meminta penjelasan dan ketika saya memahaminya berseru, "Ah, saya mengerti".
Saya pikir transfer pemahaman yang sederhana adalah pujian untuk insinyur lain karena kita semua ingin kode kita dipahami oleh orang lain, itu memberikan bentuk validasi implisit.
Yang mengatakan, jika Anda melihat bagian dari kode yang karakteristik baik atau positif (bahkan kode sepele yang membosankan dapat menjadi baik jika itu bentuk minimal dari dirinya sendiri) Saya pasti cenderung menyatakan karakteristik itu, sekali lagi saya tidak menganggapnya sebagai "Wow Bagus!" sama seperti "Saya melihat ini adalah implementasi minimal" atau "Ok, algoritma yang kompleks ini memiliki banyak komentar", fokus pada atribut kode tidak begitu banyak sifatnya baik atau buruk.
Setiap kali Anda mengaitkan "kebaikan" atau "kejahatan" dengan kode dalam tinjauan kode untuk menghindari membuat insinyur merasa diremehkan atau dipegang di atas alas tidak mengatakan sesuatu itu baik atau buruk, tetapi lebih baik membicarakan sebab dan akibat dari kode mereka.
"Ok bagian ini masuk akal, ah ada angka ajaib di sini, arti dari nilai itu mungkin tidak dipahami dengan baik oleh insinyur berikutnya untuk menyentuh ini"
"Aku tahu kamu punya wadah DI di sini ok jadi kamu akan kehilangan kopling dengan repositori itu"
"Ah ada kamus statis di sini, jika banyak utas menyentuh kamus itu kita bisa mengalami beberapa kondisi lomba"
Perhatikan, saya tidak mengatakan sesuatu yang baik atau buruk, tetapi apakah insinyur harus mengubahnya atau tidak akan dipahami oleh insinyur yang kodenya sedang ditinjau. Jelas Anda harus mengakhiri tinjauan kode dengan yay atau nay, tetapi mengumpulkan pernyataan ini selama itu akan melunakkan nay sebagai penjelasan telah dibuat dalam bentuk sebab dan akibat pernyataan ketika Anda memberi tahu mereka "Saya ingin angka-angka ajaib diperbaiki sebelum memeriksa ini di ".
sumber
Jika saya melihat sesuatu dalam ulasan kode yang sangat saya sukai dan berada di atas dan melampaui kode "cukup baik", saya akan memberikan umpan balik positif.
Secara umum, saya berpikir bahwa jika seseorang menulis sepotong kode yang benar-benar membuat Anda berkata "Wow, ini sangat bagus!" maka ya, umpan balik positif itu penting - itu membuat penulis tahu bahwa apa yang mereka lakukan dinikmati oleh orang lain, dan mereka harus mencoba melakukannya lagi. Itu harus lebih dari sekadar mengikuti pedoman dan praktik standar. Memberikan pujian karena seseorang membuat indentasi dengan baik atau menambahkan komentar boilerplate dapat mengatur bar agak rendah.
sumber
Ini bukan pertanyaan pemrograman seperti pertanyaan manajemen umum dan interaksi manusia. Umpan balik positif dalam ulasan kode sama pentingnya dengan umpan balik positif dalam segala jenis ulasan.
Apakah ini diperlukan atau tidak (dan sejauh mana diperlukan) adalah fungsi dari disposisi dan susunan emosional orang yang Anda ajak bicara. Beberapa orang merespons koreksi dengan lebih efektif ketika ditambah dengan pujian. Orang lain melihat pujian sebagai tidak tulus ketika disampaikan dengan koreksi.
Formula umum kadang-kadang disebut "Sandwich Umpan Balik": Barang bagus dulu, barang buruk kedua, barang bagus lalu. Idenya adalah untuk menjaga nada keseluruhan positif sementara pada saat yang sama memastikan bahwa umpan balik negatif diterima. Ini dapat membantu mencegah stres saat mengantisipasi peninjauan, dan membantu mencegah merenung sendiri setelahnya. Keduanya sangat penting sehubungan dengan produktivitas dan kualitas. Ini bukan hanya omong kosong emosional yang sensitif; Itu perilaku manusia 101.
Sekali lagi, Anda harus tahu orang yang bekerja dengan Anda dan memahami apa yang mereka tanggapi. Berurusan dengan orang adalah tentang manajemen, dan manajer yang baik tahu bagaimana membuat orang merespons.
sumber
Saya pikir umpan balik positif sangat penting dan itu terutama dari pribadi, dinamika realpolitik. Kita semua duduk dan menulis kode selama berjam-jam, berhari-hari, berminggu-minggu, berbulan-bulan, dan kebanyakan dari kita bangga dengan apa yang kita lakukan. Ulasan kode adalah kesempatan untuk menunjukkan hal itu.
Jika Anda pergi ke tinjauan kode dan hasil terbaik yang dapat Anda harapkan adalah "tidak ada komentar" (yaitu tidak ada keseimbangan umpan balik positif), rapat dapat dengan mudah diberi judul dalam pandangan "Cari Tahu Bagaimana Orang Buruk Mengira Anda Mengisap". Akibatnya, pengembang akan mulai merasa terganggu oleh atau bahkan takut kode ulasan, dan itu jelas merugikan tim. Pengembang akan "lupa" untuk memeriksa kode mereka atau akan mengembangkan ketidakberdayaan yang dipelajari dan hanya meminta kritik terus-menerus mereka apa yang harus dilakukan tentang setiap hal kecil untuk menghindari terkutuk dalam pertemuan ini.
Semuanya baik dan bagus untuk mengatakan bahwa, secara teoritis, paling logis untuk memperbaiki yang buruk dan meminta semua orang meninggalkan emosi di depan pintu, tetapi justru sikap seperti itulah yang bertanggung jawab terhadap pengembang rep yang menjadi tuli nada interpersonal. Di luar teori, kita manusia dan manusia suka mendapatkan tepukan di punggung dari waktu ke waktu, bahkan yang nominal. Itu penting.
sumber
Ini lebih penting jika Anda melakukan review berdampingan atau tim. Dalam ulasan tertulis, tidak ada berita adalah kabar baik. Tujuannya adalah memasukkan kode ke dalam produksi. Ketika itu adalah kode Anda, Anda harus merasa nyaman dengan diri sendiri.
Peninjauan kode harus digunakan sebagai sumber informasi untuk membantu membimbing dan mengelola tim. Ada banyak peluang untuk memberikan umpan balik positif tanpa mengacaukan basis data tinjauan kode. Contoh dapat ditarik untuk dibagikan kepada orang lain.
Ada lebih banyak untuk meninjau pengembang selain kode mereka. Waktu tinjauan kode pembajakan bisa kontraproduktif untuk mengeluarkan aplikasi. Tetapkan waktu yang khusus untuk membantu pengembang di luar tinjauan kode, tetapi itu tidak berarti Anda harus mengecualikan umpan balik ulasan kode.
sumber
Satu-satunya cara yang bisa saya pikirkan di mana memberikan umpan balik positif tentang kode bisa menjadi bumerang bagi Anda adalah jika Anda tidak hati-hati untuk menghindari "pujian backhand." Kebanyakan orang akrab dengan ini ... itu ditandai dengan frasa seperti, "Kerja bagus, tapi ..."
Jika semua orang datang ke pertemuan dengan sikap bahwa ini bukan ulasan pribadi programmer, tetapi upaya untuk meningkatkan praktik pengkodean untuk kualitas seluruh sistem, maka semua umpan balik adalah umpan balik "baik". Umpan balik yang menyoroti cara untuk meningkatkan praktik pengkodean menjadi sama pentingnya dengan umpan balik yang menyoroti metode baru yang berguna untuk menangani masalah.
Paling tidak, jika seseorang tidak sampai sejauh itu, harus ditekankan bahwa berusaha untuk melakukan siklus "umpan balik yang baik, umpan balik yang buruk, umpan balik yang baik, umpan balik yang buruk" dalam proses peninjauan hanya akan menemukan dengan perasaan pujian backhand yang sama. Jangan mencoba memaksakan umpan balik yang baik, mencoba untuk memperkuat upaya yang baik, dan menopang lubang pengetahuan.
Frase yang paling saya pelajari dari, selama bertahun-tahun:
sumber
Alur kerja yang paling saya sukai dengan ulasan kode adalah ini:
Biasanya yang akan terjadi adalah para pengembang baru akan mendapatkan lebih banyak umpan balik 'koreksi' karena mereka terbiasa dengan basis kode.
Manfaat dari pendekatan ini adalah:
sumber
Saya tidak bisa setuju dengan ini sama sekali. Apa perbedaan antara Teknik Pengembangan Baik dan apa yang disebut Ninja Coders yang dapat menulis kode manusia yang luar biasa tetapi tidak bisa dijelaskan? Pengembangan Perangkat Lunak saat ini (IMO) merupakan disiplin yang paling rendah di mana penyerang dan kelicikan dijauhi demi kelestarian dan kemudahan pemahaman. Terlalu berisiko.
Saya tidak dapat memikirkan waktu yang pernah saya lihat kode dalam ulasan yang akan membuat saya pergi 'Oh itu keren'. Saya hanya bisa berasumsi bahwa jika saya menemukan kode seperti ini, itu akan jatuh ke kamp Cool-Yet-Unacceptable.
Anda juga memiliki masalah dengan orang-orang yang tidak mendapat umpan balik positif mungkin berusaha terlalu keras dan akhirnya membuat kekacauan "Percayalah padaku, itu berhasil!".
Peninjauan kode ada untuk menyebarkan tanggung jawab kualitas kode di antara tim, yaitu pengembang individu tidak dapat disalahkan jika masalah serius muncul kemudian. Gunakan untuk menemukan masalah, gunakan untuk mendapatkan penjelasan dari pengembang asli tentang hal-hal aneh jika Anda akhirnya harus memeliharanya. Secara pribadi, saya lebih tertarik untuk menerima umpan balik negatif. Pelanggan tidak peduli dengan kesejukan kode Anda, hanya saja ia melakukan apa yang mereka inginkan.
Biarkan backslapping ke pub.
sumber
Itu penting bagiku. Saya tidak ingin komentar atau kepositifan hanya demi kepositifan. Jika semua kode yang saya tulis jelek, Anda memberi tahu saya alasannya dan mari kita perbaiki dan pelajari. Tetapi jika saya melakukan sesuatu dengan benar, senang mendengarnya sekali dan sementara waktu. Saya tidak perlu penguatan positif untuk semua yang saya lakukan yang "benar", tetapi bahkan jika itu adalah "mari kita tingkatkan X, Y, dan Z, tetapi sisanya terlihat bagus" itu penting.
sumber
Tidak sepenting umpan balik yang jujur. Saya bekerja untuk perusahaan finansial besar, dan pelanggan kami tidak peduli jika programmer berusaha keras atau orang yang baik, atau biasanya menulis kode yang baik! Mereka membutuhkan perangkat lunak yang berfungsi.
sumber
Saya pikir penting untuk sepenuhnya objektif. Berusaha meningkatkan moral dengan membuat komentar positif adalah buang-buang waktu di pikiran saya.
Ini dapat berarti bahwa ulasan kode terlalu kritis - tetapi bukankah itu intinya. Kita juga harus kritis terhadap diri kita sendiri. Saya menemukan bahwa asumsi bahwa kode yang saya tulis mungkin adalah sampah lengkap dan pasti dapat ditingkatkan mendorong saya untuk meningkatkan kode dan tingkat keahlian saya.
Jika Anda tidak mendapat komentar maka Anda dapat mempertimbangkan bahwa Anda telah melakukan pekerjaan dengan baik.
sumber
Mantra sederhana: Jika seseorang menginginkan Kode kualitas (yang sebenarnya kurang) maka metode peninjauan yang tepat harus dipraktikkan. Karena itu, umpan balik positif membantu pengembang / programmer untuk berpikir dan menghasilkan ide / solusi / perbaikan. Jangan terlalu keras, tapi tegaslah pada intinya. T&J Manajer harus mengetahui metodologi dan praktik yang baik sehingga ia dapat membimbing tim (atau anggota) ke arah yang benar. Ini menghasilkan kualitas. Titik.
sumber
Ketika kode untuk kompetisi atau diajukan untuk wawancara kerja (dengan kata lain, kode yang ditulis dan tidak dapat ditulis ulang), maka komentar positif adalah suatu keharusan. Bahkan, Anda harus memastikan bahwa ada umpan balik positif (jika mungkin!) Dan juga negatif. Dengan begitu, pembuat kode tahu di mana kekuatan dan kelemahannya berada, dan bisa mengimbanginya.
Namun, Anda tampaknya berbicara di lingkungan tempat kerja, tempat kode dapat ditulis ulang. Dalam hal ini, Anda mencoba mengeluarkan bug dari sistem Anda. Jadi, dalam situasi itu, hanya bug negatif yang berharga.
Jika Anda merasa tidak nyaman tentang hal itu, lakukan rapat tinjauan kode mingguan, di mana semua orang dapat mendiskusikan kode baik dan kode buruk.
EDIT: Meskipun saya akan mengatakan bahwa, jika sesuatu cukup membuat Anda terkesan, tidak ada yang menghentikan Anda untuk mengekspresikan pujian secara langsung. Namun, pelacak tampaknya hanya untuk tinjauan kode produksi.
sumber