What is the middle approach in this scenario? What specifically are the templates you refer to?
That's great if you're implementing but it doesn't really work when you're coming in to an existing infrastructure (or codebase) that other people manage.