Try using a signature checker as part of the build
@myrle-krantz in https://github.com/stellar/java-stellar-sdk/issues/14
A signature checker can automatically determine if your api is still compatible or if it will break your clients. Making a signature checker part of your build can help you avoid accidental breaking changes of the most superficial variety.
This really was just directed at the java api. The protocol is important too, and insofar as it can be represented by java classes, it can be at least partially stabilized by a java signature checker too.
However placing a java signature checker at the java api level, prevents you from accidentally making changes that force clients of your java api to change their code. This is very easy to add to a build, and can save you a lot of heartache once you get past beta phase and have customers who have released their code.
Tulach gives more information (and is a good general resource for anyone interested in java apis as well): http://wiki.apidesign.org/wiki/SignatureTests