Corollary: if software requires constant revisions it didn't actually cover the initial problem scope, and degenerated into a high-latency service state-machine powered by coders. =3
One way to enforce implementation convergence is to define core unit tests before coding even begins. If people just ignored communication, the results are rather predictable.