У нас типовая задача - давайте что то пофиксим/улучшим, но чтобы без остановки и с минимальными модификациями проекта. Изменение интерфейса функционального блока - это в PCS7 полная перекомпиляция проекта и загрузка в систему автоматизации с остановкой CPU модулей. Поэтому приходиться городить новые функциональные блоки на основе уже загруженных, а потом на ходу их подкидывать. Попраны все принципы, описанные Мартином в чистом коде, где то в сторонке плачет Фаулер с Макконеллом, а что поделать, непрерывное производство, прости объектная парадигма, сегодня я говнокодер