Non penso che le strutture siano una causa dell'ingegneria eccessiva. Più spesso, i framework rimuovono il codice boilerplate e semplificano il codice base che si è lasciato da mantenere.
Sono d'accordo anche con il commento di Thorbjorn che è una cattiva idea aspettarsi un'API per tutto. È molto meglio avere l'ambiente runtime focalizzato sulle cose che appaiono in quasi tutte le applicazioni ed essere abbastanza flessibile da consentire l'aggiunta di framework dove altri problemi comuni sono risolti.
Tuttavia, ho visto le istanze (al di fuori del mondo Java) dove i framework sono usati per il gusto di usare un framework. Capisco perché pensi che questo sia male, e se si sovrappone il prodotto, allora lo è. Ma bisogna tenere presente che se a uno sviluppatore viene dato spazio per migliorare il proprio curriculum, vedranno più motivi per restare in giro e imparare ancora di più.
Se uno sviluppatore è probabile che esegua il backup se scopre che un framework non aiuta, ci sono buone ragioni per lasciarli andare.
Ma leggendo la tua storia, vedo un problema più grande, non la comprensione del dominio aziendale. Troppi prodotti sono scritti senza alcun riguardo per problemi di business reali, solo il tentativo di produrre qualcosa che gli sviluppatori pensano dovrebbero aiutare. Questo non è colpa dei framework in alcun senso, è colpa degli sviluppatori, ma ha bisogno di essere risolto in qualche modo.
Il modo in cui lo fai dipende molto dalla struttura del team. Ma fai molti commenti sulla falsariga di "Non pensi che saremmo più soddisfatti del nostro lavoro se pensassimo di scrivere software che renderebbe la vita delle persone migliore?"
O fai in modo che gli sviluppatori si uniscano alle persone che useranno il software e vedranno i problemi che affrontano ogni giorno e offrono soluzioni.
Oppure, se si tratta di questo, gioca all'angolo della carriera. Intendo dire chi vuole andare alla loro prossima intervista e dire "sì, abbiamo fatto del nostro meglio, ma non è mai stato il prodotto che il cliente voleva", piuttosto che "così sono entrato nel business e ho studiato il modello e usato le tecniche DDD per trasformalo in un modello software "?