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

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

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

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

С кем не бывает. Нам всем нужно некоторое подкрепление того, что мы на самом деле пытаемся сделать. Если мы оставляем вещи в покое, не отступая время от времени, мы склонны уходить от общей картины.

За деревьями не видно леса.

Сегодня мы поговорим о шагах, которые вы можете предпринять, чтобы предотвратить этот «дрейф», оставить некоторые детали позади и сосредоточиться на конечном этапе игры.

Установите руководящие принципы

Если вы еще этого не сделали, вы должны придумать руководящие принципы для своей работы. Они не обязательно должны быть привязаны к архитектуре решения или даже к конкретному продукту. Но они должны быть записаны и официально согласованы.

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

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

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

Каждый дизайн, который вы придумываете, должен учитывать это. Если вы начнете сбиваться с пути, вы начнете упускать большую картину и создавать то, что вам не нужно.

У вас может возникнуть вопрос: «Как мне прийти к этим руководящим принципам?» «Отличный вопрос!

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

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

Хватит спешить

Вас попросят быстро изменить ваши планы. Это просто часть бизнеса. У всего есть срок. Но ваша работа — ответственно относиться к тому времени, которое вы тратите. Помните, 2022 год — год асинхронности.

Найдите время, чтобы сделать шаг назад и посмотреть, как этот новый проект вписывается в ваши руководящие принципы. Если это не подходит, вам следует поговорить с владельцем продукта о внедрении другого решения.

Вы когда-нибудь бежали в продуктовый магазин, чтобы купить что-то одно? Вы входите, идете прямо к проходу, где, как вы знаете, живет продукт, берете его и уходите. Вы возвращаетесь домой, готовитесь открыть его и понимаете, что подобрали не тот сорт, который хотели. Это вроде то, что вы хотели, но не совсем.

Вы торопились пройтись по продуктовому магазину, потому что это было похоже на быстрое хватай и иди. Но из-за того, что вы поторопились, вы не обратили внимание на мелкие детали и увидели, что схватили не тот аромат.

То же самое относится к разработке программного обеспечения в качестве архитектора решений. Даже базовый проект может попасть в ловушку быстро и легко, и в итоге вы можете получить что-то, что не совсем соответствует шаблону.

С программным обеспечением вы можете получить это быстро или получить право. Вы редко, если вообще когда-либо, можете иметь и то, и другое.

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

Существует так называемое правило 1x, 10x, 100x при разработке. Чем раньше вы обнаружите проблему, тем дешевле ее решить.

Если вы решаете проблему на этапе планирования или разработки, это 1x усилий. Если вы поймаете это в QA или когда ваши автоматические тесты будут запущены, это в 10 раз усилие. Если вы обнаружите что-то в рабочей среде, это будет в 100 раз проще исправить.

По мере того, как вы углубляетесь в SDLC, вовлекается все больше и больше людей, что умножает количество усилий.

Относитесь к каждому проекту как к части головоломки

У меня есть друзья, которые любят заниматься домашними проектами. Они постоянно делают что-то новое. Когда один проект заканчивается, они начинают новый.

Качество их работы является исключительным и выглядит профессионально выполненным, если рассматривать один проект в отдельности. Но когда вы смотрите на их дом, он кажется немного… бессвязным.

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

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

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

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

Заключение

К сожалению, не существует волшебного средства, позволяющего видеть более широкую картину. Но вы можете задать себе эти простые вопросы, когда придумываете свой дизайн.

  • Соответствует ли проект вашим руководящим принципам?
  • Вложили ли вы должное количество времени и усилий в свой дизайн?
  • Какую роль этот проект играет в вашей экосистеме?

Ответив на эти вопросы, вы создадите дизайн, который впишется в общую картину.

Никто не хочет приложение Франкенштейна. Что-то, что имеет кучу крутых частей по отдельности, но вместе они не имеют смысла. Восхитительное приложение кажется сплоченным и однородным во всем.

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

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

Удачи и счастливого кодирования!