Versioning and Backward Compatibility: The Promise You Cannot Break