This document discusses Magento's approach to backward compatibility (BC). It explains that Magento uses semantic versioning to minimize breaking changes. Magento aims to balance keeping the codebase BC while still fixing flaws. The document outlines what constitutes public APIs and SPIs and how modules should depend on these. It provides examples of permitted and prohibited code changes to maintain BC. It acknowledges that BC fixes can look ugly but emphasizes the importance of continuous refactoring to improve code quality over time.