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 credo che il modello guidato sia una ricerca di martelli d'oro o proiettili d'argento!
Vorrei andare oltre con complessità; ci sono due tipi di complessità uno che io chiamo complessità organica o naturale, complessità che è inerente all'azienda e ai suoi processi ma abbiamo anche complessità cerimoniale.
Complessità che si insinua nell'istruzione di sistema per istruzione, giorno dopo giorno. La complessità cerimoniale - complessità non necessaria - emerge essenzialmente dalla manipolazione incontrollata di codice tecnico con codice orientato al business, ma anche dalla mancanza di struttura e uniformità nel sistema.
Oggi l'intera complessità che tormenta lo sviluppo di sistemi di informazione e causa guasti e vita è la complessità cerimoniale; complessità che può essere eliminata.
La complessità cerimoniale è lo spreco, lo spreco causato dal codice, il valore in meno, il cambiamento inverso, il codice invariante; codice che deve essere ridotto al minimo indispensabile.
Come farlo? Semplice! Non scriverlo e non generarlo, in primo luogo!
Codice tecnico necessario e invariante; codice utilizzato per leggere / scrivere, visualizzare, comunicare ... Ecco dove entrano in gioco 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 è necessario un motore tecnico che gestisca gli aspetti invarianti del software in base a un modello. Lo chiamo un motore AaaS (Architecture as a Service).
Per quanto riguarda il codice non necessario, è un codice non necessario, quindi potrebbe anche lasciarlo non scritto.
Ciò ci lascia con il necessario codice orientato al business che dovrebbe essere scritto, i dati necessari orientati al business che dovrebbero essere progettati e l'interfaccia utente necessaria e l'esperienza che dovrebbe essere progettata e immaginata.
Eliminando il fragile codice, possiamo abbracciare Architecture as a Service un nuovo paradigma per lo sviluppo del software basato molto più sulla modellazione e la progettazione che sul codice.