How to Present Architecture Decisions in English

Фрази, структури і методи для представлення технічних архітектурних рішень впевнено англійською мовою - для колег, лідерів і нетехнічних зацікавлених сторін.

Представлення архітектурних рішень є високо-стабільним комунікаційним завданням. Вам слід чітко пояснити складний технічний вибір, обґрунтувати його доказами, визнати його обмеження і відповісти на запитання людей з дуже різними рівнями технічних знань.

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


Сцена: Відкриття

Начните с ориентации аудитории. Розкажіть їм, що ви презентуєте і чому вони знаходяться у кімнаті:

*“Сегодня я хочу провести вас через архітектуру, яку ми пропонуємо для нової платіжної служби. Я розкажу про проблему, яку ми вирішуємо, про варіанти, які ми оцінювали, і про нашу рекомендацію — а потім я б хотів почути ваші відгуки, перш ніж ми рухаємося вперед»

  • “Ця презентація стосується рішення, яке нам слід прийняти щодо шару даних. Я збережу технічні деталі відповідними для цієї аудиторії і позначаю, де компроміси мають бізнес-наслідки. ”*

Фраза « Я б хотів почути ваші відгуки перед тим, як ми рухаємося вперед » є важливою — вона сигналізує, що ви справді шукаєте вхід, а не просто оголошуєте зроблене рішення.


Спочатку описується проблема

Ніколи не скачай прямо до рішення. Спочатку визначте проблему, щоб аудиторія зрозуміла, чому потрібно прийняти рішення:

  • “Поки що, кожна з наших трьох мікросервісів зберігає власну копію даних користувача. Це викликає проблеми з послідовністю — коли користувач оновлює свою адресу електронної пошти, ми мали випадки, коли вона поширювалася на дві служби, але не на третю.»*
  • “Виклик, з яким ми стикаємося, полягає в тому, що наша поточна монолітна база даних стає вузьким місцем. По мірі того, як ми масштабуємо, запиту на читання конкурують із запитами на запис, і затримка зростає.”*
  • “У нас є можливість: ми переписуємо службу сповіщень з нуля. Це правильний час для прийняття рішення про основний брокер повідомлень, тому що зміна його пізніше буде набагато дорожче.”*

Проходження через варіанти

Структуруйте ваші альтернативи чітко:

  • “Ми оцінювали три варіанти. Я пройдусь по кожному з них коротко, перш ніж пояснити, чому ми рекомендуємо другий варіант. ”*

** Варіант А: **

  • “Першим варіантом було продовжити з існуючим монолитом і оптимізувати запиту. Перевага - мінімальні перешкоди. Недолік у тому, що це короткострокове рішення — ми знову зіткнемось з тим же обмеженням через 12 місяців»

Вариант B:

  • “Другий варіант — наша рекомендація — це видобути службу користувача як самостійну мікрослужбу з власною базою даних. Це вирішує проблему послідовності і дає нам незалежне масштабування. Компромісом є більші початкові інвестиції: приблизно 6 тижнів інженерного часу. ”*

** Варіант C: **

  • “Третій варіант був архітектурою пошуку подій. Це найпотужніший з трьох, але також і найскладніший. Зважаючи на попередній досвід нашої команди з пошуком подій, ризик був би занадто високим на цьому етапі»

Вказівка на рекомендацію

Будь прямою:

  • “Ми рекомендуємо варіант B — автономну службу користувача. Ось чому»

“Після оцінки всіх трьох варіантів, ми вважаємо, що підхід мікросервісів дає нам найкращий баланс ризику, вартості і довгострокової гнучкості.”

“Ми пропонуємо продовжити з варіантом 2, з урахуванням вашого відгуку і підпису сьогодні.”


Підтвердження компромісів

Ось де ви демонструєте технічну зрілість:

“Я хочу, щоб було прозоро щодо компромісів. Цей підхід збільшує складність операцій — нам потрібно буде управляти виявленням послуг і розподіленим відстеженням для нової служби. ”

  • “Головним ризиком є період міграції: приблизно протягом двох тижнів ми будемо працювати з обома системами паралельно. Ми розробили план відновлення для цього вікна.”*

“Це рішення не вирішує проблему кешування — це окрема ініціатива, яку ми розглянемо в Q3.”


Запитання і відповіді

Запрошуємо до запитів:

“Я тут зупинюся на питаннях - особливо в розділі про компроміси.”

“Чи хтось хоче, щоб я поглибився в якійсь з цих можливостей, перш ніж я перейду далі?”

Відповідь на питання, на які не можна відповісти відразу:

“Це чудове питання. Я не маю цих даних в руках зараз — дозвольте мені продовжити з вами після цієї сесії. ”*

“Я хочу убедиться, что я дал тебе точную ответ на это. Чи можу я повернутися до вас з цифрами до кінця тижня?»

Відповідь на незгоду:

*“Я вас чую - це законне занепокоєння. Чи можете ви допомогти мені зрозуміти конкретний ризик, про який ви турбуєтеся, щоб ми могли звернутися до нього безпосередньо?» *

“Вы поднимаете важный вопрос об оперативном бремени. Чи можемо ми кількісно виміряти це разом і побачити, чи це змінює рекомендацію?»


Закриття презентації

“Подсумую: ми пропонуємо варіант B, автономну службу користувача, починаючи зі спринту 14. Ми хочемо підписати сьогодні, щоб ми могли почати план миграциї. Чи є якісь останні питання перед тим, як ми закінчимо?»

  • “Наступним кроком є створення докладного документа з технічного проектування. Я розповсюджу це до кінця наступного тижня і запланую подальший огляд. ”*

Представлення архітектурних рішень є лідерськими навичками, а не тільки технічними. Чим яснішою буде ваша структура і чим чеснішим буде ваш аналіз компромісів, тим більш впевненою буде ваша аудиторія — у вашому рішенні і у вас.

Розрізняють плавальні та неплавальні

Один з найскладніших аспектів комунікації архітектурних рішень - це конструктивне поводження з розбіжностями. Легко впасти в обвинувачувальну мову або просто висловити свою позицію, не визнаючи альтернативні точки зору. Ключовим тут є не обов’язково перемога аргументу, а скоріше демонстрація того, що ви розглядали інші варіанти і можете сформулювати аргументи за вашим вибором. Фрази на кшталт «Хоча я ціную пропозицію…» або «Я розумію логіку…» негайно пом’якшують тон і демонструють повагу до різних думок. Уникайте фраз типу « Це неправильно » або « Ви не розумієте ». Замість цього, сформулюйте це так: « Давайте дослідимо, чому цей підхід може бути неоптимальним у цьому конкретному контексті. »

Розглянемо сценарій під час перегляду коду: ви запропонували використовувати архітектуру мікросервісів для нової можливості, а інший розробник, Марк, пропонує монолітний дизайн. Позначте типи: « Мікросервіси здаються надто складними — ми просто залишимося з монолитом ». Хороша відповідь не буде: « Ви повністю не розумієте переваги мікросервісів! » Замість цього спробуйте щось на зразок: « Марку, я ціную вашу турботу про складність. Хоча моноліт може спростити розробку спочатку, введення його зараз може створити значні проблеми під час масштабування і майбутніх додатків функцій. Давайте обговоримо, як ми можемо зменшити ці ризики - можливо, через ретельний дизайн API або поетапне розгортання. “Фраза зосереджена на * потенційних * проблемах, а не прямо критикує пропозицію Марка.

Іншим корисним методом є використання тесту «І що?» часто. Після того, як ви прийняли рішення, коротко поясніть, чому це важливо. Наприклад, «Ми вибираємо React для цього проекту, тому що він пропонує кращу продуктивність і досвід розробника, що в кінцевому підсумку призведе до швидших циклів розробки і зменшення витрат на обслуговування».

Нарешті, при документуванні архітектурного рішення в описі PR, будьте чіткими щодо компромісів. Не достатньо сказати «Використання GraphQL покращує продуктивність». Слово: «Ми обрали GraphQL над REST, тому що він зменшує перевантаження даних, що покращить початкові часи завантаження і зменшить споживання пропускної здатності — важливе обґрунтування, враховуючи очікуване зростання нашої бази користувачів»

Ось приклад використання curl для демонстраційних цілей, який показує, як ви можете описати рішення про використання шлюзів API у технічній дискусії:

curl -s https://api.example.com/users?page=2&limit=10

Ця команда описує наш перехід до централізованого рішення з керування API — API Gateway — для ефективної обробки розпізнавання, обмеження швидкості і маршрутизації запитів до серверних служб. Це не був випадковий вибір; це безпосередньо стосується проблем з вразливістю безпеки і масштабованістю, визначених в нашій початковій оцінці ризиків.

Поширені запитання

Про що ця стаття "How to Present Architecture Decisions in English"?

Фрази, структури і методи для представлення технічних архітектурних рішень впевнено англійською мовою - для колег, лідерів і нетехнічних зацікавлених сторін.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "How to Present Architecture Decisions in English"?

Приблизно 7 min.