938
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

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

Время чтения 3 минуты
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
938
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Привет! Я Олег Никитаев, архитектор компании «Вайвис», которая разрабатывает цифровые решения для бизнеса. Я расскажу о своей профессии, которой занимаюсь 3 года. До этого я 7 лет работал разработчиком SAP.

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

Мой путь в программную архитектуру

Интерес к компьютерам я проявлял еще в молодости. Поэтому выбрал образование в области информатики и поступил в Московский технический университет связи и информатики. Я учился по специальности «программное обеспечение вычислительной техники и автоматизированных систем». Уже во время учебы в университете начал работать в компании Х5 Retail Group на должности консультанта отдела поддержки SAP-логистики.

Затем я перешел в команду разработчиков SAP, где специализировался на интеграционных решениях. Спустя 7 лет я задумался о том, что хочу двигаться дальше и работать в сфере программной архитектуры. Причиной послужили желание вырасти в профессиональном и финансовом плане и тяга к новым знаниям.

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

Мне пригодились навыки программирования, которые я развивал на ранних этапах карьеры. Переходя на роль архитектора, я уже умел работать с различными языками и глубоко понимал алгоритмы и структуры данных. Я постоянно укреплял свой технический фундамент: изучал новые языки, структуры данных и алгоритмов.Также я научился разрабатывать более гибкие и эффективные решения, углубив знания в области архитектурных паттернов и шаблонов проектирования.

Скилы программного архитектора

Архитекторы ПО пишут ТЗ на создание продукта: разрабатывают общую архитектуру программных систем, определяют ключевые структуры, модули и взаимодействие компонентов, чтобы обеспечить высокую производительность, масштабируемость и надежность решения. Они также работают с бизнес-заказчиками и разработчиками для определения требований и принятия решений о технологических стеках и архитектурных паттернах. Каждый проект — уникальная головоломка со своей архитектурой. Это всегда интересно. 

Программная архитектура играет фундаментальную роль в разработке продуктов. Она может существенно повысить эффективность и долгосрочную устойчивость приложений. Моя цель — создать архитектуру, которая отвечает потребностям бизнеса и обеспечивает высокую производительность.

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

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

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

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

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

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

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

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

Чем отличается хороший архитектор от плохого?

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

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

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

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

Как я развиваюсь в профессии

Мне нравится учиться, и в моей работе крайне важно постоянно развиваться, оставаться в курсе технологических трендов. Читаю технические блоги, статьи и книги о разработке и архитектуре программного обеспечения. Когда я решаю, что учить и как учиться, то иду от того, что мне сейчас нужно и что пригодится в будущем. Важно, чтобы информация была от авторитетных источников, и я также обращаю внимание на отзывы и рекомендации от других профессионалов. Выбор формата  — видео, подкасты, книги, блоги, сайты и т. д. — зависит уже от личных предпочтений. Лично я предпочитаю блоги и сайты.

Могу посоветовать классические книги в области архитектуры и разработки ПО:

  1. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Эта книга представляет из себя классический справочник по шаблонам проектирования, которые можно применять для создания гибких и эффективных архитектур.
  2. Patterns of Enterprise Application Architecture by Martin Fowler. Книга Фаулера исследует шаблоны архитектуры, применимые в предприятии, и предоставляет понимание, как они могут быть использованы для создания сложных систем.
  3. The Pragmatic Programmer: Your Journey to Mastery by Andrew Hunt and David Thomas. Эта книга предлагает практические советы для разработчиков и архитекторов, помогая им совершенствовать свое мастерство.
  4. Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. Книга об архитектуре, ориентированной на бизнес-процессы, и о том, как она может быть применена для решения сложных задач.

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

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

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

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

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

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

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

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

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

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

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники