You maintain compatibility with a clear spec and disciplined teams. Also, testing. There might be fancier tools, but they really aren't necessary. Anyway, this sort of "practice of software engineering" question is too broad and off-topic for Stack Overflow. You might be able to get help on another site, as Geeky suggests in the comment above. — Cody Gray ♦ 38 secs ago