I know, this is one of the unpleasant topics of software development. Probably this is also a non-topic for small startups.
But sooner or later it catches all of us: too many developers, probably external, everyone implements what he/she likes best and interfaces break far too often. A way back to a stable development is configuration control. Is this the only way?
Usually the configuration control board meetings are more or less boring. Once the project is large enough, the representatives do not know enough details to make educated decisions. Nevertheless, some people like to hear themselves talk and thus meetings become endless. If topics have to be re-discussed next time, a decision wether to change the software or not may take very long. So development slows down. Finally some developers don't care and go on with cowboy development etc.
Time to leave the company.
Or? Anyone with a great solution?
How do you handle this problem?
It also helps to organize your source code repository so that every developer can check out all the code across your entire organization. Then when a library developer refactors something she can immediately see if any dependent code will no longer build or fails unit tests. Google does this, at least for the majority of their Java code. I saw a presentation from the Google Collections developers and they explained that working that way made it fairly easy to revise their API.