Статью прочел, размышления - тоже. Сначала пара слов о требованиях как таковых. На самом деле, они - не панацея, важны не требования, а бизнес-модель, заложенная в систему. Пока изменения находятся в ее рамках, новый функционал относительно легко реализуется, а выход за эти рамки - сложнее. Бизнес-модель отличается от требований целостностью. Поскольку модель устанавливает рамки, то именно ее надо обсуждать с бизнесом, а для этого надо формулировать ее на языке бизнеса. То есть я говорю не о математической модели бизнеса в терминах ИТ, а о модели системы в терминах бизнеса.
Возможность развития системы при изменения бизнеса - это безусловно важный аспект. Но тут крайне необходим баланс. Дело в том, что сложное универсальное решение, используемое для относительно простого процесса, всегда требует от оператора выполнения лишних действий. Пример. Пусть система рассчитана на поэтапную отгрузку заказов через отдельные документы, и есть отдельный процесс формирования этих документов. А в организации всегда отгрузка происходит целиком, зато заказы часто меняются, в том числе задним числом - чтобы отразить фактическую отгрузку, то формирование этих документов и последующая синхронизация - лишние действия для оператора. И таких примеров можно привести много. Более того, сделать универсальную систему на все случаи жизни с хорошей поддержкой сложных бизнес-процессов - невозможно. Это - мой опыт непосредственного участия в развитии ИТ-систем в сложных организациях. Дело в том, что от системы требуется поддержка бизнес-процесса на достаточно высоком уровне. А человеческая изобретательность при конструировании бизнес-процессов - очень велика. И максимум, что возможно - поле комментарий (или расширяемая атрибутика), которую можно нагружать своей семантикой - но на нее не будут реагировать основные алгоритмы, а это значит массовое применение - невозможно.
А еще - есть трогательное отношение к плодам своего труда как к чему-то нетленному, вечному. Реально программисты должны понимать, что их труд - в помойку, лет через пять все, что они пишут - устареет и потребует реинжиниринга (да, у нас есть системы, работающие больше 10 лет, но я говорю о среднем).