Максим, спасибо за актуальную тему.
У меня есть такое мнение на этот счет.
1) работа аналитика выродилось в описание usecase/userstory и проектирование интерфейса, остальное делают разработчики;
Описание это лишь малая часть работы аналитика.
Основные задачи:
- построение коммуникаций Заказчик - Разработчик (Заказчик - Система);
- управление требованиями;
- управление "ожиданиями Заказчика" (в части проектируемых систем).
Не стоит забывать, что есть проекты связанные с внедрением различных систем на интегрированных платформах (1C, Axapta, Oracle, SAP и т.п.), где доля классического или ООП программирования невысока. В таких проектах востребованы сущностные модели и модели прикладного решения.
И здесь нужны очень серьезные знания по текущему или готовому решению, что требует наличия Архитектора решения, который может оценить предлагаемые изменения с точки зрения всей системы (или совокупности систем).
2) когда первичные требования сняты, в проектировании реализацию - структуры данных и прочее - нет ничего сложного, берешь и делаешь;
3) все общее, что можно сказать о проектировании, сказано методологами по ООП и другими, остальное зависит от проекта и сплошной креатив - не расскажешь и не обсудишь.
Я сторонник "разумной специализации". И для тех проектов про которые я говорил наличие выраженной роли архитектора (ведущего разработчика) очень важно.
В этом случае "сложность" переходит на уровень Архитектора.
Также это позволяет аналитику не особо углубляться в очень уж технические моменты и направлять свои усилия на логический уровень системы и коммуникации с Заказчиком.
А что остальные думают? Было бы интересно услышать/рассказать/обсудить именно проектирование системы?
Мне кажется аналитикам важнее обсуждать не собственно само проектирование, а именно вопросы взаимодействия аналитик - архитектор/разработчик.
Я, например, как аналитик на всех проектах на которые прихожу говорю: "Я не буду вмешиваться серьезно в архитектуру решения, но оставляю за собой право на экспертизу предлагаемых решений и возможность блокировать те или иные решения, если они не укладываются в стратегию развития системы и имеют сомнительную ценность для Заказчика."
С другой стороны аналитик понимая архитектуру решения и понимание как проектируются системы должен помочь донести до Заказчика моменты связанные с ограничениями выбранной платформы или архитектуры, убедить что сложность решения задачи в постановке заказчика превышает выгоды от использования, отсекать "хотелки" не отвечающие требованиям (ну или трансформировать "хотелки" в более серьезные требования решающие проблемы бизнеса в целом, а не конкретного пользователя).
На следующем ЛАФе было бы интересно привлечь на конференцию представителей "его величество Заказчика" (в следующем году возможно я смогу выступить в такой роли и сделать доклад или поучаствовать в дискуссии). В моем новом проекте куда ухожу с 09 июля, я как раз буду выступать в первую очередь на стороне бизнеса и выстраивать отношения и процессы взаимодействия с подразделением разработки.