The test-driven part of my brain is screaming 'just refactor to a better design' and you will feel better. And as I do this I can't help but wonder 'at what point am I just reinventing the wheel?'
I actually tried to avoid the not invented here syndrome by learning ember.js a few months back, but I ended up with more questions than answers after that little experiment. It's not that I don't love ember.js or what the core team is trying to accomplish, but it's a true framework in every sense of the word. And having seen both extremes from 'we don't use frameworks here' to 'don't reinvent the wheel when we can be solving business problems' I was stuck asking myself a difficult question that I don't yet have the answer to …
The above is a fictitious and over simplified version of how I imagine this might happen inside a small product company but I've not yet done this myself. So I ask the question => how does evolutionary design and picking a library/framework work in the real world?