Главная » Архитектура ПО » Осознавайте последствия изменений

0

Дуг Кроуфорд

Хороший архитектор снижает сложность до минимума и может спроектировать решение, абстракции которого, с одной стороны, обеспечивают надежный фундамент, а с другой – достаточно прагматичны, чтобы пережить изменения.

Выдающийся архитектор понимает последствия изменений – не только в отдельных программных модулях, но также в отношениях между людьми и между системами.

Изменения могут проявляться в разных формах:

•      Изменения функциональных требований

•      Ужесточение требований к масштабируемости

•      Модификация интерфейсов системы

•      Приход и уход членов команды

•      и так далее…

Масштаб и сложность изменений в программном проекте невозможно определить заранее. Бесполезно пытаться объехать каждую выбоину на дороге до того, как вы на нее наткнетесь. Но переживет проект очередное препятствие или нет, в большой степени зависит от архитектора.

Задача архитектора – не столько управлять изменениями, сколько позаботиться об их управляемости.

Для примера возьмем распределенное решение, в котором задействовано несколько приложений, объединенных различным промежуточным программным обеспечением (middleware). Если набор зависимостей неверно определен или неточно представлен в визуальной модели, изменения бизнес-процесса могут привести к настоящему хаосу. Последствия изменений оказываются особенно серьезными, если изменения затрагивают модель данных или нарушают имеющиеся интерфейсы, а существующие долговыполняемые транзакции с отслеживанием состояния должны быть успешно завершены в старой версии процесса.

Пример может показаться излишне радикальным, но решения с высокой степенью интеграции в наше время применяются повсеместно. Это очевидно по ассортименту предлагаемых стандартов интеграции, инфраструктур и шаблонов. Чтобы обеспечить вашим клиентам нормальный уровень поддержки, крайне важно понимать последствия изменений в таких системах, частично лежащих за пределами вашей досягаемости.

К счастью, существует целый ряд инструментов и методов, позволяющих смягчить воздействие изменений:

•      Вносите небольшие, поэтапные изменения

•      Создавайте воспроизводимые тестовые сценарии и часто запускайте их

•      Упрощайте построение тестовых сценариев

•      Отслеживайте зависимости

•      Действуйте и реагируйте систематично

•      Автоматизируйте повторяющиеся задачи

Архитектор должен оценить воздействие изменений на различные аспекты масштаба проекта, времени и бюджета и быть готовым уделить больше внимания тем областям, которые способны оказать наиболее сильное влияние, став той самой «выбоиной на дороге». Оценка рисков – полезный инструмент для принятия решения о том, на что следует расходовать ваше драгоценное время.

Снижение сложности – важная задача, но низкая сложность не равнозначна простоте. Понимание возможных изменений и их влияния на решение оказывает неоценимую пользу в среднесрочной и долгосрочной перспективах.

Дуг Кроуфорд (Doug Crawford) руководит командой разработчиков промежуточного программного обеспечения для телекоммуникационной компании в Южной Африке. Последние 10 лет он с успехом совмещал несовместимое и принимал самое непосредственное участие в проектах по интеграции приложений в разнообразных отраслях: рекламе, банковском обслуживании крупного бизнеса, страховании и образовании.

Источник: Форд Н., Найгард М., де Ора Б., 97 этюдов для архитекторов программных систем. – Пер. с англ. – СПб.: Сим- вол-Плюс, 2010. – 224 с., ил.

По теме:

  • Комментарии