Ok mi sono imbattuto in questo molte volte, ma qui lo scenario peggiore è un po 'esagerato.
Un cliente dice "hey puoi farci questo piccolo modulo per fare questo piccolo compito"?
Me: "Sure nessun problema".
Quindi, in base a budget e vincoli, eccetto alcuni degli architetti e mi tuffo e non mi preoccupo.
Quindi chiedono un altro modulo. E un altro. E alcuni miglioramenti. E tutto questo accade molto lentamente, attenzione, per anni. E prima che tu lo sai, hai questa mostruosa applicazione che è orribilmente progettata.
Che cosa fai quando ti viene chiesto di fare qualcosa di piccolo? Non sai se continuerà a crescere ... se il cliente continuerà a chiedere aggiunte (e nemmeno loro).
Non si può sovra-progettare la cosa, perché dopotutto è solo una piccola applicazione e andranno da qualche altra parte se si dice (nel senso che conosco tutte le voci) "Beh, per ogni caso, architettiamo questa cosa in strati con la massima sicurezza e separazione delle preoccupazioni, in effetti andiamo con uno strumento di iniezione di dipendenza che renderà davvero questa cosa fantastica bla bla bla ".
Diranno "sì giusto" e andranno da qualcun altro.
Budget, tempo e percezione sono importanti quanto l'architettura dell'applicazione stessa.
Come dovrebbe essere affrontato?
Suppongo che la domanda si riduca a "Quando non hai tutte le informazioni per il risultato finale di quella che sembra una piccola applicazione, come puoi evitare (o mitigare) prendere decisioni di progettazione e di progettazione in anticipo? sarà completamente inopportuno in seguito?