> “Menurut Anda, berapa lama waktu yang dibutuhkan untuk membuat itu?”
- Mesin cuci saya menyadarkan saya tentang pertanyaan yang ditakuti dan dibenci para pengembang perangkat lunak ini
- Kesulitan estimasi upaya perangkat lunak yang ditunjukkan oleh mesin cuci
- Saat pindah ke rumah baru dan memasang mesin cuci, ternyata butuh jauh lebih banyak waktu daripada yang diperkirakan
- Biasanya pekerjaan ini selesai dalam 10 menit, tetapi kali ini memakan waktu 4 jam
- Hambatan tak terduga (blocker) muncul sebelumnya tidak terbayangkan, sehingga pemasangan tertunda
- Penulis menyadari bahwa proses ini mirip dengan alasan mengapa estimasi upaya dalam pengembangan perangkat lunak begitu sulit
- Hambatan dan solusinya
- Hambatan 1: Tidak ada lubang untuk sambungan listrik, sehingga mesin cuci tidak bisa dihubungkan ke daya
- Solusi 1: Membeli hole saw 60mm di toko perkakas dan melubanginya
- Hambatan 2: Bor konsumen tidak bisa menggunakan hole saw tersebut
- Solusi 2: Meminjam bor yang lebih kuat lalu menggunakannya
- Hambatan 3: Selang pembuangan dan suplai air ternyata lebih pendek dari perkiraan di rumah baru
- Solusi 3: Awalnya hendak membeli selang ekstensi baru, tetapi kemudian sadar bahwa selang lama tidak bisa diperpanjang, lalu membeli selang baru lagi
- Hambatan 4: Tutup logam yang terpasang kuat di keran tidak bisa dilepas
- Solusi 4: Membeli kunci pas yang lebih besar untuk melepas tutup tersebut
- Hambatan 5: Spigot saluran pembuangan tertutup dinding PVC
- Solusi 5: Melubangi dinding PVC dengan bor lalu menyambungkan selang pembuangan
- Setelah total 5 kali ke toko perkakas dan 4 jam bekerja, mesin cuci akhirnya berhasil dipasang dengan normal
- Hambatan 1: Tidak ada lubang untuk sambungan listrik, sehingga mesin cuci tidak bisa dihubungkan ke daya
- Mengapa estimasi upaya pengembangan perangkat lunak itu sulit
- Bahkan untuk pekerjaan yang terasa familiar, jika lingkungannya berbeda maka kemungkinan muncul variabel tak terduga sangat tinggi
- Alasan estimasi berbasis pengalaman masa lalu sering meleset adalah karena adanya “hal-hal tak diketahui yang bahkan tidak kita sadari” (Unknown Unknowns)
- Beberapa contoh:
- Library yang hendak digunakan ternyata sudah tidak dipelihara lagi sehingga harus diperbaiki sendiri
- Alat pengembangan diperbarui sehingga cara lama tidak lagi berlaku
- Versi OS berubah sehingga dependensi yang ada tidak lagi berjalan normal
- Komponen baru ditambahkan ke infrastruktur, tetapi perilakunya berbeda dari yang diperkirakan
- Kesimpulan
- Pengalaman di rumah baru menunjukkan betapa sulitnya estimasi upaya dalam pengembangan perangkat lunak
- Sebelum memulai pengembangan, kebutuhan harus diselidiki sebaik mungkin, tetapi munculnya blocker tak terduga tetap tidak bisa dihindari
- Walaupun proyek perangkat lunak terlihat seperti pekerjaan yang familiar, di lingkungan baru bisa muncul tantangan yang sama sekali berbeda
- Dengan mempertimbangkan variabel-variabel ini, jadwal dan sumber daya perlu disesuaikan secara fleksibel
1 komentar
Komentar Hacker News
Estimasi software itu seperti lelucon. Karena tidak ada hukuman untuk meremehkan
Artikel yang bagus, tetapi perbedaan utama dengan pengalaman software tidak dibahas
Proyek DIY memang selalu seperti ini
Belajar cara menjaga tetap lurus selama 25 menit setelah mengebor dan terkejut dengan earphone peredam bising
Ceritanya bagus. Tetapi pengalaman saya hampir kebalikannya
Ini mengingatkan pada ungkapan, "kenyataan memiliki detail yang menakjubkan"
Saat penulis mengebor lubang untuk kabel listrik, ia menyesuaikan sisipan plastik dengan rapi
Kebanyakan rekan kerja saya terkejut ketika saya bilang bahwa riset dan inventaris sebelum proyek dimulai memakan banyak waktu
Hal menarik untuk dipertimbangkan saat berikutnya Anda terkejut dengan tarif teknisi
Apa yang harus dilakukan ketika Anda bahkan tidak tahu pertanyaan apa yang harus diajukan sebelum memulai proyek software?