Ada satu hal yang saya selalu bertanya-tanya ketika membaca tentang semua hal "pengembangan tangkas" di sini di SE dan situs lainnya:
Dalam rekayasa perangkat lunak "tradisional", Anda
- mengumpulkan persyaratan pengguna,
- tulis spesifikasi berdasarkan persyaratan ini,
- memberikannya kepada pelanggan dan menagihnya untuk pekerjaan yang dilakukan sejauh ini,
- melakukan desain teknis (kasar), sehingga Anda dapat memperkirakan biaya implementasi,
- memberi pengguna penawaran harga untuk implementasi,
- menunggu pelanggan untuk menandatangani spesifikasi dan menerima penawaran,
- desain, implementasikan, uji,
- tagihan.
Jika, selama proses, persyaratan berubah, Anda mengirim penawaran (dengan harga) untuk perubahan yang diinginkan (atau melakukannya secara gratis jika perubahannya kecil, Anda menyukai pelanggan dan pelanggan tidak melakukannya terlalu sering) .
Jadi, bagaimana ini bekerja (secara finansial) dalam proyek gesit, di mana perubahan persyaratan sering menjadi bagian dari proses?
- Apakah Anda menulis penawaran untuk setiap perubahan desain? (Bukankah ini cukup berantakan?)
- Atau apakah Anda menegosiasikan harga tetap dan berharap bahwa pelanggan tidak terlalu sering mengubah persyaratan? (Bisa berisiko, saya tahu pelanggan yang akan menggunakan kesempatan ini untuk meminta fitur baru selama bertahun-tahun sebelum menerima bahwa proyek selesai.)
- Atau apakah Anda hanya menagih pelanggan untuk total waktu yang dibutuhkan? (Bisa berisiko bagi pelanggan, yang tidak tahu biaya di muka.)