Эта история - одна из серии статей, посвященных различным техническим позициям в отрасли. Чтобы увидеть Справочник / Оглавление, посетите эту статью здесь:



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

Главный или ведущий архитектор может называться главным или главным архитектором.

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

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

Часто архитекторы создают первоначальные доказательства концепции и минимально жизнеспособные продукты (MVP), а затем оставляют полную реализацию / масштабирование приложения остальным командам разработчиков. В некотором смысле они почти как мини-технический директор каждого проекта, который они курируют.

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

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

Чтобы увидеть информацию о программистах, посетите мою статью:



Необходимый

Все те же знания, что и у инженера-программиста, плюс:

  • Шаблоны проектирования приложений. Пожалуй, каждый инженер-программист должен знать их, но только люди, начинающие проекты с нуля, могут реализовать эти основы.
  • Архитектура микросервисов. Многие компании переходят от монолитной архитектуры к микросервисной архитектуре. Архитектор должен знать, как собирать части приложений, используя различные инструменты и сервисы.
  • Проектирование системы - понимание компромиссов и сильных сторон выбора дизайна при создании приложения или платформы является ключевым навыком для архитекторов программного обеспечения.
  • Сетевое взаимодействие среднего / продвинутого уровня, облачные знания. Соответствует описанному выше, но необходимы более глубокие знания о том, как взаимодействуют части приложения.
  • Навыки общения и взаимодействия. Часто архитекторы программного обеспечения работают со многими заинтересованными сторонами (например, менеджерами, директорами, командой инженеров, клиентами…). Общение - ключевой навык.

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

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

Категории / Отличия

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

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

Зарплата

Более высокая зарплата имеет смысл, учитывая широкий спектр требуемых знаний и опыта.

Карьерный рост

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

Как и в разработке программного обеспечения, уровень старшинства зависит от компании.

Более того, для архитекторов разнообразие ролей и обязанностей делает переключение карьеры на другие должности (например, DevOps, менеджмент, продажи и т. Д.) Очень жизнеспособным.

Образовательные ресурсы

Опять же, посмотрите другие мои статьи о программной инженерии и программном образовании:





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

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

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

Также см. Ссылки в разделе «Обязательно» выше.

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



Другие ссылки:

Отзывы и мнения

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

[Мне нравится] решать проблемы! Предоставление пользователю того, что улучшает то, что у него есть сегодня, перепроектирование медленной системы на быструю или разбиение большого уродливого кода на хорошо продуманные системы . - Джерри Клинесмит (интервью провел Роберт Халф)

«Мне никогда не бывает скучно. Я всегда изучаю новые технологии. Это исследовательский аспект, который делает его таким увлекательным ...

[Но] технологии развиваются так быстро, что то, что работало два месяца назад, может больше не работать. Так что вам всегда нужно идти в ногу со временем, потому что вы всегда хотите, чтобы ваше программное обеспечение работало ». - Маллика Айер (интервью провел Марк Феффер, Dice)

Это, наверное, была самая сложная часть моей карьеры архитектора. Составление официальных документов, в которых оценивалось альтернативное решение, которое Intel хотела продвигать, когда мы поняли, что наш продукт будет единичным, а не решением в будущем, и поэтому отменили его… - Кристофер Кларк

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

В таких изменчивых средах именно такие« сквозные роли, как архитектор, наиболее подвержены последствиям организационных грехов . И, честно говоря, не нужно много времени, чтобы превратить жизнь Архитектора в жалкий путь, вымощенный терниями чистого разочарования ». - Себастьян Гебски

Заключение

Я что-то упустил? Буду признателен за ваш отзыв!

Хотите, чтобы вас цитировали? Расскажите мне, что вы любите и ненавидите в разработке программного обеспечения, и есть шанс, что я добавлю это в эту историю!

Оставайтесь на связи! Подписывайтесь на нас на YouTube и присоединяйтесь к нашему списку рассылки.