Anda telah menentukan situasi tanpa melarikan diri.
Saya yakin ada situasi kehidupan nyata di mana Anda memiliki blok fungsi yang rumit yang tidak dapat dipisahkan. Tetapi kasus yang biasa adalah bahwa Anda dapat memecah suatu persyaratan menjadi sub persyaratan yang memang memiliki beberapa manfaat dari diri mereka sendiri.
Katakan misalnya persyaratan saya untuk memvalidasi alamat penagihan kartu kredit Inggris. Ini cukup rumit, kami ingin memastikan bahwa alamat tersebut adalah alamat tempat tinggal orang yang disebutkan dalam kartu sehingga jika mereka default dalam pembayaran, kami dapat mengejar mereka.
Ada ratusan kemungkinan validasi dan pemeriksaan yang dapat kita lakukan untuk meningkatkan keandalan pemeriksaan, tetapi masing-masing secara individual dapat diuji dan menawarkan penurunan nyata dalam risiko penipuan.
- alamat memiliki nomor rumah dan kode pos
- kode pos adalah format yang valid
- pencarian kode pos dengan api eksternal berhasil
- kode pos adalah kode pos geografis
- alamat divalidasi dengan pemasok kartu kredit dll
Jika dorongan datang untuk mendorong, pelanggan akan dapat menghasilkan uang dengan hanya sebagian dari aturan yang diterapkan. Baik risiko tambahan dapat diterima atau kerja manual di sekitarnya dapat ditambahkan ke alur kerja untuk mengurangi situasi.
Metodologi scrum dan gesit dirancang dengan pemikiran ini. Mereka mencoba untuk menghindari kegagalan seluruh proyek dengan memastikan bahwa beberapa persyaratan yang hilang tidak menyebabkan seluruh solusi menjadi tidak berharga.
Tapi mereka tidak bisa mengubah kenyataan, jika Anda memiliki roket ruang angkasa yang pasti membutuhkan X, Y dan Z untuk terbang. Maka Anda membutuhkan ketiganya!
Kuncinya adalah mengenali bahwa umumnya dalam jalur aplikasi bisnis, ini tidak terjadi, terlepas dari apa yang pelanggan katakan.