Pretty much exactly that! I find the combination of interfaces and value objects be the fastest way to iterate on the overall architecture too. It's nice to have everything well named and organized across domain, context and into the correct hierarchies of information before the tests even. Best to get that right before writing any code. That, then unit tests for the values objects and acceptance tests for the interfaces (contracts), then implementations that cover those tests.
Plenty of ways to skin a cat though.