I think this is the way. Human-machine co-design worked great for me so far. Hell, even the test writing alone is great, because I can have more confidence in my code. And test writing was mostly drudgery. On the other hand, you _must_ have a good mental model of the thing in your head else this will not work. And it's much easier to believe you have it and not really have it if you don't engage with the codebase.