This is my approach.  Again.  I am always triple checking to make sure I am not over complicating the things™.

Testability is a first class citizen in my world.  No Tests, No Merge.

Refactoring complexity is the way.  How we go about it is usually the rub.