Понимание роли Архитектора

Я провел 6 Unified Assessment сессий на Солюшен Архитектора (SA) в этом году и несколько в прошлом (что это такое смотрите в конце сообщения). И я вижу большую проблему с пониманием того, кто такой Архитектор, его роль и обязанности. Большинство кандидатов и их руководителей не понимают кто такой SA, что он должен делать, и чем он отличается от разработчика. Кроме того, у всех отсутствует системный подход к созданию архитектуры.

Эта проблема давно известна, и ее решением ЕПАМ активно занимается. Для этих целей, например, была создана год назад Architecture Excellence Initiative. Но неделю назад у нас была очень печальная сессия. Мы даже не начали разговаривать на темы относящиеся к архитектуре. Это было как разговор на разных языках. Причем я знаю этого человека как очень толкового и ответственного технического специалиста и, уверен, если ему дать реализовать часть системы (прямоугольник на диаграмме), он выполнит эту задачу очень и очень хорошо. Но он даже не знает, что делать, какие вопросы задавать и как спроектировать результат, о котором мы спрашиваем.

Подход к решению

Это проблема, которую нужно исправлять. Как я говорил над ней сейчас работают многие люди в ЕПАМ. Должность SA возникла не на пустом месте, есть требование бизнеса и стратегии развития компании, в которой SA играют ключевую роль (тот самый пресловутый PDS 2.0 и Digital Engagement). Я не претендую на полное покрытие функций SA, но я хочу показать, чем же солюшен архитектор отличается от других ролей. В презентации, которая дается в ЕПАМ, это крутой девелопер + BA +PM + Sales + … Это все круто, но тут нет ничего специфичного для SA, хотя оно есть. И все это знают. Например, почему SA не может быть в narrow stack (чистый Mobile development, Front-End development), и мы всех заворачиваем на Асэсменте и говорим: нам нужны сервера, базы данных и прочее.

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

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

Результаты

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

Whiteboarding diagram

Кейс для вайтбординга:

Customer is a government who wants to provide fines history for their citizens (road tickets, police fines, etc.). Customer provided you with following requirements:

  • Solution should include web application, backend and data storage
  • Web application should support different browsers and client devices with the adjusted view for each device.
  • Backend should provide high performance, for thousands of users.
  • Application should support scale-out approach
  • Continuous Delivery
  • Zero-downtime deployment
  • Detailed Monitor across multiple components
  • Logs analysis and errors detection

P.S. Что такое Unified Assessment. В EPAM, получить следующий тайтл можно только через Unified Assessment комитет, в котором участвуют специалисты того же уровня, на который ты претендуешь или выше. Например, архитектором может стать только человек, которого одобрили 3 или более архитектора из 3х разных стран.