Архитектор и разработчик в чем разница
Кто такой архитектор в ИТ и как им стать
Сам код не пишет, а другие — пишут.
Если нужно построить здание, компания нанимает архитектора. Он придумает, как здание будет выглядеть, из чего состоять и как им будут пользоваться. В разработке тоже есть архитекторы, и делают они примерно то же самое: решают, как в целом будет работать программа и какие технологии будут использоваться.
Что делает архитектор
Задача архитектора в ИТ — продумать и принять ключевые решения по проекту:
👉 Архитектор не лезет в код, а работает с проектом на верхнем уровне — идей, смыслов и стратегических решений. Например, одна из задач архитектора — выбрать такой набор языков и библиотек, чтобы он не устарел, пока пилится продукт, и эти языки поддерживались ещё несколько лет после выпуска проекта.
С этой точки зрения будет глупо выбрать основным языком Python 2.x, потому что официальная поддержка уже прекращена. Даже если в компании есть команда гениальных программистов именно на Python 2.x, то проект всё равно лучше делать на третьей версии.
Архитектор и программисты
Хоть сам архитектор не пишет код (или делает это в исключительных случаях), но его работа влияет на всех остальных членов команды:
Какие бывают архитекторы ПО
Среди архитекторов в ИТ тоже есть свои специализаци и направления.
Например, если компании нужно выбрать язык, технологии и фреймворки, чтобы написать самую быструю программу, то зовут software-архитектора. Ещё он нужен, когда в программе планируется много разных модулей и их нужно грамотно соединить друг с другом.
Если задача — интегрировать программу в другую большую систему или развивать уже готовый продукт, то здесь будет больше полезен solution-архитектор. Он прикинет все возможные варианты, просчитает их плюсы и минусы и найдёт оптимальное решение.
Отдельное направление — архитектор баз данных. Он требуется, когда в проекте планируется сложная база с кучей связей, и от того, как она будет спроектирована, зависит быстродействие и надёжность. Такие архитекторы изучают требования к данным, к их обработке и исходя из этого строят идеальную схему базы под этот конкретный проект.
Зарплата архитектора
По данным Хабр Карьеры, средняя зарплата архитектора ПО —
275 000 рублей в месяц.
Интересно, что джуниоров среди архитекторов нет — вакансии начинаются от мидла, но в основном требуются сеньоры.
Как им стать
Обычно архитекторами становятся сеньоры, которые давно и хорошо знают свою область, технологический стек и различные стандарты сборки для разных проектов. Им уже неинтересно просто программировать — у них достаточно знаний, чтобы заранее предвидеть возможные проблемы в разработке всех частей программы и сразу их учесть в решении.
Поэтому ответ на вопрос «Как стать архитектором» будет такой: изучайте свою и соседние специальности настолько хорошо, насколько это возможно, участвуйте во многих проектах и нарабатывайте опыт.
👉 Архитектор = сеньор + опыт + умение видеть картину в целом.
В чем разница между программным архитектором, инженером-программистом и разработчиком программного обеспечения (программистом)? [закрыто]
До этого я всегда видел «инженеров-программистов» как титул для опытных программистов и лидеров команды. Но где же тогда «Архитектор ПО» вписывается и что именно они делают? Я читал описания CNN, но они на самом деле не удовлетворяют меня, поэтому я предполагаю, что могу получить более подробные и опытные описания от потрясающей базы пользователей здесь.
Заранее благодарим за любые полученные ответы.
3 ответа
По моему опыту, по крайней мере, здесь, на австралийском рынке, термины Programmer, Software Developer и Software Engineer более или менее взаимозаменяемы (я занимал все три для выполнения той же самой фактической работы).
«Директор по разработке программного обеспечения», описанный в вашей CNN-ссылке, не совпадает с «Software Engineer». Это больше похоже на роль менеджера технических проектов высокого уровня. Такой человек на самом деле не программировал бы, если вообще. Эта роль имеет мало общего с вашим типичным «инженером-программистом», который часто является просто прославленным названием для программиста с промежуточным и старшим уровнями.
TL; версия DR :
Здесь, в Великом штате Техас, многие компании склонны уклоняться от термина «инженер-программист», потому что в Техасе мы лицензируем инженеров, и на самом деле существует такая вещь, как «Запечатанный» профессиональный инженер, программное обеспечение ( http://www.tbpe.state.tx.us/eng_req.htm ).
Я никогда не встречал никого, и я не знаю никого. Разумеется, гильдия Инженера очень хотела бы ограничить конкуренцию, требуя лицензий для написания «привет мир», но этого еще не произошло.
«Разработчик ПО» чаще используется для человека, чья основная работа заключается в написании программного обеспечения.
У компаний также есть немного более легкое время для решения проблем Visa для «разработчиков программного обеспечения», а не «инженеров-программистов».
Я работал только в стартапах в течение последних 15 лет, поэтому я не привык к кучке тонко дифференцированных названий должностей, но в целом программное обеспечение «Архитектор» является старшим разработчиком, который умеет выкладывать «большой рисунок» проекта программного обеспечения. Каждый архитектор, которого я когда-либо знал, тратит много времени на написание кода, как и все остальные, особенно после согласования основного проекта.
ИТ-архитектор. Как стать тем, на кого не учат?
Привет, Хабр! Меня зовут Сергей Терехин, и я — системный архитектор. Даже искушенные в ИТ люди не всегда знают специфику моей работы. Расскажу, как меня угораздило стать системным архитектором, чем занимаюсь, а также про прелести, боли и перспективы этой профессии.
Системный архитектор — это скорее роль, чем конкретная должность. Этой профессии не учит ни один вуз. А парадокс в том, что эти самые мифические системные архитекторы крайне востребованы и без их участия нормально не смог бы функционировать ни один крупный бизнес, базирующийся на ИТ.
Если вы считаете, что мир кровавого Enterprise загибается и однажды все корпоративное ИТ будет из облака, в вас поднимается волна возмущения и руки тянутся к помидорам, чтобы запустить в автора… Подождите. В реальности монстры российского бизнеса пока предпочитают строить свои ИТ иначе. И роль системного архитектора при таком подходе к инфраструктуре очень велика. Эти люди анализируют задачи, которые бизнес ставит перед ИТ, что именно нужно сделать и как лучше достичь поставленных целей. Они выбирают инструменты, оптимально подходящие в той или иной ситуации, придумывают архитектуру будущего вычислительного комплекса в целом, а иногда и каждого отдельного модуля в нем. И самое главное — системные архитекторы видят общую стратегию внедрения инфраструктуры и следят, чтобы все части выбранного решения укладывались в эту общую канву.
Так чем же они, то есть мы, по факту занимаемся?
Три вида архитекторов
Проще всего это понять, разобравшись, какие бывают архитекторы в ИТ.
Есть наиболее распространённое и понятное определение «архитектора решений» или «solution-архитектора» — это специалист, который понимает, как устроена и должна работать определенная прикладная система (веб-сервис, социальная сеть, ERP-система и пр). Он держит команды разработки в рамках техзадания и помогает создавать решения, фокусируясь на бизнес-задаче, а не просто на функциональных требованиях к исполняемому коду. Любое приложение должно на чем-то работать, а данные, которым оно оперирует, храниться долго и без потерь. Solution-архитектор может только сформулировать, какие ресурсы требуются и как быстро должен подниматься упавший сервис. Кто же сделает это реальностью?
Именно здесь подключается «системный архитектор». Он как раз гуру в создании ИТ-инфраструктуры, включая ЦОДы, железо, сети, различных системы хранения и серверные платформы. Его основная задача — подготовить инфраструктуру к тем требованиям, которые диктуют ей приложения. В сферу ответственности системного архитектора может входить множество систем, которые так или иначе относятся к инфраструктурному уровню, обеспечивая необходимую производительность, надежность и доступность. Но сути это не меняет — системный архитектор придумывает, как будет выглядеть ИТ-инфраструктура в целом и что она должна «уметь».
В идеале синергия системного и solution-архитекторов должна давать компании тот самый импульс для развития. В действительности между ними — бездна. Архитекторы решений не знают, как функционирует инфраструктура, а системные архитекторы часто не заинтересованы вникать в работу ПО. Именно поэтому над ними появляется «enterprise-архитектор» — супермен, способный соединить два сегмента архитектуры. Это не какой-нибудь отдельный «биологический» вид, а скорее новая эволюционная форма развития системного и solution-архитектора. Обычно он соединяет два берега над той самой бездной.
Мой личный опыт
Лично я начинал с простого инженера. Еще будучи студентом, работал эникейщиком, потом руководил маленьким отделом из трех человек в компании в Приморье. После перебрался в Питер и там впервые столкнулся с полноценной ИТ-инфраструктурой, став руководителем группы эксплуатации серверов и систем хранения. Через какое-то время меня притянула Москва. За несколько лет я стал руководителем дирекции ИТ-инфраструктуры, где кроме должности и нового масштаба задач мне вручили набор административных и, как я потом уже понял, архитекторских задач. Разбираться с этим приходилось на ходу, а многое просто брать и делать своими руками. Часто впервые.
По факту я уже тогда был системным архитектором, но без титула; выполнял определенные функции не для заказчиков, а для работодателя, конструируя системы виртуализации, проектируя доменные леса с нуля, перестраивая сети хранения в новую топологию. Оказавшись в компании «Инфосистемы Джет», я наконец-то официально стал носить гордое звание системного архитектора.
Футболисты и шахматисты
Наша компания ведет много крупных и сложных проектов, и поэтому у нас в штате я далеко не единственный системный архитектор. Оказывается, достичь этой позиции можно разными путями. Например, я — «футболист». Всю свою карьеру я «играл на поле»: бегал по ЦОДам, физически имел дело с оборудованием, знал его особенности, решал проблемы в реальном окружении. Но бывают прекрасные архитекторы «шахматисты». Они развиваются из глубоких теоретиков, которые изначально занимались только проектированием и не имеют богатого «полевого» опыта.
У каждого карьерного пути свои плюсы и минусы. Однажды я участвовал во встрече, где мои коллеги архитекторы готовили таблицу сравнения по двум системам резервного копирования. Мне это было странно, потому что, как практик, я прекрасно знал, насколько одно решение лучше другого. Да что там — на голову выше! Практика дает хорошую опору в принятии решений. В то же время, теоретики более беспристрастно оценивают все возможные опции, особенно когда все запутано и откровенно плохо. Так что разница между практиками и теоретиками не сказывается на качестве принятых решений.
В конечном счете сегодня я, как системный архитектор, отношусь как раз к теоретикам. После «полевой» работы ИТ-инфраструктуре средних размеров, я перешел в высшую лигу, но не «футбольную», а «шахматную». Какое-то время к этому пришлось привыкать: менять характер своего мышления и много работать с людьми.
Какие навыки нужны ИТ-архитектору?
Умение абстрагироваться
ИТ-архитекторы разрабатывают сложные решения под уникальные задачи бизнеса. На рынке нет типовых кейсов, которые можно использовать всегда и везде. Как в шахматах всего из 32 фигур может получиться 10 120 шахматных партий, так и одинаковый набор решений и продуктов можно объединить в различные ИТ-системы, иметь разную структуру и в итоге получить уникальный функционал. ИТ-архитектору важно развивать гибкость мышления, чтобы взглянуть на проект под другим углом, суметь разбить его на логические части и найти наиболее подходящее решение.
Как работают IT-архитекторы – наши примеры и задачи
Архитектор – незаменимый специалист при создании или аудите сложных IT-решений. Его задачи – заложить фундамент проекта, обеспечить гибкость и снизить риски, а в конечном итоге – обеспечить бизнесу быструю разработку и независимость в дальнейшем выборе подрядчиков.
Архитекторы особенно нужны в крупных IT-компаниях, которые ведут много проектов и для каждого выбирают оптимальный технологический стек, с учетом долгосрочной перспективы развития, плюсов и минусов каждого варианта.
Мы в SimbirSoft развиваем собственный архитектурный комитет – в нем уже 54 опытных разработчика. Делимся опытом, чем у нас занимаются архитекторы и на каких проектах они нужны.
Задачи IT-архитектора
Архитектура – это технологическая база IT-продукта. IT-архитектор, или системный архитектор – это, прежде всего, опытный разработчик. Он знает, когда полезно использовать определенную технологию, а самое главное – когда этого не нужно делать и какие есть риски.
Возможность адаптации продукта к новым требованиям бизнеса, даже если в начале процесса проектирования они не были известны в полном объеме.
Например, при создании коробочного решения для страховых компаний мы изначально заложили 4 основных вида полисов, при этом предусмотрели возможность быстро добавить и любые другие необходимые полисы.
Адаптация к ограничениям системы и соответствие техническим и операционным требованиям: по технологическому стеку, работе с персональными данными, Big Data, большим количеством интеграций.
Обеспечение при проработке архитектуры оптимальных значений атрибутов качества продукта.
Рассмотрим несколько ситуаций, в которых необходима проработка IT-архитектуры.
Когда нужен IT-архитектор
По мере развития продукта зачастую возникают новые требования, а старых решений уже не хватает.
Бывает и так, что небольшая инхаус-команда работает в рамках одного технологического стека, но для решения бизнес-задач предстоит интегрировать или разработать новую функциональность и при этом подобрать оптимальные технологии реализации. Для этого разработчикам может потребоваться помощь, поскольку сейчас технологии меняются каждые полгода, сложно быть одновременно в курсе всего и иметь экспертизу во всех языках и направлениях.
В таких ситуациях обычно обращаются к опытной команде архитекторов, которая «горит» своим делом, накопила разносторонний опыт и продолжает развивать компетенции в различных технологиях.
Как правило, бизнес заказывает разработку архитектуры в IT-компании в следующих случаях:
Как выбрать архитектуру
При выборе архитектурного решения учитывают множество факторов, в том числе ожидаемые сроки и стоимость разработки, поддержки, развития продукта. При этом нужно учитывать плюсы и минусы каждого варианта.
Коробочное или кастомное решение?
Кастомная разработка с нуля требует времени и тщательного планирования. «Коробки» – например, такие как «1С: Бухгалтерия» – подходят для компаний с простыми и стандартными бизнес-процессами, но их возможности развития ограничены. При необходимости дальнейшей кастомизации коробка может обойтись даже дороже, чем разработка с нуля, сразу заточенная под нужды компании.
Монолитная или микросервисная архитектура?
Риски: при увеличении функциональности приложения и количества активных пользователей монолит может перестать справляться с нагрузкой, и срок доставки новых фич будет долгим.
Риски: сложность разработки влечет за собой дополнительные требования к квалификации сотрудников. Для микросервисов наличие CI/CD – обязательное условие. Время на разработку будет выше, чем при работе с монолитом (при условии, что архитектурная структура монолита позволяет быстро вносить изменения).
Пример реализации
Один из наших клиентов-банков использовал коробочную систему дистанционного банковского обслуживания (ДБО). Добавить новые функции (и даже передвинуть кнопки) можно было только с помощью вендора. А значит, во-первых, релизы выходили редко (один раз в квартал), во-вторых, вся экспертиза была сосредоточена у вендора, а не в банке. Кроме того, из-за сложной балансировки клиентов монолитной архитектуры приложение работало со сбоями. Из-за этого банк обратился к нам для проработки нового решения.
Решением стала разработка новой микросервисной архитектуры ДБО, в которой каждый микросервис имеет отдельную базу данных, обеспечивая доступность приложения в любой момент. Результаты – в 5 раз меньше сбоев уже на старте, возможность выпускать несколько релизов каждую неделю. При этом сохранение экспертизы на своей стороне позволило банку дальше развивать продукт самостоятельно или с привлечением любого подрядчика.
Как работает архитектурный комитет
У разных IT-компаний свои способы работы с архитектурой. В небольших монопродуктовых командах у специалистов есть возможность напрямую посоветоваться с коллегами, опытными в тех или иных технологиях. А когда проектов много, появляется необходимость накапливать экспертизу, поскольку при переключении сотрудников с проекта на проект теряется ценный технический контекст. Выстраивая этот процесс, мы снижаем риск ошибок и неоптимальных решений.
У нас в разработке параллельно десятки проектов, и мы стремимся поддерживать внутреннее комьюнити экспертов и обмен опытом. Для этого мы создали архитектурный комитет – отдельную группу со своим руководителем.
Архитектурный комитет – это команда, в которую входят наиболее опытные разработчики Backend, Frontend, Mobile. Сейчас у нас 54 таких специалиста, их число постепенно растет.
Мы уже писали на Хабре, как мы разбираем входящие запросы и оцениваем сроки разработки. Расскажем, как в этом участвуют архитекторы.
Этапы работы
В ходе видеопрезентации заказчику архитектор рассказывает о результате своей работы, а заказчик в реальном времени задает все интересующие его вопросы.
Следуя описанной выше схеме работы, в каждом решении мы учитываем опыт, накопленный архитектурным комитетом при реализации предыдущих проектов.
Несколько участников архитектурного комитета SimbirSoft
Вывод
С помощью архитектурного комитета мы проработали уже более сотни проектов. По нашим наблюдениям, такой подход к архитектуре обеспечивает IT-компании и заказчику несколько важных преимуществ:
Большой гайд по профессии архитектора решений (+список полезных ссылок)
Еще лет 10 лет назад роль архитектора решений (Solution Architect) на проектах выполняли сами разработчики. Теперь это отдельная профессия, довольно востребованная и активно обсуждаемая. Вместе с коллегами-архитекторами подробно разбираемся во всех деталях и рассказываем, как стать архитектором в EPAM.
Начнем с азов: что означает слово «решение» в контексте IT?
Это продукт или комплекс продуктов, который решает конкретную техническую или бизнес-задачу. Решение нужно бизнесу, чтобы увеличить прибыль: оно либо повышает доходы, либо снижает издержки — к примеру, автоматизирует бизнес-процессы и тем самым снижает расходы на оплату труда. Решение встраивается в архитектуру предприятия и связывается с другими ее компонентами. Большинство проектов EPAM направлены на создание решений: разработка от начала и до конца или отдельных компонентов.
Выходит, на каждом проекте по разработке нужен архитектор?
Алексей Кожемякин (Director, Technology Solutions, EPAM Belarus):
«Как только инженер задумался о нуждах бизнеса — он ступил на путь Solution Architect».
Почему раньше обходились и без архитекторов?
Роль архитектора решений на проектах играла вся команда целиком, несколько ее членов или один разработчик с высокой квалификацией. Он мог быть сразу и разработчиком, и проектным менеджером, а заодно и архитектором. Со временем (и опытом) пришло понимание, что создание архитектуры слишком важная и объемная задача, чтобы заниматься ей по остаточному принципу.
В отличие от разработчика, архитектор мыслит абстракциями более высокого уровня. Он размышляет не о взаимодействии классов, а о взаимодействии компонентов решения – приложений, веб-сервисов и так далее. Хотя, если требуется, он должен без проблем «провалиться» в детали кода. Кроме этого, бизнес-сторона решения для архитектора важна так же, как и техническая. Разработчики часто фокусируются на технологиях и новых библиотеках, с которыми хочется познакомиться; архитектор же отталкивается от интересов и потребностей заказчика.
Так кто главнее: архитектор или разработчик?
Архитектура и разработка – разные и равноправные направления карьерного пути. Архитектор мыслит более абстрактно, но при этом реже прикасается к коду. К тому же не всегда продумывает все до мелких деталей. Часто команда разработки реализует архитектурную концепцию самостоятельно. А качественно реализовать дизайн решения – это так же важно, как и придумать этот дизайн.
Конкретнее: какими задачами занимается архитектор решений?
В первую очередь архитектор анализирует бизнес-цели заказчика, связанные с новым продуктом. Фокусируется на требованиях, которые повлияют на архитектуру, на программную часть решения и его компоненты. Затем проектирует решение и продумывает его дизайн. Архитектор определяет, из каких компонентов будет состоять продукт, нужно ли разрабатывать его составляющие с нуля или будет уместнее использовать готовые компоненты «из коробки».
Для некоторых частей решения SA делает proof-of-concept – небольшую экспериментально-исследовательскую задачу, чтобы понять, возможно ли реализовать тот или иной функционал.
Архитекторы участвуют в предпродажах, консультируют клиентов, проводят аудит архитектуры существующего решения – оценивают, насколько она эффективна для поставленных задач, можно ли ее оптимизировать, и если да, то как.
В EPAM, например, у архитекторов есть возможность часто менять проекты, что позволяет поработать в разных областях и сферах, напрямую общаться с людьми, непосредственно вовлеченными в основные бизнес- и технологические процессы в компании.
Владимир Казакевич (Senior Solution Architect, EPAM Belarus):
«Каждый понимает слово «бизнес» по-своему. И задача архитектора решений — вникнуть в бизнес заказчика настолько глубоко, насколько это возможно, а главное — результатом его работы должны быть решения, «заточенные» под конкретных заказчиков и их конкретные бизнес-проблемы».
А есть ли какие-то еще архитекторы?
Помимо архитекторов решений это:
Enterprise Architect – создает и поддерживают архитектуру целого предприятия, которая состоит из множества решений.
System Architect – выстраивает инфраструктурную сторону решения, фокусируясь на инфраструктурных облачных сервисах, на ПО, необходимом для поддержки решения после его развертывания.
Quality Architect – выстраивают стратегию тестирования и определяет подход к управлению качеством создаваемого продукта.
В EPAM, например, архитекторы решений пока в большинстве.
Кто может стать архитектором решений?
Роман Шрамков (Director, Technology Solutions, EPAM Ukraine):
«Для того, чтобы бизнес и менеджмент увидел возможности для применения технологий, нужен настоящий гик, который объяснит им какие в этом преимущества и как это можно сделать».
Помимо разработчиков, попробовать себя в архитектуре решений могут бизнес-аналитики, деливери-менеджеры, проектные менеджеры, ресурсные менеджеры, а также тестировщики-автоматизаторы: для них есть даже специальная поддисциплина — Solution Architecture in Test Automation.
Cтоит отметить, что ожидания от такого специалиста у компании и коллег действительно серьезные. Если ошибку в разработке отдельного компонента можно исправить, то неверное решение и плохая архитектура – могут обернуться огромными потерями для обеих сторон.
Дмитрий Гурский (Lead Solution Architect, EPAM Belarus):
«У того, кто хочет стать архитектором, прежде всего, должно быть желание что-то создавать, строить. И это не навык, который можно прокачать, это внутренняя потребность — либо она есть, либо нет».
Какие образовательные программы для будущих архитекторов есть в EPAM?
Так как Solution Architect, как отдельная должность, появилась на рынке сравнительно недавно, ее понимание в разных компаниях отличается. В EPAM создан центр компетенций по архитектуре, команда которого формирует единое представление об этой роли, основываясь на опыте работы с клиентами, их бизнес-задачах и ожиданиях, лучших практиках, внутренних процессах и системах.
Программа, которую разработали практикующие архитекторы и СTOO компании постоянно обновляется. С одной стороны она учитывает индивидуальный опыт сотрудника, а с другой позволяет выбрать образовательный модуль кастомно.
Для начала можно присоединиться к Architecture Excellence Initiative – глобальному архитектурному сообществу EPAM, чтобы быть в курсе последних новостей и тенденций в области архитектуры. Участники комьюнити еженедельно общаются с архитекторами из более чем 25 стран. Оперативный обмен кейсами, доступ к обширной библиотеке и вебинарам, собранной коллегами – это сюда.
Дальше – обучение в Solution Architecture School. Это уникальная программа, которую в компании создавали с нуля: групповые занятия с лекциями и практикой ведут действующие архитекторы компании. Здесь все как в обычной школе – домашние задания, включающие разработку дизайна, постоянное общение с преподавателями и защита контрольной выпускной работы.
Что делать, если пришел в EPAM уже архитектором?
Архитекторы решений, которые пришли в компанию, могут пройти программу Solution Architecture Basics: это своеобразный помощник архитектора, включающий базовые темы, информацию о возможностях профессионального и карьерного развития, полезные контакты и гайды по инфраструктуре. Все, что поможет быстрее адаптироваться в компании.
Архитекторам буду рады в Global Solution Architecture Team – команде экспертов, которые активно участвуют в развитии дисциплины: разрабатывают лучшие практики в компании, координируют глобальные образовательные программы для архитекторов, консультируют коллег и клиентов.
Ну, а если не хочется останавливаться на достигнутом, можно стать студентом Solution Architecture University — трёхуровневой программы, которая помогает опытным архитекторам синхронизировать знания и заговорить на едином языке. У студентов есть возможность пройти сертификации в Software Engineering Institute, IASA Global и других ассоциациях, с которыми сотрудничает EPAM.
Еще одна инициатива — Solution Architecture Mentoring — менторами в которой выступают опытные архитекторы, технические директора и CTO компании. Менти вовлечены в переговоры с клиентами, вместе с наставниками работают над реальными проектами и задачами. Программа помогает архитекторам «прокачаться» в профессии и даже вырасти до уровня CTO.