Какими навыками должен обладать Solution Architect и как их развить? Постарались собрать все ответы в нашей дорожной карте. Данная статья является переводом. Оригинал доступен по ссылке. 📜 Роли и обязанности Архитектор решений должен настраивать процессы и методы разработки таким образом, чтобы они поддерживали выполнение требований проекта. Например, настройте спринты, шлюзы качества в конвейере CI/CD или установите небольшой размер пользовательских историй. При решении этих задач архитектор выступает в роли скрам-мастера. Еще одна обязанность — сбор требований. В данном случае архитектор играет роль бизнес-аналитика. Кроме того, архитектор выполняет работу технического писателя, который пишет документацию, рисует диаграммы и управляет системой знаний. Архитектор также является разработчиком программного обеспечения; в противном случае специалист попадает в башню из слоновой кости архитектуры программного обеспечения, т. е. начинает плохо ориентироваться в проблемах и потребностях пользователей. Архитектор может реализовать несколько проверок концепций для функций, использующих новые технологии, или создать инструменты для команд, или реализовать некоторые некритические бизнес-функции. Архитектор также играет роль консультанта. Бизнес часто хочет видеть сравнение разных решений друг с другом, какие из них лучше всего подходят под конкретную задачу и сколько эти решения стоят. Это очень важно, поскольку рентабельность инвестиций (ROI) является одним из ключевых показателей, которые бизнес использует для принятия решений. 🛠️ Навыки Мы перечислим различные полезные навыки, которые могут быть изменены в будущем, в том числе благодаря вашему фидбеку. Не стесняйтесь давать обратную связь в комментариях. Я считаю, что архитектор должен обладать как hard, так и soft skills. Начнем с последних. 🗣 Soft skills Вы могли заметить, что архитектор много общается с заинтересованными сторонами, командами и другими архитекторами. Прежде всего архитектор должен уметь определять заинтересованные стороны и управлять ими. Архитектор будет сообщать им о рисках проекта, изменениях и т. д. Он или она также докажет, что их решения жизнеспособны для определенных заинтересованных сторон. Очень важно уметь говорить публично и убеждать. Я много практикуюсь в этом. Например, если вам нужно продать решение своему техническому директору, вы подготовите презентацию и представите ее. Вы также можете поделиться опытом внутри компании, чтобы распространить знания о своем решении и провести несколько публичных выступлений на конференциях ради технического бренда. Архитекторы часто участвуют в обоих видах деятельности. Также архитектор ведет переговоры с коллегами и заказчиком. Например, некоторые функции могут быть недоступны до определенного срока, поэтому архитекторы предлагают другие варианты или запрашивают дополнительные ресурсы. Кроме того, конфликты между заинтересованными сторонами неизбежны и архитектор должен их разрешать. 👨💻 Hard Skills Если архитектор не имеет ни малейшего представления о технологиях, с которыми он работает, ну, я бы не сказал, что это хороший архитектор. Обычно мы говорим о Т-образных инженерах, у которых есть отличное понимание и практический опыт работы как минимум с одной технологией, а также некоторый опыт работы с другими. Конечно, еще лучше, если у нас есть человек М-формы: глубокий опыт работы с несколькими стеками, такими как мобильная разработка, фронтенд и Java-микросервисы. Архитектор также может играть роль архитектора приложений для определенного компонента целевой системы и менторить разработчиков в процессе работы с этим компонентом. Помимо самой технологии, архитектор должен знать, как построить систему на основе требований. Это включает в себя знание тактики для выполнения конкретных требований, касающихся доступности, масштабируемости, производительности, безопасности и т. д. Тактики проектирования системы ценны так же, как и шаблоны разработки. Система должна где-то работать, поэтому знание облачных технологий в наше время просто необходимо. Архитектор должен разбираться в вычислительных компонентах, возможностях хранения данных, сетях, мониторинге и многих других вещах, доступных у облачных провайдеров. В список также входят инструменты для работы с потоковой передачей данных, машинным обучением, обменом сообщениями, большими данными и т. д. Я не говорю, что архитектор должен заниматься всем, однако, он должен, по крайней мере, понимать возможности и компромиссы. Знаний самого облака недостаточно, так как существует несколько подходов к реальному запуску кода: от «голого железа» и виртуальных машин до управляемых контейнерных кластеров и лямбда-выражений. Понимание инструментов управления инфраструктурой и средами выполнения также ценно для архитектора. Большое число систем обычно включает в себя компоненты пользовательского интерфейса, такие как веб-сайты и мобильные приложения, поэтому здесь также требуется понимание этой темы на высоком уровне. Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста» Интересно, перейти к каналу Прохождение roadmap Дорожная карта Solution Architect Дорожная карта довольно обширная, и вам может потребоваться год или два, чтобы пройти ее полностью. Roadmap содержит ссылки на книги, курсы, статьи, видео и другие материалы, которые могут вам помочь. 📚 Книги Во-первых, нужно читать книги. У меня есть книги по криптографии, чистому коду, проектированию надежности сайтов, Kotlin, Kafka, управлению рисками, NoSQL, DevOps, компьютерным сетям и другие. Я пишу обзоры книг время от времени. Вы можете найти их по соответствующему хэштегу. Читаю как бумажные издания, так и электронные. Из последних книг могу отметить Fundamentals of Software Architecture Нила Форда. Мне очень нравится эта книга, так как она очень хорошо коррелирует с моим опытом, рассказывая о правильных принципах работы с требованиями и поиску компромиссов. Написана очень живо, с книгами по архитектуре такое редко бывает 🙂 Еще одна книга, упомянутая в дорожной карте, — Software Architecture in Practice. Книга довольно академична, поэтому, если у вас возникнут проблемы с засыпанием, книга поможет вам в этом. Шутки в сторону: несмотря на то, что она немного скучная, она хорошо познакомит вас с тактиками проектирования системы, которая является неотъемлемой частью дорожной карты. Эта книга в сообществе «Книги для программистов» Что касается диаграмм и документации архитектуры, могу посоветовать Documenting Software Architecture. Она также немного скучная, однако дает хороший базис знаний для правильного документирования программных систем, в ней рассматриваются различные точки зрения, подходы к документации и т. д. Последняя книга, которую я упомяну в этом посте, — это Designing Data Intensive Applications, также известная как «книга с кабанчиком». На сегодняшний день эта книга абсолютно необходима для прочтения, скоро я собираюсь сделать ее обзор. Эта книга в сообществе «Книги для программистов» Книга с кабанчиком 🏋️ Тренинги Книги — это хорошо, но нельзя стать архитектором, имея только теорию в голове. Нужно что-то делать голыми руками. И в этом могут помочь тренинги. Вы можете начать с некоторых облачных экзаменов по архитектуре для популярной облачной платформы. Я лично являюсь бывшим профессиональным облачным архитектором Google, и подготовка к экзамену обеспечивает отличную основу как для понимания облачных технологий, так и для разработки программных систем с их использованием. Вы можете выбрать некоторые из курсов Coursera, например «Preparing for Professional Google Cloud Architect Exam». Я также очень рекомендую Acloudguru.com. Ребята создали много курсов для Amazon, теперь у них также есть материалы для GCP и Azure. Я прошел некоторые из них, и они мне очень понравились. В частности, они очень помогли в работе с AWS, с которым у меня было несколько сторонних проектов. Также вы можете найти несколько внутренних курсов внутри вашей компании. В частности, в EPAM Systems есть Школа архитекторов решений. В Тинькофф я помогаю руководить Архитектурной школой. Скорее всего, внутри вашей компании тоже есть какие-то курсы, но если нет… что ж, у нас есть предложения 🙂 Кроме того, в Интернете можно найти такие полезные материалы как System Design Cheat Sheet, System Design Primer, хороший канал на YouTube и многие другие. Чтобы попрактиковаться, вы можете порешать архитектурные задачи. *** Ладно, ребята! Это все на данный момент. Пожалуйста, оставляйте фидбек в комментариях ниже, не стесняйтесь отправлять пулреквесты или вопросы в репозиторий roadmap 🙂 Не забывайте улыбаться! 😊 Материалы по теме 🧔📈 Повышение до тимлида: дорожная карта 👨💼 Как стать тимлидом: дорожная карта
Данная статья является переводом. Оригинал доступен по ссылке.
Архитектор решений должен настраивать процессы и методы разработки таким образом, чтобы они поддерживали выполнение требований проекта.
Мы перечислим различные полезные навыки, которые могут быть изменены в будущем, в том числе благодаря вашему фидбеку. Не стесняйтесь давать обратную связь в комментариях.
Я считаю, что архитектор должен обладать как hard, так и soft skills. Начнем с последних.
Вы могли заметить, что архитектор много общается с заинтересованными сторонами, командами и другими архитекторами. Прежде всего архитектор должен уметь определять заинтересованные стороны и управлять ими. Архитектор будет сообщать им о рисках проекта, изменениях и т. д. Он или она также докажет, что их решения жизнеспособны для определенных заинтересованных сторон.
Очень важно уметь говорить публично и убеждать. Я много практикуюсь в этом. Например, если вам нужно продать решение своему техническому директору, вы подготовите презентацию и представите ее. Вы также можете поделиться опытом внутри компании, чтобы распространить знания о своем решении и провести несколько публичных выступлений на конференциях ради технического бренда. Архитекторы часто участвуют в обоих видах деятельности.
Также архитектор ведет переговоры с коллегами и заказчиком. Например, некоторые функции могут быть недоступны до определенного срока, поэтому архитекторы предлагают другие варианты или запрашивают дополнительные ресурсы.
Кроме того, конфликты между заинтересованными сторонами неизбежны и архитектор должен их разрешать.
Если архитектор не имеет ни малейшего представления о технологиях, с которыми он работает, ну, я бы не сказал, что это хороший архитектор. Обычно мы говорим о Т-образных инженерах, у которых есть отличное понимание и практический опыт работы как минимум с одной технологией, а также некоторый опыт работы с другими. Конечно, еще лучше, если у нас есть человек М-формы: глубокий опыт работы с несколькими стеками, такими как мобильная разработка, фронтенд и Java-микросервисы. Архитектор также может играть роль архитектора приложений для определенного компонента целевой системы и менторить разработчиков в процессе работы с этим компонентом.
Помимо самой технологии, архитектор должен знать, как построить систему на основе требований. Это включает в себя знание тактики для выполнения конкретных требований, касающихся доступности, масштабируемости, производительности, безопасности и т. д. Тактики проектирования системы ценны так же, как и шаблоны разработки.
Система должна где-то работать, поэтому знание облачных технологий в наше время просто необходимо. Архитектор должен разбираться в вычислительных компонентах, возможностях хранения данных, сетях, мониторинге и многих других вещах, доступных у облачных провайдеров. В список также входят инструменты для работы с потоковой передачей данных, машинным обучением, обменом сообщениями, большими данными и т. д. Я не говорю, что архитектор должен заниматься всем, однако, он должен, по крайней мере, понимать возможности и компромиссы.
Знаний самого облака недостаточно, так как существует несколько подходов к реальному запуску кода: от «голого железа» и виртуальных машин до управляемых контейнерных кластеров и лямбда-выражений. Понимание инструментов управления инфраструктурой и средами выполнения также ценно для архитектора.
Большое число систем обычно включает в себя компоненты пользовательского интерфейса, такие как веб-сайты и мобильные приложения, поэтому здесь также требуется понимание этой темы на высоком уровне.
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста» Интересно, перейти к каналу
Дорожная карта Solution Architect
Дорожная карта довольно обширная, и вам может потребоваться год или два, чтобы пройти ее полностью. Roadmap содержит ссылки на книги, курсы, статьи, видео и другие материалы, которые могут вам помочь.
Во-первых, нужно читать книги. У меня есть книги по криптографии, чистому коду, проектированию надежности сайтов, Kotlin, Kafka, управлению рисками, NoSQL, DevOps, компьютерным сетям и другие. Я пишу обзоры книг время от времени. Вы можете найти их по соответствующему хэштегу.
Читаю как бумажные издания, так и электронные. Из последних книг могу отметить Fundamentals of Software Architecture Нила Форда. Мне очень нравится эта книга, так как она очень хорошо коррелирует с моим опытом, рассказывая о правильных принципах работы с требованиями и поиску компромиссов. Написана очень живо, с книгами по архитектуре такое редко бывает 🙂
Еще одна книга, упомянутая в дорожной карте, — Software Architecture in Practice. Книга довольно академична, поэтому, если у вас возникнут проблемы с засыпанием, книга поможет вам в этом. Шутки в сторону: несмотря на то, что она немного скучная, она хорошо познакомит вас с тактиками проектирования системы, которая является неотъемлемой частью дорожной карты.
Эта книга в сообществе «Книги для программистов»
Что касается диаграмм и документации архитектуры, могу посоветовать Documenting Software Architecture. Она также немного скучная, однако дает хороший базис знаний для правильного документирования программных систем, в ней рассматриваются различные точки зрения, подходы к документации и т. д.
Последняя книга, которую я упомяну в этом посте, — это Designing Data Intensive Applications, также известная как «книга с кабанчиком». На сегодняшний день эта книга абсолютно необходима для прочтения, скоро я собираюсь сделать ее обзор.
Книга с кабанчиком
Книги — это хорошо, но нельзя стать архитектором, имея только теорию в голове. Нужно что-то делать голыми руками. И в этом могут помочь тренинги. Вы можете начать с некоторых облачных экзаменов по архитектуре для популярной облачной платформы. Я лично являюсь бывшим профессиональным облачным архитектором Google, и подготовка к экзамену обеспечивает отличную основу как для понимания облачных технологий, так и для разработки программных систем с их использованием.
Вы можете выбрать некоторые из курсов Coursera, например «Preparing for Professional Google Cloud Architect Exam». Я также очень рекомендую Acloudguru.com. Ребята создали много курсов для Amazon, теперь у них также есть материалы для GCP и Azure. Я прошел некоторые из них, и они мне очень понравились. В частности, они очень помогли в работе с AWS, с которым у меня было несколько сторонних проектов.
Также вы можете найти несколько внутренних курсов внутри вашей компании. В частности, в EPAM Systems есть Школа архитекторов решений. В Тинькофф я помогаю руководить Архитектурной школой. Скорее всего, внутри вашей компании тоже есть какие-то курсы, но если нет… что ж, у нас есть предложения 🙂
Кроме того, в Интернете можно найти такие полезные материалы как System Design Cheat Sheet, System Design Primer, хороший канал на YouTube и многие другие.
Чтобы попрактиковаться, вы можете порешать архитектурные задачи.
***
Ладно, ребята! Это все на данный момент. Пожалуйста, оставляйте фидбек в комментариях ниже, не стесняйтесь отправлять пулреквесты или вопросы в репозиторий roadmap 🙂
Не забывайте улыбаться! 😊
Ваш адрес email не будет опубликован. Обязательные поля помечены *
Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.
Δ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.