Writing CRUD should be really fast; that should bring no loss of flexibility; the work required should be close to proportional to the business complexity; expertize and competency should have a measurable impact on developer productivity all the way through.
Nowadays you can get one of those, and not more than one, some you can't get at all. This is the problem.
CRUD is supposed to be the simplest and most straight-forward kind of software one could write. All of the complexity should come from the requirements, and should be immediately visible from the outside.
Yet on practice those systems famously get very complex very quickly and all of that stops being true. Not to say about what pass around as modern practice, that makes software this way from the bare start.
That's a problem that has been bugging me for a long time. But if I try to do something about it, I actually don't know how to solve it. So I believe I'll gain something from cristalizing my understand of it first.Continue