Разработка в Haulmont — это постоянное разнообразие в проектах и технологиях. Программисты нашей компании решают уникальные задачи в зависимости от подразделения. А это значит, мы продолжаем серию материалов «Как это устроено в Haulmont», где рассказываем о работе в IT-компании.
В прошлый раз мы рассказывали о разработчиках СЭД ТЕЗИС и Jmix (ex-CUBA Platform), а сегодня познакомим вас с командой заказной разработки — подразделением Custom Solutions.
Custom Solutions: крупным планом
Custom Solutions занимается созданием заказных решений для компаний из разных стран мира. Нашими клиентами являются концерн РосЭнергоАтом, Российские космические системы (РКС), Высшая школа экономики и другие крупные заказчики. Многих мы не можем назвать из-за NDA.
В основном мы специализируемся на разработке корпоративных систем и порталов, автоматизации и оптимизации бизнес-процессов, а также на интеллектуальном планировании. Наши программисты создают порталы и мобильные приложения, а также занимаются интеграцией различных систем. Заказные проекты бизнес-юнита относятся к совершенно разным отраслям: образование, банковский сектор, такси, здравоохранение, ритейл и даже организация круизов.
Custom Solutions — это всегда разнообразие технологий и инструментов. В основе большого числа наших проектов лежит собственная разработка Haulmont — фреймворк Jmix (ex-CUBA Platform). При этом в бизнес-юните растет число проектов, где не используется платформа. Все чаще разработчики предпочитают микросервисную архитектуру монолиту и используют соответствующие технологии: Spring Boot, Kafka, ZooKeeper, Apache Service Mix. Такое разнообразие позволяет команде программистов, с одной стороны, реализовать все пожелания заказчика, с другой — накопить экспертизу в области технологий разработки.
Евгений Дегтярев
руководитель направления заказной разработки
Разработчики Custom Solutions — это специалисты широкого профиля, они работают над сложными проектами и применяют разные технологии. Например, сейчас мы занимаемся внедрением программно-аппаратного решения в систему «умных дорог» Самарской области. Для этого мы используем нейросети, BigData, сложную систему передачи сигналов и компоненты, связанные с видеоаналитикой. А ведь это — только один проект.
Парадоксально, но чем глубже мы погружаемся в определенную сферу бизнеса, тем более широкие горизонты знаний нам открываются. Каждый новый шаг требует от нас усилий, заставляет изучать что-то новое. Кажется, что этот процесс может продолжаться бесконечно, и у саморазвития нет границ
А еще, этим летом я стал ментором. Мой джуниор-разработчик работает на проекте для крупной энергетической компании из России и имеет базовые знания Java-разработки и платформы Jmix (ex-CUBA Platform). Я помогаю ему писать код и принимать программные решения, отвечаю на все его вопросы и иногда провожу code review.
В Custom Solutions у нас есть полная свобода в общении со всей командой подразделения. Разработчик всегда может предложить более эффективные решения задачи и технологии, внести правки в дизайн или код и даже инициировать прямое общение с заказчиком. Такое насыщенное общение с коллегами очень располагает к активной работе.
Мне нравится писать код и думать, как с его помощью я могу решить проблемы заказчика. На самом деле, то, как разработчик подходит к своей работе, определяет не только качество его проекта, но и всего бизнеса. Так что моя работа — это не только программирование, а нечто большее.
Команда разработки: взгляд изнутри
Для каждого проекта формируется отдельная команда. Как правило, в нее входит от 3 до 10 разработчиков. Они решают много сложных инженерных задач, в том числе, связанных с проектированием архитектуры приложения, дизайном взаимодействия с пользователем и выбором смежных технологий. Например, сейчас бизнес-юнит активно увеличивает команду Front-End/React Developers. Разработка пользовательского интерфейса — это всегда творчество. Наши программисты пишут код с использованием TypeScript, HTML, SCSS, а также создают модули для встраиваемой клиентской системы.
Если проект небольшой и достаточно стабильный, в команде может быть всего один разработчик. Для программиста такой опыт очень пригодится в дальнейшем карьерном росте. На проекте он учится самостоятельно принимать решения, проектировать систему и общаться с заказчиком. А уже через полгода вполне сможет возглавить команду других разработчиков.
Кстати, программисты внутри проекта не обязательно находятся в одном офисе и даже городе. Сотрудники Haulmont работают из Самары, Тольятти, Саратова и Воронежа, поэтому часто общаются дистанционно. Это позволяет объединить разработчиков в команду, исходя из их опыта, интересов и даже уровня владения английским языком.
Случается, что в процессе работы формируются смешанные команды, которые состоят из специалистов Haulmont и сотрудников заказчика. Но даже в этом случае клиент обычно отвечает за бизнес-аналитику и руководство проектом, а разработкой занимаемся мы.
В бизнес-юните знают: у каждого разработчика — свой распорядок дня. Если он эффективно выполняет свою работу в срок, то команда не будет его беспокоить. Главное, договориться с руководителем проекта.
Адаптация новичков и карьерный рост
Развитие сотрудников, особенно новичков — стратегическая задача Haulmont и самого бизнес-юнита, поэтому мы уделяем много внимания внутреннему обучению.
Для студентов и программистов с небольшим опытом в компании есть курс по разработке корпоративных приложений (при этом они официально устраиваются на работу и получают зарплату). Если после обучения сотрудник захочет развиваться в заказной разработке, он присоединяется к реальному проекту Custom Solutions.
Поначалу молодой специалист или junior выполняет несложные проектные задачи: например, создает экраны, разрабатывает функциональность и вникает в сложные инженерные задачи. Конечно, не в одиночку, ведь ему помогает ментор. Старший товарищ — это не руководитель и даже не коллега по проекту, поэтому с ним всегда можно поговорить и обратиться за помощью. Ментор заинтересован в росте сотрудника — он получает премию за успехи новичка, так что в итоге довольны все.
Со временем (обычно через 1-2 года) разработчик становится опытным, самостоятельным исполнителем — middle developer. Теперь он сам решает, как выполнить ту или иную задачу, и советуется с техлидом только по сложным вопросам. Middle отвечает за конкретный модуль или сервис в системе, таким образом, он учится брать на себя техническую ответственность. К тому же такой разработчик может быть ментором молодого сотрудника и развивать навыки управления. Все это пригодится ему на следующих этапах карьеры.
Middle может развиваться в нескольких направлениях. Можно сконцентрироваться на технических задачах проекта и вырасти до высококлассного технического специалиста (senior). А можно развивать навыки менеджера и занять роль техлида — такой программист умеет руководить командой, понимает проблемы заказчика и знает, как их решить.
Как синьор, так и техлид может вырасти до архитектора. Он одинаково хорошо разбирается в технологиях и коммуникациях. Архитектор, в отличие от техлида, не привязан к конкретному проекту — он следит за выполнением различных управленческих задач, отвечает за итоговый вид системы и даже контролирует бюджет.
Направление, в котором развивается каждый разработчик, зависит не только от потребностей бизнес-юнита — в большей степени мы отталкиваемся от способностей и желания самого сотрудника.
Павел Иванников
техлид в команде Front-End разработки
Я работаю на проекте по созданию портала непрерывного медицинского образования для РНИМУ.
Это, кстати, один из самых интересных проектов — там я с командой создавал web-версию портала и его мобильное приложение. Заказная разработка очень повлияла на мой карьерный и даже личностный рост. В Custom Solutions я вырос до техлида, возглавил свою первую команду программистов и получил хороший опыт менеджмента.
Помимо написания кода, я занимаюсь решением бизнес-задач, оценкой их сложности реализации, делегированием смежных задач другим разработчикам. Также в мои обязанности входит менторинг других разработчиков. Это необходимо для того, чтобы помочь новичку стать частью проекта и освоится в используемом стеке технологий.
В Custom Solutions мне нравится сам процесс разработки, отсутствие ограничений в выборе технологий и чувство соревнования: важно успеть точно в срок, не бояться рисковать и брать ответственность — это здорово.
Илья Комаров
старший fullstack-разработчик
Сейчас я являюсь ведущим разработчиком на другом проекте: мы создаем маркетплейс образовательных услуг для крупного заказчика. В течение полугода активного сотрудничества было принято решение активно развивать совместные образовательные продукты, так что сейчас мы создаем систему маркетплейсов для его сетевых партнеров.
А еще, этим летом я стал ментором. Мой джуниор-разработчик работает на проекте для крупной энергетической компании из России и имеет базовые знания Java-разработки и платформы Jmix (ex-CUBA Platform). Я помогаю ему писать код и принимать программные решения, отвечаю на все его вопросы и иногда провожу code review.
В Custom Solutions у нас есть полная свобода в общении со всей командой подразделения. Разработчик всегда может предложить более эффективные решения задачи и технологии, внести правки в дизайн или код и даже инициировать прямое общение с заказчиком. Такое насыщенное общение с коллегами очень располагает к активной работе.
Мне нравится писать код и думать, как с его помощью я могу решить проблемы заказчика. На самом деле, то, как разработчик подходит к своей работе, определяет не только качество его проекта, но и всего бизнеса. Так что моя работа — это не только программирование, а нечто большее.
Если вы тоже хотите развиваться в заказной разработке и работать с передовыми технологиями, посмотрите наш раздел «Карьера» — там находятся все вакансии в подразделение Custom Solutions.
Другие материалы из серии «Как это устроено в Haulmont» читайте в нашем блоге.