Ok, mi sono imbattuto in questo molte volte, ma qui lo scenario peggiore è leggermente esagerato.
Un cliente dice "hey puoi farci questo piccolo modulo per fare questo piccolo compito"?
Io: "Sicuramente nessun problema".
Quindi, basandomi su budget, vincoli, ecc., Salto un po 'dell'architettura e mi tuffo e non faccio sudare.
Quindi chiedono un altro modulo. E un altro. E alcuni miglioramenti. E tutto questo accade molto lentamente, badate, negli anni. E prima che tu lo sappia, hai questa applicazione mostro che è orribilmente progettata.
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 puoi sovrastimare la cosa, perché dopo tutto è solo una piccola applicazione, e andranno da qualche altra parte se dici (in quanto conosco tutta la voce) "Beh, nel caso, progettiamo questa cosa in strati con top -o-the-line sicurezza e separazione delle preoccupazioni. In effetti andiamo con uno strumento di iniezione di dipendenza che renderà davvero questa cosa fantastica blah blah blah ".
Diranno "sì giusto" e andranno da qualcun altro.
Budget, tempo e percezione sono importanti quanto l'architettura stessa dell'applicazione.
Come dovrebbe essere affrontato questo?
Immagino che la domanda si riduca davvero a "Quando non si hanno tutte le informazioni per il risultato finale di quella che sembra essere una piccola applicazione, come evitare (o mitigare) di prendere decisioni architetturali e progettuali in anticipo che sarà completamente inopportuno più tardi?