Ok saya sudah mengalami ini berkali-kali, tapi di sini adalah skenario terburuk yang sedikit berlebihan.
Seorang klien berkata, "Bisakah Anda membuatkan kami modul kecil ini untuk melakukan tugas kecil ini"?
Saya: "Tentu tidak masalah".
Jadi berdasarkan anggaran dan kendala dll, saya melewatkan beberapa arsitek dan menyelam langsung dan membuatnya tidak berkeringat.
Kemudian mereka meminta modul lain. Dan satu lagi. Dan beberapa peningkatan. Dan ini semua terjadi sangat lambat dalam pikiran Anda, selama bertahun-tahun. Dan sebelum Anda menyadarinya, Anda memiliki aplikasi monster yang dirancang dengan mengerikan ini.
Apa yang Anda lakukan ketika Anda diminta melakukan sesuatu yang kecil? Anda tidak tahu apakah itu akan terus tumbuh ... jika klien akan terus meminta tambahan (dan mereka juga tidak).
Anda tidak dapat terlalu-arsitek hal, karena itu hanya aplikasi kecil setelah semua, dan mereka akan pergi ke tempat lain jika Anda mengatakan (bahwa saya tahu semua suara) -o-the-line keamanan dan pemisahan kekhawatiran. Sebenarnya mari kita pergi dengan alat injeksi ketergantungan yang benar-benar akan membuat hal ini fantastis, bla bla bla ".
Mereka akan berkata "Ya benar" dan pergi ke orang lain.
Anggaran, waktu, dan persepsi sama pentingnya dengan merancang aplikasi itu sendiri.
Bagaimana ini harus didekati?
Saya kira pertanyaannya benar-benar bermuara pada "Ketika Anda tidak memiliki semua informasi untuk hasil akhir dari apa yang tampaknya menjadi aplikasi kecil, bagaimana Anda menghindari (atau mengurangi) membuat keputusan arsitektur dan desain sejak awal yang akan sepenuhnya tidak pantas nanti?