Code Review: Apa dan kenapa ?

Code review merupakan bagian yang tidak terpisahkan dari sebuah proses pengembangan perangkat lunak dan merupakan praktek yang dianjurkan karena berbagai perusahaan pengembang perangkat lunak. Pada artikel berikut kita akan membahas berbagai hal mengenai code review, silahkan disimak…

Ilustrasi code review.  Sumber gambar: www.yegor256.com

🤔 Apa itu code review?

Code review merupakan bagian dari proses quality assurance, yakni proses memeriksa kode baris demi baris yang telah dibuat dan diimplementasikan agar dipastikan kode tersebut memenuhi kriteria yang telah ditetapkan bersama. Meskipun saat ini ada beberapa tools yang bisa membantu kita dalam melakukan code review, tapi setidaknya harus ada satu manusia yang tetap melakukan code review secara manual.

Orang yang meminta code review biasa disebut sebagai Author, sedangkan orang yang melakukan pengecekan kode biasa dikenal dengan Reviewer. Author bisa menambahkan lebih dari satu reviewer untuk melakukan pengecekan pada setiap satu kali permintaan review atau dalam beberapa projek open-source, setiap orang berhak melakukan pengecekan terhadap kode bahkan tanpa diundang sebagai reviewer karena sifatnya yang memang terbuka.

🤔┬áKenapa mesti code review?

Smartbear pada tahun 2017 telah mengadakan survey untuk mencari tau berbagai hal mengenai code review ini dengan responden lebih dari 550 orang dari berbagai sektor di dunia pengembangan perangkat lunak, hasil survey telah dijabarkan pada halaman The State of Code Review 2017.

Dari survey tersebut, terutama pada bagian benefit (keuntungan) dari code review yang paling dirasakan oleh mereka, diketahui paling banyak responden memilih bahwa code review dirasakan bisa meningkatkan kualitas dari sebuah perangkat lunak.

Lihat hasil selengkapnya pada gambar berikut:

Beberapa keuntungan code review, sumber statistik smartbear.com

Meningkatkan kualitas sebuah produk perangkat lunak mungkin tidak secara langsung akan ter-refreksikan sebagai hasil dari code review, namun dari proses review ini diyakini setiap kode yang dibuat akan melalui proses filtrasi paling tidak satu level untuk dipastikan style guide, alur logika, kemungkinan bug, dan hal lainnya telah sesuai dengan ekspektasi yang disematkan. Karenanya secara tidak langsung kualitas dari produk perangkat lunak akan ikut terjaga ketika code review berjalan dengan semestinya.

Tentu saja meningkatkan kualitas dari sebuah perangkat lunak hanyalah satu dari banyak hal lain yang dianggap sebagai keuntungan mengimplementasikan code review pada sebuah proses pengembangan perangkat lunak, hal lain saya akan sebutkan beberapa diantaranya seperti berikut:

+ Penyebaran pengetahuan dan proses mentoring 

Proses code review menjadi waktu yang sangat baik untuk menyebarkan pengetahuan terutama dari sisi reviewer kepada author. Karena bisa secara langsung memberitahu berbagai solusi dan pendapat yang baik berdasarkan kasus yang ditemui. Saya pribadi percaya bahwa orang yang diberitahu lewat sebuah kasus akan lebih mengena dibandingkan diberitahu lewat sebuah teori. 

Selain proses penyebaran pengetahuan, proses mentoring juga sangat bisa dilakukan pada saat code review. Reviewer akan membiarkan author menulis kode berdasarkan persepsi yang dia tangkap terlebih dahulu, untuk belajar secara mandiri memahami sebuah alur masalah, setelahnya akan diberikan berbagai petunjuk untuk hal-hal yang belum sesuai pada saat code review, bila diperlukan bisa juga ditambahkan dengan pair programming untuk melakukan mentoring lebih intensif.

+ Mendapati bug lebih dini dan mencari solusi yang lebih baik

Dengan code review, kode yang telah ditulis akan dicek ulang oleh reviewer. Semakin banyak mata yang mengecek sebuah kode, semakin tinggi pula kemungkinan sebuah bug bisa terdeteksi lebih dini dan tidak terbawa ke lingkungan production.

Selain mendeteksi bug, dengan code review kita bisa menerima pendapat dari para reviewer yang bisa jadi memiliki pandangan berbeda yang tidak pernah terpikirkan oleh kita. Mendengar pendapat orang lain sangat penting bagi seorang pengembang perangkat lunak, karena semakin banyak solusi maka kita bisa menentukan solusi mana yang lebih baik dan sesuai bagi masalah kita. Bisa jadi kita melakukan hal yang sama, tapi orang lain bisa melakukan dengan lebih baik dan lebih tertata, makanya pendapat orang lain membantu dalam perkembangan pribadi kita sebagai pengembang perangkat lunak.


“Given enough eyeballs, all bugs are shallow.”
– Linus Law –

+ Meningkatkan ownership kode dari sebuah tim

Setiap tim tentu saja diharapkan memiliki ownership (rasa kepemilikan) terhadap kode yang ditulis bersama dengan keseluruhan anggota tim. Bila ownership kita tinggi terhadap suatu kode, maka kita ingin agar setiap perubahan yang terjadi selalu dalam kontrol dan atas sepengetahuan kita. Bila tim itu mempunyai ownership yang baik, maka code review akan secara otomatis menjadi hal yang wajib dilakukan. Setiap anggota tim mesti meluangkan waktu untuk mengecek perubahan yang terjadi didalam kode bersama.

+ Menerapkan standard kode yang sama

Setiap perusahaan bisa jadi memiliki standard dan style guide tersendiri yang harusnya diikuti oleh semua pengembang perangkat lunak yang akan menulis kode. Sayangnya tidak semua pengembang biasanya memiliki pengetahuan yang sama mengenai standard ataupun style guide yang ada, apalagi bila banyak newcomer yang belum onboard dengan baik. Disini peran code review diperlukan karena bisa menjadi keeper bagi standard dan style guide agar selalu diimplementasikan oleh para pengembang yang menulis kode.

😬 Yang kamu harus tau mengenai code review

Ilustrasi proses code review. Sumber gambar tech.olx.com

Beberapa hal yang kamu harus tahu mengenai code review, antara lain:

  • Reviewer tidak harus semuanya dari tim terkait, menambahkan reviewer dari eksternal tim akan memberikan pandangan berbeda.
  • Internal tim reviewer harus me-review alur logika dan kemungkinan bug, sedangkan eksternal tim harus me-review mengenai standard kode, style guide, smell of code dan lainnya.
  • Author sebaiknya meminimalisir kode yang harus di review, semakin besar lines of code (LOC) yang harus dicek akan semakin menurunkan efektifitas dari code review. Studi dari Smartbear menjelaskan kalau pengembang akan efektif saat melakukan review antara 200-400 LOC dalam sekali waktu. 
  • Code review seharusnya dilakukan dalam waktu yang relatif singkat, tidak lebih dari 10 menit tiap kali melakukan review.
  • Berikan respons tiap selesai melakukan review, approve bila semuanya telah sesuai, berikan komentar pada kode yang bermasalah atau meragukan, berikan tanda agar kode tidak di-merge sebelum semua komentar diselesaikan.
  • Sebagai Author, jangan mudah baper bilamana kode kita dikometari atau bahkan di-reject/decline oleh reviewer. Percayalah itu demi masa depan gemilang 😅.

Jangan ada baper diantara kita…

  • Code review harus menjadi culture karena tidak semua hal yang kita anggap telah baik adalah baik pula di mata orang lain. 

Demikian sedikit banyak tulisan kali ini, semoga bermanfaat…

Referensi tulisan lain mengenai code review:

 

Irfan Maulana

Seorang pengembang web antar muka dengan pengalaman lebih dari 5 tahun di beberapa perusahaan. Pengetahuan saya meliputi HTML, CSS, dan JavaScript. Saya juga memiliki beberapa projek open source yang bisa kalian lihat di Github saya @mazipan. Selalu senang hati bisa berbagi pengetahuan dan pengalaman dengan teman-teman.