&gt; when one developer changes some internal interface and other developer builds something new based on the old interface definition<p>Well, the compiler would just catch this, right‽ Except if, I suppose, you&#x27;re not using a strongly-typed compiled language like Haskell… ;)<p>(okay, I know this doesn&#x27;t actually address the git issue at hand and isn&#x27;t foolproof either)