Ketika melihat contoh definisi yang dilakukan di berbagai sumber, mereka biasanya memasukkan poin-poin seperti
- kode selesai
- tes unit dijalankan
- kode yang ditinjau sejawat atau dipasangkan
- kode masuk
- dokumentasi diperbarui
- ...
Di tim kami, kami memiliki daftar yang serupa, tetapi tidak ada yang pernah melihatnya karena poin-poin itu tampak sangat jelas sehingga tidak akan terpikirkan oleh siapa pun untuk melewati salah satu dari langkah-langkah ini. Jadi kami bertanya-tanya apakah itu terutama alat untuk transisi tim ke proses lincah dan apakah kita tidak boleh hanya membuangnya.
Di sisi lain, banyak literatur menyatakan bahwa semua tim berkinerja tinggi memiliki definisi yang kuat untuk dikerjakan. Petunjuk semacam ini yang mungkin kita lewatkan kesempatan untuk meningkatkan di sini.
Jadi apa saja contoh definisi kuat yang dilakukan tim yang matang? Poin apa yang termasuk dalam mereka?
sumber
Jawaban:
Pedoman ada untuk semua orang. Dalam tim yang matang, seperti yang Anda sebutkan, semua orang melakukannya, jadi itu tidak berarti tidak ada tempat untuk itu. Misalkan, anggota baru bergabung, yang belum pernah terkena metodologi ini sebelumnya. Memiliki struktur di tempatnya, akan menjadi vital baginya. Dia tidak perlu mengganggu anggota lain, atau tidak akan "melupakan" kiriman.
Menurut pendapat saya, Daftar semuanya, termasuk yang sudah jelas. Mungkin, memiliki "daftar cheat pendek" untuk yang tidak jelas jika itu membantu mereka yang ingin daftar pendek, tetapi pertimbangkan kasus anggota baru melompat.
Ini adalah proses berulang, setiap kali Anda melihat sesuatu yang dapat Anda tingkatkan, tambahkan dalam definisi selesai. Lembur, Anda akan mengembangkan daftar yang relevan dengan perusahaan Anda. Anann telah menyebutkan beberapa yang bermanfaat.
sumber
Hanya karena poinnya jelas-jelas tidak berarti bahwa orang akan selalu melaksanakannya. Mari kita ambil dua contoh lain - pilot dan ahli bedah. Kokpit pesawat komersial atau ruang operasi memiliki banyak orang, dengan banyak pendidikan dan pengalaman di antara mereka. Namun, hal-hal masih salah - langkah-langkah dilakukan rusak, ada yang dilupakan, ada yang salah dilakukan. Saya telah melihat sejumlah sumber situs bahwa sejumlah besar (hingga 70%) insiden pesawat terbang yang disebabkan oleh kesalahan pilot dapat dicegah dengan daftar periksa . Di dunia medis, hingga 29% dari tuntutan hukum malpraktek di Belanda dapat dicegah dengan menggunakan daftar periksa, menurut para peneliti. Meskipun orang-orang ini telah dilatih, dan jika dipikir-pikir mungkin akan dengan mudah mengidentifikasi apa yang mereka lakukan salah, sesuatu terjadi yang menyebabkan mereka terpuruk. Saya belum membacanya, tetapi Manifesto Daftar Periksa seharusnya relevan. Ini ditulis dari profesi medis, tetapi keuntungan membuat daftar periksa atau diagram alur terlihat sebagai pengingat apa yang harus dilakukan berlaku untuk profesi apa pun.
Jadi, langkah pertama adalah membuat daftar hal-hal yang merupakan bagian dari definisi Anda tentang selesai dan membuatnya terlihat. Tidak masalah seberapa jelas tugas itu, jika perlu lengkap agar cerita itu dianggap selesai, itu harus ada dalam daftar itu. Daftar harus berada di suatu tempat yang terlihat oleh tim. Perhatikan bahwa itu tidak harus sesuatu yang mewah atau formal - mungkin hanya serangkaian pertanyaan yang harus ditanyakan semua orang sendiri sebelum sebuah cerita dapat disebut selesai.
Langkah kedua adalah memutuskan apa yang terjadi pada daftar periksa itu untuk definisi Anda tentang selesai. Segala sesuatu yang perlu Anda lakukan untuk menyelesaikan tugas harus spesifik, tidak ambigu, dapat diterima, dan realistis. Itu juga harus dalam konteks waktu untuk pertimbangan dilakukan. Misalnya, Anda tidak perlu memasukkan "ubah kode" atau "modifikasi desain" dalam definisi selesai - jika Anda tidak perlu mengubah produk kerja, tidak perlu cerita.
Saya menduga bahwa daftar periksa yang baik untuk dijadikan dasar untuk definisi yang dilakukan adalah:
Tentu saja, Anda harus membuat definisi yang baik tentang penyelesaian yang mencakup kegiatan lain yang dirasakan nilai tambah oleh tim Anda dan pelanggan Anda. Jika ada di daftar periksa, itu harus menjadi sesuatu yang perlu dilakukan untuk menambah nilai kepada seseorang (tim, pelanggan, pengguna). Dengan menyebutkan secara jelas apa yang Anda lakukan, Anda juga dapat mengidentifikasi dan menghilangkan kegiatan asing untuk meningkatkan proses.
sumber
Ini sebenarnya terdengar seperti Anda adalah pria yang beruntung:
Tim Anda sudah "dewasa" ;-). Tapi selalu ada ruang untuk perbaikan!
Untuk pertanyaan Anda:
Di atas daftar Anda, Anda dapat menambahkan:
Berbagai metrik kualitas kode: - Ketidakstabilan, Abstraksi - LOC vs DLOC (didokumentasikan) - dll ...
Aturan praktisnya adalah bahwa metrik seharusnya tidak menjadi lebih buruk dengan komit Anda. Di atas Anda dapat merumuskan "selesai: dengan Keunggulan" jika seseorang benar-benar membuat metrik menjadi lebih baik. Meskipun ini (metrik menjadi lebih baik) biasanya bukan bagian dari fase pengembangan (fitur baru) tetapi fase refactoring.
Di salah satu perusahaan saya di masa lalu, kami memiliki definisi "selesai" yang mengatakan bahwa metrik Anda harus tetap di bawah ambang batas tertentu, jika Anda melangkah di atas, Anda belum selesai. (Kompleksitas Siklomatik tidak boleh lebih dari 15, kecuali Anda memiliki alasan yang sangat sangat sangat bagus, seperti calcs yang rumit.)
Hal yang sama berlaku untuk jenis pelanggaran Checkstyle, terutama jika Anda memiliki aturan khusus untuk memeriksa gaya kode tim Anda. Jika Anda melanggar standar pengkodean, Anda belum selesai.
Maka Anda tidak bisa hanya menjalankan UnitTest, Anda bisa mengukur cakupan kode. Jika tidak setidaknya 50% ditanggung, Anda belum selesai. Meskipun ini adalah semacam definisi yang seret dilakukan, karena Anda harus memiliki tes untuk inti / utama / metode kritis, dan belum tentu untuk 100% basis kode Anda.
Oh ya ... dan jika Anda memiliki (Anda harus) server CI dengan integrasi cabang otomatis ... Anda hanya selesai jika komit Anda di Cabang DEV bergabung dengan Cabang-LIVE saat ini dan tidak menyebabkan kesalahan juga. (Tes Unit, dll.)
hmmm ... itu yang bisa saya ingat benar tahu dari perusahaan / proyek sebelumnya, yang belum disebutkan dalam daftar Anda.
Saya harap itu memberi Anda beberapa ide ;-)
Bersulang,
anann
sumber
Dalam lingkungan TDD / BDD, definisi "selesai" (secara teknis "Kode Selesai", karena definisi Matt S tentang "benar-benar 'selesai'" adalah benar) cukup sederhana:
Pada titik ini, Anda dapat melanjutkan. Tiga poin ini sangat penting, tetapi mereka semua yang harus diperhatikan oleh pembuat kode tim rata-rata. Tertulis atau tidak tertulis, mereka tidak dapat diganggu gugat di lingkungan TDD. Dokumentasi, ketika coders adalah orang yang melakukan dokumentasi, adalah poin tambahan. Di tim Agile terakhir saya, dokumentasi ditangani oleh BA / QA; mereka tahu apa yang diinginkan klien, telah menjalankan UAT, dan dengan demikian paling mampu mendokumentasikan fitur baru dengan cara yang bermakna bagi klien, sehingga dokumentasi bukan bagian dari definisi pembuat kode tentang "selesai", meskipun itu adalah bagian dari definisi tim.
sumber