Risposta breve ... perché il modello guidato è spesso correlato alla generazione del codice e il codice è fragile; ciò di cui abbiamo bisogno è l'eliminazione del codice e il modello guidato è sicuramente la strada da percorrere.
Alcuni hanno respinto la domanda sostenendo che non esiste un martello d'oro e che lo sviluppo del software è intrinsecamente complesso.
Sono pienamente d'accordo con loro sul fatto che non esiste un martello d'oro, ma non penso che il modello guidato sia una ricerca di martelli d'oro o di proiettili d'argento!
Mi piacerebbe andare oltre con la complessità; ci sono due tipi di complessità, che io chiamo complessità organica o naturale, complessità intrinseca al business e ai suoi processi, ma anche complessità cerimoniale.
Complessità che si insinua nelle istruzioni del sistema con istruzioni, giorno dopo giorno. La complessità cerimoniale - complessità non necessaria - emerge essenzialmente dalla manipolazione incontrollata del codice tecnico con il codice orientato al business, ma anche dalla mancanza di struttura e uniformità del sistema.
Oggi l'intera complessità che perseguita lo sviluppo dei sistemi di informazione e causa il fallimento e la vita è una complessità cerimoniale; complessità che può essere eliminata.
La complessità cerimoniale è uno spreco, uno spreco causato dal codice, un valore inferiore, un codice negativo invariante; codice che deve essere ridotto al minimo.
Come si fa? Semplice, non scriverlo e non generarlo, in primo luogo!
Codice tecnico necessario e invariante; codice che viene usato per leggere / scrivere, visualizzare, comunicare ... Ecco dove entrano i modelli, descrivendo la struttura logica dei dati - aggiungerei in modo relazionale - i modelli possono abilitare la gestione generica della lettura / scrittura standard, la visualizzazione e la comunicazione di dati.
È proprio come un sistema operativo, non lo riscrivi per ogni progetto che usi. Quindi, ciò che è necessario è un motore tecnico che gestisca gli aspetti invarianti del software dato un modello. Lo chiamo un motore AaaS (Architecture as a Service).
Per quanto riguarda il codice non necessario, beh è un codice non necessario, quindi potrebbe anche lasciarlo non scritto.
Questo ci lascia con il codice necessario, orientato al business che dovrebbe essere scritto, i dati orientati al business necessari che dovrebbero essere progettati e l'interfaccia utente necessaria e l'esperienza che dovrebbe essere progettata e immaginata.
Eliminando il codice fragile, possiamo abbracciare Architecture as a Service un nuovo paradigma per lo sviluppo del software basato molto più sulla modellazione e sul design che sul codice.