Of course if you ask most developers to estimate writing 20 standard CRUD services they will decide it's much more efficient to write a CRUD service generator instead of wasting time manually coding 20 services. Only to realize months later that creating the domain-specific language and code generator is 30 times harder than they anticipated, and they still haven't delivered even one working CRUD service.