Code Review
Dalam pengembangan perangkat lunak, code review adalah salah satu proses yang memegang peranan penting dalam kesuksesan pengembangan tersebut. Code review merupakan proses me-review, code teman seperjuangan anda, sebelum code mereka diterima dan masuk ke production stage.
Why is it so important?
Keuntungan yang didapat dari code review bagi team agile adalah
Eleminating Bugs
Industry Average: “about 15–50 errors per 1000 lines of delivered
code.” He further says this is usually representative of code that has some
level of structured programming behind it, but probably includes a mix of
coding techniques.- Steve McConnell Code Complete: A Practical Handbook of Software Construction, Second Edition. Taken from mayerdan
Dengan adanya code review, kita dapat mengurangi persentase bug yang ada di kode kita.
Keep your Project in the Right Track
Dengan code review, kamu dapat memantau pekerjaan developer lain agar project masih bersih dan tidak merusak design yang sudah dibuat sebelumnya. Hal ini sering terjadi, terutama developer baru, sebab developer baru terkadang langsung melakukan “coding” tanpa mengetahui arsitektur dari projek itu sendiri.
Sharing Knowledge
Code review juga menjadi sarana untuk share knowledge untuk task yang dikerjakan oleh developer. Ini berguna jika ada developer lain yang melanjutkan task tersebut.
Virtual Mentor for Greenie
Code review juga dapat menjadi mentor virtual bagi developer baru untuk lebih memahami code yang sudah dibuat sebelumnya, sebab dengan code review, developer baru dapat memahami lebih jelas dengan membaca percakapan yang terjadi saat code review itu terjadi.
How we do it?
Namun, beberapa developer tidak melakukan code review dengan benar (penulis juga sering hehe :D).
Beberapa komponen yang selalu penulis perhatikan saat code review adalah
- Apakah kode sudah mencakup semua scope dari tugas yang diberikan?
- Apakah kode yang dibuat sudah clean dan sesuai dengan arsitektur yang ditetapkan?
- Apakah kode yang dibuat mengikuti style yang sudah ada?
- Apakah ada redundansi, sehingga dapat di refactor?
- Apakah dapat dioptimasi?
Code review pun juga tidak baik hingga kode nya terlalu perfect, sebab di agile development juga dituntut untuk cepat. Yang terpenting dari code review adalah membuat kode bugs free, clean, dan readable.
Type of Reviewer
Selama ini, penulis sudah menemui beberapa tipe reviewer.
“LGTM, SHIP IT”
Tipe ini langsung melontarkan kata-kata tersebut (Look good to me, ship it) tanpa memberikan komentar apapun. Jika kamu ketemu orang ini, you are doomed. Tipe ini cenderung tidak mengerti dan pekerjaan yang dikerjakan kurang bagus. Langkah yang dapat dilakukan untuk menangani ini adalah beri dia task relatif kecil dan mudah, untuk dia selesaikan. Dari task tersebut, ia akan belajar code yang ia kerjakan, dan cara mereview code.
“Mentioned some points, but you can refactor it after”
Tipe ini cenderung memberikan masukan yang membangun, namun terkadang memberi “keringanan” kepada developer. For some cases, mungkin baik, tapi membiarkan code yang tidak rapi ke production dapat membuat kacau code keseluruhan sehingga jika tiba waktu untuk refactor, semua developer akan angkat tangan untuk melakukan hal itu.
“I think you missed some edge cases”
Atau kalimat-kalimat lain yang membangun dan membuka mata reviewee demi code yang lebih baik. Tipe ini cenderung memberi masukan yang membangun dan membantu, tanpa melupakan goal dari task tersebut maupun goal keseluruhan sprint. Jika ketemu tipe ini, jaga dia baik-baik.
“No no no, you should blablabla, Please blablabla, No I won’t accept if it’s not perfect”
Tipe ini cenderung ingin agar code developer tersebut se-perfect mungkin (padahal yang sempurna hanya milik tuhan). Hal ini tidak baik karena developer pun dikejar oleh waktu. Jika ketemu tipe ini, bisa diingatkan kembali goal yang ingin dicapai, kalau tidak, setahun kemudian mungkin baru di accept code reviewnya.
Conclusion
Code review merupakan proses yang sangat penting untuk keberhasilan suatu pengembangan perangkat lunak. Lakukan code review agar code terjaga kebersihannya, free bug dan maintainable. Namun jangan terlalu asik code review sampai melupakan goal dari projek tersebut. Dan satu lagi, be a good reviewer. Yah walaupun penulis pun juga pernah jadi ke-4 tipe tersebut.