Subversion's Garrett Rooney on ONLamp.com - Preserving Backward Compatibility:
"The first kind of compatibility most people think about is API compatibility. [...] Second is Application Binary Interface, or ABI, compatibility. [...] If your program communicates over a network, it has to deal with a third form of compatibility, client-server protocol compatibility. [...] Finally, if your program stores data somewhere, be it in a database or in files on disk or wherever, there is data format compatibility."