Bagaimana Anda meyakinkan manajer Anda untuk membiarkan Anda menguji unit?
Dengan "menggunakan", maksud saya diizinkan untuk berkembang, check-in ke sumber kontrol dan mempertahankan tes unit dari waktu ke waktu, dll.
Keberatan manajemen yang umum adalah:
- Pelanggan tidak membayar untuk unit test
- Proyek tidak memberikan waktu untuk pengujian unit
- Hutang teknis? Utang teknis apa?
Apakah Anda tahu keberatan lainnya? Apa jawabanmu?
Terima kasih sebelumnya!
project-management
management
unit-testing
tdd
louisgab
sumber
sumber
Jawaban:
Saya mengalami masalah ini baru-baru ini ketika seorang pelanggan bergabung dengan metodologi kami, tetapi manajemen yang lebih tinggi mengetahui bahwa pengembang menghabiskan waktu pengujian daripada mengembangkan dan khawatir tentang ini - setelah semua, mereka memiliki orang-orang QA untuk melakukan pengujian! Saya membuat blog tentang bagaimana saya menghadapinya di sini:
http://practicalagility.com/show-them-the-numbers-its-results-that-matter/
Untuk meringkas, saya membandingkan perkiraan jam kami dengan jam aktual untuk proyek dan kemudian membandingkan tingkat cacat kami terhadap tingkat cacat tim lain. Dalam kasus kami angka-angka ini dibandingkan dengan baik dan tidak ada lagi kekhawatiran.
Kesimpulan saya berdasarkan pengalaman ini adalah:
Pada proyek lain, kami telah bekerja bersama pengembang pelanggan yang tidak membuat tes unit atau melakukan TDD dan kami harus mempertahankan tes yang mereka hancurkan. Namun, menjadi sangat mudah untuk menjual pendekatan TDD kepada para pengembang pelanggan tersebut ketika Anda dapat memberi tahu mereka apa yang mereka rusak dalam kode sebelum mereka tahu!
Jadi dalam kasus Anda, saya akan melakukannya secara sembunyi-sembunyi jika perlu (mungkin ada area kecil kode yang dapat Anda mulai untuk menguji perubahan itu sering atau yang Anda bertanggung jawab atas), tetapi tetap melacak nomor Anda - apa upaya untuk membuat tes Anda? Berapa tingkat cacatnya? Bagaimana hal ini dibandingkan dengan anggota proyek / tim lainnya?
Menurut pendapat saya, tidak ada yang perlu meminta izin atau meminta maaf karena ingin melakukan pekerjaan mereka dengan benar dan setiap pengembang profesional harus mencoba menguji kode mereka dengan tes otomatis di mana pun itu mungkin dan praktis. Mudah-mudahan kedua hal ini dalam kasus Anda. Semoga berhasil!
sumber
Tunjukkan Pengembalian Investasi (ROI)
Menulis tes otomatis memerlukan waktu. Sekali. Menjalankan tes otomatis membutuhkan waktu nol, karena Anda dapat melakukan sesuatu yang lain saat sedang berjalan.
Contoh: Fitur pengujian X secara manual membutuhkan waktu 30 menit. Menulis tes otomatis untuk itu akan memakan waktu 1 jam. Bahkan jika kita tidak memiliki bug, kita harus menguji fitur X sepuluh kali selama proyek karena lapisan dependen dan komponennya dimodifikasi. Jadi mengotomatiskan pengujian fitur X akan menghemat kita 4 jam selama umur proyek.
Pada kenyataannya, saat Anda memiliki bug, tes otomatis benar-benar terbayar - Pertama, mereka menemukan bug lebih awal dan murah, yang menghemat waktu dan rasa malu. Kedua, jika Anda memiliki bug yang sulit dan menjalani banyak siklus pembuatan kode untuk mengetahuinya, waktu yang dihabiskan untuk pengujian manual bertambah sangat cepat.
Bisnis mengerti menghemat waktu dan uang. Begitulah cara menjualnya.
sumber
Jika Anda sudah mengkonfrontasi mereka, dan mereka tidak setuju dengan itu, tetapi Anda tidak merasa nyaman menulis kode tanpa mereka ... maka jangan tanya lagi. Cukup tulis dan jangan periksa.
Manajemen tidak akan menghitung baris kode, tetapi mereka akan melihat bahwa semua checkin Anda memiliki tingkat kelulusan yang lebih tinggi dari QA (atau pelanggan) dan mereka pada akhirnya akan bertanya mengapa ... maka Anda bisa seperti "BAM! TDD ! "
Anda tidak mengacaukan proyek, proses atau sumber ... jadi saya tidak melihat alasan negatif. Jujur, saya tidak melihat alasan mengapa ini berbeda waktu daripada menjalankan semua uji coba + input + hasil tes manual.
sumber
1) Pelanggan tidak membayar untuk unit test
Pelanggan (mengira mereka) membayar untuk solusi kerja. Tergantung pada kontrak memperbaiki cacat mungkin sebenarnya menguntungkan bagi perusahaan Anda. Jika ada kunci yang cukup. Jadi kembali untuk membayar solusi yang berfungsi. TDD harus membantu tujuan itu.
2) Proyek tidak memberikan waktu untuk TDD
TDD tidak membutuhkan waktu lebih lama. Itu harus mengurangi jumlah kode asing atau berlebihan dan memfokuskan basis kode pada apa yang membuat tes lulus. Semua tes yang lulus, tergantung pada kualitas pengujian dan kesesuaian, berarti kode tersebut selesai.
3) Hutang teknis? Utang teknis apa?
Saya mendapat kesan bahwa Anda mungkin berdebat untuk secara retrospektif menambahkan tes ke kode yang ada. Ini adalah penjualan mimpi buruk pada saat terbaik dan tidak membawa manfaat yang Anda harapkan. Namun, menambahkan tes saat Anda memperbaiki bug harus dapat diterima dan membantu dalam jangka panjang.
Saya tidak merekomendasikan untuk menulis tes seperti yang disarankan Snorfus. Secara teori, ini terdengar bagus, tetapi unit test dapat dan memang berubah seiring waktu. Ketika persyaratan berubah, fitur-fitur baru ditambahkan, tes unit perlu diperbarui. Jika Anda bekerja sebagai bagian dari tim, pengujian unit Anda akan menjadi usang saat orang lain menambahkan fitur / perbaikan.
Saya membahas poin-poin spesifik yang Anda sebutkan daripada meningkatkan yang baru karena ada peluang di sana untuk membuat kemajuan atau memahami mengapa itu diblokir.
sumber
Untuk setiap pelanggan yang menghadapi masalah produksi,
Tulis tes Unit dan kirim email ke manajer yang mengatakan bahwa Anda telah menambahkan tes Unit untuk menutupi skenario.
Dan katakan kepadanya bahwa masalah ini tidak akan terjadi lagi di produksi karena pengujian unit kami berjalan setiap malam dan kami akan mengetahui sebelum kode masuk ke produksi dengan menonton kegagalan pengujian unit ini.
Katakan padanya bahwa jika kita sudah memiliki tes Unit ini sebelum kode masuk ke produksi, masalah produksi ini tidak akan pernah terjadi.
Lakukan ini secara konsisten dan gigih dan segera dia akan diyakinkan. Manajer tidak suka pelanggan menghadapi masalah produksi dan dia akan membeli ide pengujian Unit. Semoga berhasil.
sumber