When a team is struggling with implementation of a solution, more often than not the temptation is to put the blame on the framework, or whatever technology that they happen to be using at the time, and then what happens is that they simply just say, we need to switch frameworks, we need to go from X to Y. They failed to embrace the first principle, that they get themselves into problems, they blame the framework and they simply want to pick up the next hottest thing without understanding whey their previous initiative failed.
So whenever you want to tackle complexity, think about simplicity. If you want to change the quality of code that an engineer is writing, first of all, you don't change the way that they code, you change the way that they think and the way that they think about code, as a result, their code will get better.