At some point your configuration just becomes code in a domain specific language. They talk about a new employee picking things up pretty quickly - it's not because they used configuration instead of code, it's because they have a sensible architecture.<p>If your "configuration" is powerful enough to do everything you need then it's Turing-complete and is just "code" by another name. If it's not powerful enough then you'll need to drop down into the code layer pretty frequently anyway.
The bigger question is, what do you do with the time you save? Are you just piling on more work?<p>The reasons you invent things to get rid of the crap work is so that you can do the work you really want to do. In my experience, people replace one pile of work with another and call it progress.<p>Only the rare few will automate the things they should, and truly live the freedom they have.
I think your post explains (perhaps unintentionally) why I've never really come to like working with Ruby on Rails as much as I liked working with Django. Or at least continue to feel less productive with it (despite liking Ruby).<p>Somehow the right amount of configuration seems to save a lot of work as compared to conventions that fall just short of actual need.<p>I think there's a trap, though, that leads to the 'convention over configuration' one-size-fits-all road, and it's things that require loads of annoying, hard to manage, poorly structured configuration. (Things, like, for example, Apache, IMO.)<p>Though perhaps I'm just not good at determining when to write my own generators and when not to, I've also had Rails applications where I wrote a generic controller that covered a dozen-plus models and wondered why there couldn't have just been a generic controller built in to begin with (it's not like it'd preclude bumping things out of generic into their own controller if necessary).<p>I kind of wonder, too, if the evolution towards things like Docker/CoreOS with stuff like etcd from more traditional Linux distros and virtualization might also be viewable as a trend from convention towards a 'right amount' of configuration.<p>Just some off the cuff thoughts.
Configuration over code is nice until there is so much configuration you need code to understand it. Also, if the configuration ever is wrong debugging is likely painful.