Respuesta corta ... porque el modelo dirigido a menudo está relacionado con la generación de código y el código es frágil; lo que necesitamos es la eliminación de código y el modelo impulsado es seguramente el camino a seguir.
Algunos han rechazado la pregunta argumentando que no hay un martillo dorado y que el desarrollo de software es intrínsecamente complejo.
Estoy totalmente de acuerdo con ellos en que no hay un martillo dorado, ¡pero no creo que el modelo conducido sea una búsqueda de martillos dorados o balas de plata!
Me gustaría ir más allá con la complejidad; Hay dos tipos de complejidad, uno que llamo complejidad orgánica o natural, complejidad que es inherente al negocio y sus procesos, pero también tenemos complejidad ceremonial.
Complejidad que se desliza en el sistema instrucción por instrucción, día tras día. La complejidad ceremonial (complejidad innecesaria) surge esencialmente de la manipulación incontrolada del código técnico con el código orientado a los negocios, pero también de la falta de estructura y uniformidad en el sistema.
Hoy, toda la complejidad que obsesiona el desarrollo de sistemas de información y causa fallas y cintura es una complejidad ceremonial; complejidad que puede ser eliminada.
La complejidad ceremonial es desperdicio, desperdicio causado por el código, menos valor, cambio de código adverso e invariante; código que debe reducirse a su mínimo estricto.
¿Como hacer eso? ¡Fácil, simplemente no lo escriba, y no lo genere, en primer lugar!
Código técnico necesario e invariable; código que se usa para leer / escribir, mostrar, comunicar ... Ahí es donde entran los modelos, al describir la estructura lógica de los datos, agregaría de una manera relacional, los modelos pueden permitir el manejo genérico de la lectura / escritura estándar, la visualización y la comunicación de datos.
Es como un sistema operativo, no lo reescribe para cada proyecto que utilizas. Entonces, lo que se necesita es un motor técnico que maneje aspectos invariables del software dado un modelo. Lo llamo un motor AaaS (Arquitectura como servicio).
En cuanto al código innecesario, bueno, es un código innecesario, por lo que podría dejarlo sin escribir.
Eso nos deja con el código necesario orientado al negocio que debe escribirse, los datos necesarios orientados al negocio que deben diseñarse y la interfaz de usuario necesaria y la experiencia que deben diseñarse e imaginarse.
Al eliminar el código frágil, podemos adoptar Arquitectura como servicio, un nuevo paradigma para el desarrollo de software basado mucho más en el modelado y el diseño que en el código.