90 persen pertama dari kode menyumbang 90 persen pertama dari waktu pengembangan. Sisanya 10 persen dari kode menyumbang 90 persen lainnya dari waktu pengembangan.
- Tom Cargill, Bell Labs
Apa yang sebenarnya dimaksud dalam praktik? Programer itu melakukan banyak pekerjaan dan mereka memberi 180% dari diri mereka sendiri atau?
programming-practices
theory
Josip Ivic
sumber
sumber
Jawaban:
Bayangkan seperti ini: Ketika Anda mulai bekerja pada perangkat lunak Anda dapat menulis kode dalam jumlah besar dalam waktu yang relatif singkat. Kode baru ini dapat menambahkan sejumlah besar fungsi baru. Masalahnya adalah, seringkali, fungsi itu jauh dari "selesai", mungkin ada bug, perubahan kecil (kecil dalam bisnis kecil) dan sebagainya. Jadi perangkat lunak mungkin merasa hampir selesai (90% selesai), karena mendukung sebagian besar kasus penggunaan. Tetapi perangkat lunak masih perlu bekerja. Poin dari aturan ini adalah bahwa meskipun perangkat lunak merasa hampir selesai, jumlah pekerjaan untuk membawa perangkat lunak itu ke dalam kondisi kerja yang benar adalah sebesar mencapai kondisi "hampir selesai". Itu karena memperbaiki bug sering memakan waktu tetapi tidak menghasilkan banyak kode.
Masalahnya adalah bahwa sebagian besar pengembang memperkirakan mendapatkan perangkat lunak dalam keadaan "hampir selesai", karena itu relatif sederhana dibandingkan dengan benar-benar memperkirakan upaya total perangkat lunak akan mengambil.
sumber
Ini adalah referensi ke skenario umum, yang sayangnya masih terjadi hari ini:
"90%" adalah angka yang sewenang-wenang, tetapi itu membuat titik dengan baik: perkiraan adalah dugaan dan kemungkinan akan salah (sering sangat salah) dan sifat manusia memastikan kita hampir selalu di bawah perkiraan, jadi semuanya dibanjiri.
sumber
other 90%
Saya telah mendengar versi lain dari ini (juga disebut "aturan 90-90") yang berbunyi seperti ini:
Kedua versi mengacu pada kesulitan dalam memperkirakan upaya untuk mengembangkan produk perangkat lunak dan perangkap umum yang cenderung membuat orang jatuh ke dalam:
sumber
Aturan ini melengkapi aturan 80-20. Sekarang, ada banyak interpretasi berbeda dari aturan 80-20, tetapi dua yang paling saya sukai adalah:
Dalam praktiknya, ini berarti yang berikut: pengembangan akan mulai dan berlanjut hingga titik tertentu kapan penundaan pertama akan diperhatikan. Penundaan dapat dari berbagai sifat:
Intinya adalah bahwa lebih mudah mendekati sasaran daripada benar-benar mencapainya.
sumber
Saya menemukan penjelasan Wikipedia cukup mencerahkan:
sumber
Tidak, programmer selalu melakukan jumlah pekerjaan yang sama per unit waktu. Kutipan tentang biaya yang di bawah perkiraan dan overruns. 180% adalah jumlah waktu dan uang yang diakibatkan oleh biaya proyek.
Ini kira-kira berarti "Ini akan membawa Anda dua kali lebih lama dari yang Anda pikirkan" dan "Anda akan berpikir Anda baik-baik saja sampai sudah terlambat (batas waktu sudah dekat)".
sumber
Apa artinya ini dalam praktik adalah bahwa orang membohongi diri mereka sendiri.
Jika seorang programmer mengatakan "kita sudah selesai 90%" itu berarti 90% dari upaya untuk membangun fitur telah dikeluarkan.
Jika seorang manajer proyek mengatakan "kita sudah selesai 90%, saya hanya perlu seseorang untuk menyelesaikannya" itu berarti mereka 90% melalui anggaran (dan mungkin 50% selesai). Ini adalah klien tanpa uang, harapan tinggi, dan sikap buruk.
Perbedaannya adalah dibutuhkan lebih banyak usaha daripada fitur pengkodean untuk menyelesaikan suatu proyek: qa, perbaikan bug, salin pengeditan, penyebaran.
Hal-hal itu perlu dikelola dalam proyek, dan merupakan tanggung jawab manajer proyek. Ini sering mengejutkan PM baru yang meluncurkan "90% fitur selesai" hanya untuk menyadari bahwa mereka hanya setengah jalan ke "proyek selesai".
sumber