Software is losing its magic. We simply demand too much from the current approaches. As a result, software developers are losing the battle with complexity, often without realizing it. More often than ...
If done well, Model Driven Software Development can partially obscure some complexity, but you are going to have to treat the source code output as build artifacts and take ownership of the templates.