Setelah beberapa masalah kualitas serius pada tahun lalu, perusahaan saya baru-baru ini memperkenalkan ulasan kode. Proses peninjauan kode diperkenalkan dengan cepat, tanpa pedoman atau jenis daftar periksa apa pun.
Pengembang lain dan saya di mana dipilih untuk meninjau semua perubahan yang dilakukan pada sistem, sebelum mereka digabungkan ke dalam trunk.
Kami juga terpilih sebagai "Pimpinan Teknis". Ini berarti kami bertanggung jawab atas kualitas kode, tetapi kami tidak memiliki wewenang untuk mengimplementasikan perubahan dalam proses, menetapkan kembali pengembang, atau menahan proyek.
Secara teknis kita bisa menolak merger, mengembalikannya ke pengembangan. Pada kenyataannya, ini hampir selalu berakhir dengan bos kami menuntut agar dikirimkan tepat waktu.
Manajer kami adalah MBA yang sebagian besar peduli dengan membuat jadwal proyek yang akan datang. Ketika dia mencoba, dia hampir tidak tahu apa yang dilakukan perangkat lunak kami dari sudut pandang bisnis, dan sedang berjuang untuk memahami bahkan permintaan pelanggan yang paling dasar tanpa penjelasan dari pengembang.
Saat ini pengembangan dilakukan di cabang-cabang pengembangan di SVN, setelah pengembang berpikir dia siap, dia menugaskan kembali tiket dalam sistem tiket kami ke manajer kami. Manajer kemudian memberikannya kepada kami.
Ulasan kode telah menyebabkan beberapa ketegangan dalam tim kami. Terutama beberapa anggota yang lebih tua mempertanyakan perubahan (Yaitu "Kami selalu melakukannya seperti ini" atau "Mengapa metode ini memiliki nama yang masuk akal, saya tahu apa artinya?").
Setelah beberapa minggu pertama, kolega saya mulai membiarkan segala sesuatunya merosot, tidak menyebabkan masalah dengan rekan kerja (dia mengatakan kepada saya sendiri, bahwa setelah laporan bug diajukan oleh seorang pelanggan, bahwa dia tahu bug itu, tetapi takut bahwa pengembang akan marah padanya karena menunjukkannya).
Saya, di sisi lain, sekarang dikenal sebagai keledai karena menunjukkan masalah dengan kode yang dilakukan.
Saya tidak berpikir standar saya terlalu tinggi.
Daftar periksa saya saat ini adalah:
- Kode akan dikompilasi.
- Setidaknya ada satu cara kode akan bekerja.
- Kode ini akan berfungsi pada sebagian besar kasus normal.
- Kode ini akan bekerja dengan sebagian besar kasus tepi.
- Kode akan memunculkan pengecualian yang masuk akal jika data yang dimasukkan tidak valid.
Tetapi saya sepenuhnya menerima tanggung jawab dari cara saya memberikan umpan balik. Saya sudah memberikan poin yang bisa ditindaklanjuti menjelaskan mengapa sesuatu harus diubah, kadang-kadang bahkan hanya bertanya mengapa sesuatu diterapkan dengan cara tertentu. Ketika saya pikir itu buruk, saya menunjukkan bahwa saya akan mengembangkannya dengan cara lain.
Yang kurang dari saya adalah kemampuan untuk menemukan sesuatu yang menunjukkan "baik". Saya membaca bahwa orang harus mencoba untuk menyampaikan berita buruk dalam berita baik.
Tetapi saya mengalami kesulitan untuk menemukan sesuatu yang baik. "Hei, kali ini kamu benar-benar melakukan semua yang kamu lakukan" lebih merendahkan daripada menyenangkan atau membantu
Ulasan Kode Contoh
Hai Joe,
Saya memiliki beberapa pertanyaan tentang perubahan Anda di Library \ ACME \ ExtractOrderMail Class.
Saya tidak mengerti mengapa Anda menandai "TempFilesToDelete" sebagai statis? Saat ini panggilan kedua ke "GetMails" akan mengeluarkan pengecualian, karena Anda menambahkan File tetapi tidak pernah menghapusnya, setelah Anda menghapusnya. Saya tahu bahwa fungsi ini hanya dipanggil sekali per jalankan, tetapi di masa depan ini mungkin berubah. Bisakah Anda membuatnya menjadi variabel instan, lalu kita bisa memiliki beberapa objek secara paralel.
... (Beberapa poin lain yang tidak berfungsi)
Poin kecil:
- Mengapa "GetErrorMailBody" menggunakan Pengecualian sebagai Parameter? Apakah saya melewatkan sesuatu? Anda tidak melempar pengecualian, Anda hanya meneruskannya dan memanggil "ToString". Mengapa demikian?
- SaveAndSend Bukan nama yang bagus untuk Metode ini. Metode ini mengirim pesan kesalahan jika pemrosesan email salah. Bisakah Anda mengganti nama menjadi "SendErrorMail" atau yang serupa?
- Tolong jangan hanya komentar kode lama, hapus saja. Kami masih memilikinya di subversi.