25 poin oleh GN⁺ 2025-02-19 | 1 komentar | Bagikan ke WhatsApp

> “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
  • 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

 
GN⁺ 2025-02-19
Komentar Hacker News
  • Estimasi software itu seperti lelucon. Karena tidak ada hukuman untuk meremehkan

    • Bisa dibandingkan dengan estimasi produksi film. Ada perusahaan yang menjual jaminan penyelesaian untuk produksi film
    • Jaminan penyelesaian menelan biaya sekitar 2% dari biaya produksi. Biasanya digunakan pada film indie dengan anggaran antara 3 juta hingga 70 juta dolar
    • Perusahaan penjamin menanggung sebagian biaya pembengkakan, tetapi jika terlalu besar mereka memecat sutradara dan mengambil alih produksi. Cara seperti ini memberi dampak nyata
    • Perusahaan jaminan penyelesaian membuat estimasi berdasarkan data masa lalu. Mereka memiliki biaya aktual dari banyak film
    • Mereka mencatat biaya tiap adegan secara rinci. Misalnya, untuk adegan kejar-kejaran mobil, mereka merujuk biaya 100 adegan kejar-kejaran mobil sebelumnya dalam basis data
    • Mereka juga punya informasi tentang sutradara, produser, dan aktor, lalu membandingkan biaya pengambilan adegan oleh mereka dengan rekan-rekan sejawatnya
    • Ini bukan rocket science, melainkan underwriting asuransi
  • Artikel yang bagus, tetapi perbedaan utama dengan pengalaman software tidak dibahas

    • Klien mungkin tidak tahu apa yang sebenarnya mereka inginkan. Seberapa pun banyak Anda bertanya di awal, informasi ini tidak bisa didapatkan
    • Anda harus benar-benar menolak penagihan per proyek dan menagih berdasarkan waktu
  • Proyek DIY memang selalu seperti ini

    • Banyak pembicaraan tentang kepemilikan, tetapi alat dan suku cadang memakan banyak ruang
    • Penulis sudah punya banyak alat, tetapi tetap masih kekurangan beberapa
    • Pada akhirnya frekuensi pergi ke toko perkakas berkurang, tetapi bengkel jadi penuh barang
  • Belajar cara menjaga tetap lurus selama 25 menit setelah mengebor dan terkejut dengan earphone peredam bising

    • Headphone peredam bising bukan alat pelindung pendengaran. Alat pelindung pendengaran menciptakan penghalang fisik antara sumber bising dan telinga
    • Headphone peredam bising mendengarkan suara sekitar dan menghasilkan gelombang lawan. Karena tidak sempurna, itu tidak cukup melindungi telinga
  • Ceritanya bagus. Tetapi pengalaman saya hampir kebalikannya

    • Bukan 90% pekerjaan mudah, melainkan 90% kebingungan
    • Sering kali produk yang sama dikerjakan berulang kali oleh beberapa perusahaan
  • Ini mengingatkan pada ungkapan, "kenyataan memiliki detail yang menakjubkan"

    • Hal-hal yang tidak Anda ketahui tetap seperti itu sampai Anda cukup dekat dengan sesuatu yang baru
  • Saat penulis mengebor lubang untuk kabel listrik, ia menyesuaikan sisipan plastik dengan rapi

    • Tukang bangunan akan memotong kasar lubang untuk selang air lalu pergi merokok
    • Ini sesuai dengan pengalaman saya sebelumnya
  • Kebanyakan rekan kerja saya terkejut ketika saya bilang bahwa riset dan inventaris sebelum proyek dimulai memakan banyak waktu

    • Kebanyakan rekan kerja saya menyelesaikan proyek dengan cepat, lalu banyak waktu habis untuk tindak lanjut setelahnya
    • Saya menginvestasikan banyak waktu di awal proyek sehingga tidak perlu tindak lanjut setelahnya
  • Hal menarik untuk dipertimbangkan saat berikutnya Anda terkejut dengan tarif teknisi

    • Alasan tukang ledeng bisa menagih 300 dolar hanya dalam beberapa menit untuk menyambungkan mesin cuci adalah karena dia tahu cara mengebor lubang ke saluran pembuangan
  • Apa yang harus dilakukan ketika Anda bahkan tidak tahu pertanyaan apa yang harus diajukan sebelum memulai proyek software?

    • Saya tidak keberatan melihat pekerjaan eksplorasi sebagai latihan pengumpulan kebutuhan
    • Jika Anda pergi ke toko perkakas sekali dengan daftar belanja besar dan sekumpulan pertanyaan terbuka, Anda bisa bekerja dengan lebih efektif dan sederhana