Do custom "flexible" solutions ever drive me crazy. Most of them amount to meta-based repositories (key => value), heavy use of "object" and datasets and impossible to maintain code.
The masterminds behind these systems are often senior "architects". In my experience though, the simplest solution is generally the most flexible. I'm a big fan of YAGNI (You Aren't Gonna Need It) and straightforward designs.
Years ago, Martin Fowler wrote a paper called "
To Be Explicit" which I've always kept close at hand - especially when fighting with one of those so-called architects. I happen to open it up again today, and figured I'd share this little 15 pages of goodness with anyone not familiar with it.
(Ironically, I believe that a lot of Martin Fowler's work promotes highly implicit code - especially some of his analysis patterns (I said analysis, not design). Of course, if you read what he says about some of those patterns, you'll see that he cautions you to be very careful about their use - and make sure that you actually need to use them. Hard to fault him for all the in-the-sky architects out there).