Про интерфейсы или как не надо делать программы
В первую голову проблема касается продуктовых софтостроителей, хотя и в проектном тоже не все гладко.
Начнем с недавней истории. Технология COM (позднее, другие, но суть та же) дала возможность разработчикам компонентов отделить интерфейсы от реализаций. Для прикладных разработчиков это означало, например, что при обновлении компонентов старые интерфейсы продолжали бы работать …