Где работать в ИТ в 2022: QIWI
Наша рубрика «Где работать в ИТ» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях.
В этом выпуске мы расскажем вам о QIWI — компании, которая предоставляет платежные и финансовые сервисы в России и странах СНГ.
А ещё в выпусках мы рассказываем об оценках компаний на Хабр Карьере, чтобы вы были в курсе, за что их любят (или нет?) сотрудники. Кстати, если вы тоже оцените своего работодателя, то это поможет тем, кто ищет работу в ИТ.
→ оценить работодателя
Кто отвечал на вопросы
Обо всех процессах в QIWI нам подробно рассказали:
Менеджер группы IT-рекрутмента
IT HR BP
IT-менеджер QIWI Кошелька
О компании
QIWI — динамичный финтех в России и странах СНГ. В группу компаний входят платежная система QIWI, Киви Банк (АО), система денежных переводов Contact, ROWI, Flocktory. Сейчас в QIWI 650+ экспертов, занимающихся разработкой, тестированием, администрированием, аналитикой и дизайном fintech продуктов и платформ.
Публичная оценка компании на Хабр Карьере в 2021 году — 4,73 из пяти. Сотрудники особенно ценят QIWI за комфортные условия труда, профессиональный рост, отношения с коллегами, современные технологии и социальный пакет. Посмотреть оценку в деталях и почитать комменты сотрудников можно в профиле QIWI на Хабр Карьере.
Оценка компании в 2022 году на Хабр Карьере
А ещё QIWI ведет блог на Хабре.
Об условиях работы
Какой в вашей компании сложился рабочий график и какое отношение к переработкам?
Саша Белова: У сотрудников ИТ стандартный 8-часовой рабочий день. При этом сама культура QIWI предполагает большую свободу в планировании рабочего времени. По договоренности с руководителем может практиковаться гибкий график работы.
Если появляются проекты, которые не были запланированы, все дополнительные работы фиксируются. Кроме того, ИТ-специалисты, как и все остальные сотрудники QIWI, могут для расширения своего опыта и приобретения дополнительных скилов принять участие в каком-либо проекте другой функции. По завершении таких проектов вклад каждого участника оценивается и вознаграждается.
Какие бытовые условия ждут нового сотрудника на рабочем месте?
Саша Белова: У QIWI демократичные и современные офисы, в которых рабочее пространство сбалансировано зонами для коллабораций и креатива.
В гибридном формате офис представляет собой не только пространство для работы, но и место для встреч:
Здесь можно поработать одному, провести встречу (переговорные комнаты, открытые пространства, конференц-зал) или онлайн переговоры (зум-кабинки или капсулы);
Отдохнуть в непринужденной обстановке — в QIWI много рекреационных зон: мягкие уголки с диванами, креслами и пуфами, библиотеки и каминная зона, массажные кресла, столы с мини-футболом, коворкинг, комната с музыкальными инструментами и переговорная для медитаций, удобная и большая кухня, душевые, боксы для сна, примерочные (данное помещение рассчитано на получение сотрудниками товаров от служб доставки).
На уютных кофе-поинтах сотрудников ждёт бесплатный кофе/чай со всеми необходимыми принадлежностями: молоко, лимон, снеки и фрукты. Когда команды собираются в офисе, можно заказать еду — пиццу или суши. До пандемии на закрытие спринтов в офисе было принято проводить пивные пятницы с пивом, вином и пиццей.
В туалетных комнатах собран весь необходимый минимум гигиенических средств вплоть до крема для рук. Если сотрудникам нужны тапочки или пледы, они могут заказать их в хозяйственной службе.
Офис QIWI очень зелёный: каждый сотрудник может заказать в хозяйственной службе в своё рабочее пространство то количество растений, которое считает необходимым и комфортным.
Если говорить о технике — здесь компания максимально ориентируется на потребности сотрудника: разработчикам априори выдают Macbook Pro (только если сам сотрудник не захочет работать на супермощном оборудовании под WIN). Разумеется, сотрудник получает всю необходимую периферию.
В первый день работы сотрудники технической поддержки не только выдают оборудование и настраивают все доступы, но и проводят полное знакомство новичка с техникой и установленными программами.
В пандемию мы начали оформлять дистанционных сотрудников: то есть тех, кто проживает в регионах и работает полностью удалённо. Если у такого регионального сотрудника нет большого желания приехать в офис и познакомиться с работой QIWI очно, оформление реализуется дистанционно, а доставка оборудования — курьерскими службами. При этом как при очном, так и при дистанционном оформлении компания делает всё возможное, чтобы выдать и настроить оборудование в первый день работы сотрудника.
После выдачи оборудования служба поддержки пользователей оказывает быструю и качественную поддержку сотрудникам, где бы они ни находились. Связаться с коллегами можно по почте, телефону или через телеграм. Для тех, кто работает в других городах, ремонт оборудования можно провести в региональных технических центрах. В случае замены оборудования сотрудникам, которые в настоящий момент находятся далеко от офиса или не в Москве, обновлённое оборудование могут выслать курьерской службой.
Есть ли возможность удалённой работы?
Саша Белова: В зависимости от задач, которые выполняет сотрудник, в QIWI практикуется несколько форматов работы:
Работа в офисе;
Гибридный формат работы — с работой из дома и фиксированным количеством офисных дней в месяц;
Гибридный формат с преимущественной работой из дома, свободным посещением офиса, а также командными (выездными или домашними) спринтами;
Полностью дистанционная работа с возможностью командировки из другого города в Москву для участия в командных или корпоративных мероприятиях.
Последние два формата наиболее популярны среди сотрудников IT.
Помимо встреч в основном офисе, у QIWI есть практика проведения выездных спринтов. В прошлом году в пилотном режиме для сотрудников были арендованы коворкинг и коливинг в горах Сочи (Красная Поляна), а в этом году масштабировали проект, и для всех распределённых команд открыли временную площадку для совместных спринтов в центре Санкт-Петербурга.
Какой социальный пакет получают сотрудники?
Саша Белова:
Расширенный пакет ДМС* со стоматологией, амбулаторией, плановой и экстренной госпитализацией, выездом врача на дом и скорой помощью, ведением беременности, базовым чек-апом организма и возможностью включения известных клинико-диагностических центров Москвы. Неограниченная психологическая поддержка от психологов страховой компании.
Возможность подключить 1 родственника к своему полису ДМС*
Страховка от несчастных случаев и критических заболеваний.
Мобильная связь — доступны четыре оператора сотовой связи. Можно выбрать Билайн, МТС, Теле2 или Мегафон. Мобильная связь доступна для всех штатных сотрудников, кто работает по основному месту, включая стажёров.
Тимбилдинги: каждому сотруднику выделяется лимит на год, который можно потратить на тимбилдинги со своей или другими командами. Этот лимит можно потратить на самые разные командные мероприятия: от квестов и походов в рестораны до яхтинга.
Комьюнити. В QIWI действует 15 комьюнити: спортивные, творческие и интеллектуальные: от бега и большого тенниса до вокала и арта. У каждого комьюнити есть лидер из числа сотрудников, но компания оказывает ему полную поддержку по вопросам площадок и тренеров/преподавателей, продвижения комьюнити внутри компании.
Скидки и льготные условия от партнеров.
Мероприятия: QIWI дважды в год проводит большие фестивали, в том числе с участием бывших сотрудников, регулярные вечеринки в офисе (музыкальные, турниры, полезные среды, демо-дни и пивные пятницы). Целая серия мероприятий проводится для ИТ-комьюнити: детокс Новый год, День программиста, внутренние хакатоны, семейные пикники и другие.
Материальная помощь для сотрудников, которые оказались в сложной жизненной ситуации. Каждый случай рассматривается индивидуально.
Кроме того, с начала весны мы усилили фокус на ментальное здоровье сотрудников и запустили well-being программу. Проект объединяет основные well-being практики и предлагает комплексный интерактивный подход к эмоциональной поддержке сотрудников. На базе платформы участникам доступны персональные консультации со специалистами различного профиля: психологами, эндокринологами, коучами и арт-терапевтами.
*льгота доступна после испытательного срока
Какие бонусы, премии и компенсации предусмотрены в компании?
Саша Белова:
Зарплата IT-сотрудников QIWI соответствует 75 процентилю + 10%: это значит, что только 20% компаний в Москве платят специалистам больше, чем мы.
*в соответствии с методологией Hay GROUP.
У большей части сотрудников есть квартальные премии, которые варьируются в зависимости от уровня должности. В рамках установленных лимитов ежеквартальная премия выплачивается на основе оценочного коэффициента в зависимости от вклада сотрудника.
IT — ключевая функция QIWI, поэтому 25% сотрудников функции участвуют в долгосрочной программе мотивации (все тимлиды, сеньоры проектной разработки, эксплуатации, РЦ, big data).
Чтобы стать участником программы, важно занимать ключевую для бизнеса роль и быть высокоэффективным сотрудником. Также имеет значение срок работы в компании — в программу LTI обычно вступают сотрудники, отработавшие в компании не менее полугода.
В ряде случаев при найме тимлидов, сеньоров и иногда миддлов действует welcome-бонус за переход. Такой бонус компенсирует финансовые потери, возникшие у соискателя в связи с уходом с предыдущего места работы: например, соискатель теряет бонус или вынужден компенсировать расходы на обучение.
Какие есть перспективы для образования и личного развития у сотрудников?
Саша Белова: В основе подхода к развитию IT-экспертов существуют два ключевых принципа:
«t-shaped» — это подход по управлению талантами в сфере гибкой разработки ПО. Концепция Т-образных навыков — это метафора, используемая для описания способностей ИТ-специалистов разного профиля. Вертикальная черта на букве T представляет собой глубокую, но узкую экспертизу в одной из областей разработки или тестирования. Тогда как горизонтальная линия — это черта дженералиста.
Как и вся культура QIWI, обучение в компании строится на принципах свободы: у нас нет обязательного обучения, но есть разнообразные возможности и инструменты, которыми сотрудники активно пользуются.
В QIWI обширный каталог материалов и собственный обучающий портал Qampus.
На Qampus представлен большой выбор внешних и внутренних курсов и обучающих материалов. У каждого сотрудника есть личный бюджет на внешнее обучение и неограниченный доступ ко всем корпоративным материалам: иностранные языки, библиотеки, электронные курсы, подкасты, статьи, видео, подборки и т.д.
Широко распространено менторство и обучение с экспертами. У нас есть современная лидерская программа, Школы наставников и менторов, а также Академия Экспертов, которая объединяет и поддерживает опытных сотрудников, готовых делиться знаниями. Эксперты проводят свои курсы регулярно или выступают по запросу. Другой формат по обмену знаниями в ИТ — »7 level talks». Коллеги собираются в Zoom и обсуждают кейсы по улучшению работы ИТ. Спикер выступает с мини-лекцией, за которой следует дискуссия.
О найме
Во сколько этапов проходит наём, и что на них ожидает соискателя?
Саша Широкова: Мы стараемся уменьшить количество испытаний без потери качества оценки компетенции.
В среднем у нас два этапа: это интервью с эйчаром по софтам и встреча с нанимающим менеджером по хардам кандидата, которая может также включать технические кейсы.
В продуктовой разработке мы и вовсе стремимся ограничиться одним этапом. При этом собеседование не растягивается более чем на 2 часа. За время встречи рекрутер успевает проверить soft skills, а менеджер и эксперт — определить не только уровень hard skills, но и выбрать продукт/команду, куда кандидат наилучшим образом подходит.
Подход в три этапа мы применяем в работе с соискателями на отдельные позиции более сложного уровня: это могут быть лиды или какие-то новые роли в компании. Он применяется там, где поиск сложный и уникальный.
Даёте ли вы тестовое задание кандидатам? Как оно устроено?
Саша Широкова: Мы отказались от классического многочасового задания как этапа. От заданий на дом мы также практически везде ушли.
Стараемся просто пообщаться, выяснить какие-то рабочие кейсы, понять логику решений и ход мыслей в процессе беседы. Задание, даже если есть, максимально плавно интегрировано в беседу и представлено как обмен безоценочными мнениями между экспертами. Иногда мы просим в процессе интервью продемонстрировать какие-то навыки, например, написать код или решить задачку. И стараемся сделать это максимально дружелюбно, раскрывая суть задачи, проговаривая эти моменты, чтобы это не было похоже на экзамен.
Как отличается подход к найму в зависимости от позиции и стека?
Саша Широкова: Где-то, например в Big Data или Эксплуатации, у нас подход к найму более классический: менеджер нанимает к себе в команду — кандидат проходит стандартные этапы, а на финальном менеджер принимает решение.
А в продуктовой разработке появляется круг найма. Это значит, что специалиста подбирают не в конкретную команду, а именно в компанию. Иногда бывает, что мы нанимаем функционального менеджера в продуктовую команду, например, аналитика или дизайнера, т.е. человека с другими функциями. Тогда появляется ещё один этап, где происходит знакомство с Product Owner, т.е. с потенциальным человеком, с которым придётся работать над продуктом. Этот этап позволяет обоим участникам сразу понять, насколько им будет комфортно работать вместе.
ИТ-наём в QIWI достаточно активный, и интервью занимает большое количество времени менеджера, при том, что у них много других задач. Поэтому дополнительно мы растим экспертов из людей, которые обладают компетенциями, позволяющими также качественно проводить интервью. В основном это сеньоры и специалисты, у которых есть потенциал, чтобы вести коммуникацию и собеседовать. Такие люди проходят специальное обучение и проверяют у соискателя hard skills, в то время как менеджер обращает больше внимания на креативное и стратегическое мышление.
Какая фраза от кандидата на собеседовании точно заставит вас выкинуть его резюме?
Саша Широкова: Это очень сложный вопрос. Но точно можно сказать, что по одной фразе мы не строим выводов и не даём оценок. Разве что если кандидат ведёт себя агрессивно и недружелюбно. Тогда никакие крутые харды не помогут ему попасть к нам. Потому что мы очень сильно ценим культуру и конструктивное взаимодействие. У нас даже есть термин «QIWI Fit» — человек, который подходит по духу, стремлениям и целям.
Кого последнего вы уволили и почему?
Саша Белова: Опишем 2 последних случая:
Работа в QIWI предполагает высокий уровень свободы и отсутствие микроменеджмента. И это стало ещё более очевидным в условиях удалёнки. Безусловно, такой подход бросает определённые вызовы и требует от сотрудника высокого уровня самостоятельности, зрелости, самоорганизации и ответственности. К сожалению, бывают случаи, когда такой принцип работы не подходит сотруднику, и он не справляется. В таком случае и компания, и сотрудник принимают решение расстаться.
Второй случай связан с продуктовым подходом. Мы ищем разработчиков, которые не просто кодят и создают фичи, а полноценно развивают продукт: мыслят продуктово, готовы осваивать смежные навыки, взаимодействовать с другими командами и функциями, прокачивать софт-скилы. К сожалению, иногда такой подход становится вызовом даже для очень сильных хардово людей.
Как происходит онбординг нового сотрудника?
Саша Широкова: Рекрутер оформляет документы, помогает сориентироваться на местности и в первичном информационном поле, знакомит новичка с наставником. Менеджер мотивирует и оценивает сотрудника, также помогает в решении сложных задач. А наставник погружает в рабочий процесс, всё время остаётся на связи, отвечает на все вопросы. Наставник помогает руководителю плавно интегрировать нового сотрудника в команду, чтобы он быстрее сблизился с коллегами и выстроил со всеми доверительные профессиональные и личные отношения.
Мы используем удалённую адаптационную программу QIWI Start, которая проводится каждые 3 недели для новых сотрудников. Эта программа рассчитана на 2 дня и проводится на корпоративной обучающей платформе Qampus. В тренинге используются игровые элементы: через них рассказываем о целях и стратегии компании, ценностях и корпоративной культуре, а ещё отвечаем на популярные вопросы по комплаенсу. Коллеги из разных департаментов рассказывают, чем они занимаются, а новички знакомятся друг с другом и со всей большой командой QIWI. А ещё есть чат-бот, который помогает автоматизировать процессы адаптации сотрудника.
О команде
Какая методология разработки у вас используется и почему?
Женя Кудрявкин: Мы используем гибкие методологии (Agile), а команды работают по скраму, если быть более точным — less-like scrum based-фреймворк, когда несколько команд работают над одним большим продуктом, у них один общий бэклог. То есть как большая команда, состоящая из маленьких скрам-команд.
Мы работаем в секторе, где очень высокая неопределённость, и нам часто приходится проверять гипотезы и принимать решения. Для этого скрам подходит лучше всего. Мы можем строить планы, но должны быстро адаптироваться под изменения рынка. Стараемся каждый спринт выпускать обновления на пользователя и смотреть, как они заходят.
Каковы размеры и структуры команд?
Женя: Команды у нас самоорганизующиеся и кроссфункциональные, чтобы они могли от начала и до конца сделать фичу.
Стремимся к тому, чтобы ребята сделали фичу за один спринт, поэтому они должны обладать всеми необходимыми компетенциями. Это помогает оперативно принимать решение. Какой-то один тимлид как центр принятия решений стал бы тут узким горлышком, так что развиваем самоорганизацию, ребята активно не только пишут код, но и участвуют в проработке задач, понимая, что и для кого они делают.
Размер команд зависит от продукта, потому что в одном продукте много платформ (например, QIWI Кошелек), и тут команды по 5–9 человек. В других командах нет мобильных приложений, в них по 3–5 человек на команду. Стараемся делать команды настолько маленькими, насколько возможно, с учетом bus-фактора. Так что развиваем T-shape, чтобы разработчики могли подхватывать мелкие задачи по смежным платформам. Кроссфункциональные команды есть даже в dev2dev-командах. Большинство продуктовых команд именно такие.
По каким критериям вы разбиваете разработчиков на джунов, мидлов и синьоров?
Женя: У нас есть матрица компетенций, в которой описаны проявления для джуна, мидла и сеньора. И уже этот набор компетенций состоит из разных областей (и хардовых, и софтовых).
Джун — менее опытный разработчик, который может делать простые задачки под присмотром ментора и ещё не вышел на такую скорость, чтобы решать большинство задач самостоятельно.
Мидл как раз это умеет с наименьшим количеством замечаний на ревью, активно участвует в жизни команды и продукта.
Разработчику важно понимать свои точки роста, для этого у нас есть регулярные переоценки компетенций по матрице. Оценивают его 2–3 разработчика уровнем выше из той же или смежной команды. По результатам даётся обратная связь. Задача ментора — помочь человеку прокачаться, но принимать решение, куда именно двигаться — ответственность разработчика.
Чем выше должность, тем дольше идёт развитие — это всегда так. Есть даже время примерного нахождения на грейде. Из джуна до мидла сотрудники могут вырасти примерно за год. До уровня сеньора потребуется больше времени.
Кто чаще возглавляет команды — продуктовый специалист или технический?
Женя: Мы работаем по скраму, и во многих командах просто нет тимлида, который в ней главный. У нас есть роли, которые отвечают за скрам (скрам-мастер), есть PO (product owner), это вижн продукта, приоритезация бэклога и донесение до команды целей продукта. Есть роль ИТ-менеджера, который отвечает в целом за всю разработку, обеспечение развития людей и прочее. ИТ-менеджер — вне команды, так как отвечает сразу за несколько команд.
Ещё в командах есть роль под названием people-менеджер, который занимается развитием людей, работает над мотивацией, даёт и собирает обратную связь, синхронизируется по ожиданиям. У этих ролей есть точки пересечения, потому что команда — это люди. Всегда идет коллаборация. Слово «Возглавляет» — это не про нас, у нас плоская структура, мы про роли, а не про иерархию.
Как часто люди меняют команды?
Женя: Образование сильной команды занимает несколько месяцев, и каждый раз менять людей в команде — это притирка и выработка новых процессов, что забирает много времени и энергии. Так что стремимся делать команды долгоживущими. Если кто-то несколько лет в одной команде и хочет её поменять — в целом это приветствуется, но мы сами это не особо драйвим.
У нас в продукте мы примерно один-два раза в год создаём новую команду за счёт распределения (сделать из трёх команд четыре, например), ребята самоорганизовываются. И наша со скрам-мастером задача — подготовить критерии для формирования команд, а дальше команды сами договариваются. Бывают и переходы из продукта в продукт, если хочется нового опыта, но это бывает сильно реже.
Что важнее, софт-скилы или хард-скилы?
Женя: Нельзя сказать, что что-то важнее. Нельзя просто добиться от каждого разработчика, чтобы он был одинаково прекрасен и там, и там. Да, такие есть, но их мало.
Главное, должен быть минимальный набор софт-скилов для общения в команде: если кто-то не любит выступать, но нормально общается с коллегами — все ОК. Или если человек не сильно крут по хардам, но при этом душа компании и проводит какие-то активности — тоже отлично. Главное, чтобы не был токсичным. Хорошо, когда в команде разные роли, есть и генераторы идей, и душа компании, и сильные эксперты.
Как много собраний у вас проводится? Есть ли особые подходы к ним?
Женя: Скрам-события — это планирование в начале спринта, потом каждый день у команды daily scrum митинги на 15 минут для оценки прогресса. Потом есть PBR, 4 раза в спринт, где команда вместе с PO прорабатывает бэклог и проясняет неизвестность. В конце спринта — командная ретроспектива и спринт-ревью, где команда демонстрирует, что сделала за спринт, и получает обратную связь от участников продукта и стейкхолдеров.
Есть кросс-командное ретро, ведь несколько команд работают над одним продуктом — тут смотрим на системные проблемы работы команд или всего продукта. Там есть представители от каждой команды, проводится 2 раза в спринт по 1 часу.
Есть ещё активности, связанные с развитием разработки, у нас они оформлены в виде OKR, где разработчики генерят цели для достижения глобальных целей разработки. Итерации длятся 4 спринта, разработчики сами вписываются в эти цели, 20% времени выделяем на активности по развитию разработки. Там тоже есть планирование и демонстрация целей — ребята сами выбирают, над какими целями работать, так как они сами их генерят и под это они самоорганизовываются в рабочие группы.
Отдельно раз в квартал встречаемся для актуализации стармапа, где ребята отмечают прокачку своих скилов, планируют, строят таймлайны по развитию компетенций.
В целом, если говорить про продуктовую команду, встреч много, но мы стараемся фокусироваться на том, чтобы делать полезные штуки и делать их правильно.
Ко встрече должна быть заранее готова Agenda, чтобы каждый понимал, что там будет и насколько нужен там конкретный человек. Готовим план встречи, используем тайминги, на встрече стараемся принимать решения, в общем, фасилитация, таймбоксы, выносим часть в офлайн — всё это помогает проводить встречи продуктивно.
Как вы боретесь с выгоранием сотрудников?
Женя: Такое иногда бывает. В гибких подходах приходится думать не только о коде, но и о продукте, участвовать в различных активностях — здесь вероятность выгорания достаточно высокая, если за этим не следить.
Мы стараемся это выявлять на 1:1 — люди, которые проводят такие встречи, трекают эту часть, чтобы сотрудник не выгорал. Причины выгорания могут быть разные, мы стараемся, чтобы наши коллеги работали долго и выбирали для себя комфортный темп, а мы поддержим. Если человек начинает выгорать, people-менеджер старается ему помочь и выявить причины. Может, это количество встреч, может, человек не знает, куда ему развиваться — и мы помогаем в этом разобраться.
Иногда это наблюдается на встречах, если заметно, что поведение и вовлеченность сотрудника меняется, это тоже один из триггеров, возможно, надо обсудить, как дела.
На выгорание влияет и темп работы, и прозрачность процессов, и культура общения в командах, тут очень много факторов.
О технологиях
Какие языки, фреймворки и библиотеки используются на проекте?
Женя: Если говорить про бэкенд, то в компании преимущественно JVM-языки, Java и Kotlin, все новое почти пишется на Kotlin. Но в компании есть и продукты, в которых используется C#, Python, есть немного Scala.
Если про веб, то тут преимущественно React. Android — Kotlin, iOS — Swift, в том году внедрили Kotlin Multiplatform, когда бизнес-логика для мобильных приложений пишется на котлине и переиспользуется. Есть и своя библиотека компонентов для веба и мобилок, что позволяет нам быстро разрабатывать приложения.
Из фреймворков используем Spring, у нас есть своя платформа на базе SpringBoot, микросервисы крутятся в кубере, есть много своих автоматизированных решений по генерации проектов и автоматизации тестирования, мониторинга и прочего. ElasticSearch, Kibana, для мониторинга Zabbix и Grafana.
Что вы можете рассказать об архитектуре проектов?
Женя: Мы используем микросервисную архитектуру, которая позволяет быстро создавать новые сервисы для новых фич с наименьшем влиянием на другую функциональность.
Сервисы получаются небольшими с понятной зоной ответственности. В них проще разобраться, быстрее внести изменение и протестировать. Ну и конечно, быстрее доставить до пользователя. Используем практику общего владения кодом, где любой разработчик может внести изменение в любой компонент, конечно же, соблюдая архитектурную целостность и требования внутреннего и внешнего качества.
Какая у вас принята политика код-ревью?
Женя: Цель код-ревью — выявить соблюдение архитектурной целостности, плюс обучение менее опытных разработчиков. Более опытные могут подсветить рекомендации и улучшения. Соблюдаем общепринятые стандарты и договоренности, автоматизируем всё, что можем, используем статические анализаторы.
Стараемся оперативно проводить код-ревью, чтобы не затягивать надолго и побыстрее отправлять в мастер. Это один или два разработчика, которые должны поревьюить всё для своей команды, в зависимости от критичности сервиса.
Как тестируется код?
Женя: Мы стараемся выстраивать пирамиду тестирования. У основания больше юнит-тестов, которые пишутся в момент написания самого кода приложения, маленькие и лёгкие тесты. Дают быструю обратную связь, где и что сломалось. Следующий уровень — интеграционные тесты, более медленные, их сложнее писать, они взаимодействуют с несколькими компонентами. Внешние компоненты стараемся мокировать для стабильности тестов. В плане БД используем подход, когда БД разворачивается в Докере, и прогоняется чистый тест.
Следующий уровень — API-тесты. Эти тесты проверяют взаимодействие сервисов по API.
Верхний уровень — UI-тесты, которые проверяют UI. Мы делим UI-тесты, которые взаимодействуют с реальным бэкендом, а есть те, где бэкенд мокируется. Чем выше по пирамиде идём, тем сложнее становятся тесты и тем более хрупкими они получаются.
Как устроен процесс документации и ведения базы знаний на проектах?
Женя: Команды работают по SCRUM и за один спринт стараются сделать полный цикл разработки фичи: написать код, протестировать и зарелизить. Так как команда кроссфункциональная и у ребят одна общая цель, разработчики очень плотно коммуницируют внутри команды, так что они чуть менее нуждаются в избыточной документации. С другой стороны, мы стараемся фиксировать ключевые архитектурные решения, чтобы понимать в будущем видение развития домена или архитектуры. За документацию отвечает команда разработки. Сейчас как раз улучшаем процессы ведения документации и вырабатываем новые подходы к этому.
Не хотим делать документацию ради документации: она должна приносить пользу разработчикам. Команды не закреплены за компонентами, и любой разработчик может вносить изменения в любой компонент.
Документируем ключевые изменения, рисуем UML-диаграммы и sequences-диаграммы. Лучшие практики тоже стараемся фиксировать и помечать тегами, чтобы быстро их искать. Мы ушли от иерархической структуры в сторону подхода вики.
Каков процент легаси-кода на проекте, и как часто разработчики занимаются его рефакторингом?
Женя: В процентном соотношении не скажу точно, есть более зрелые продукты (более 10 лет), там есть легаси, но когда у нас был активный переход на микросервисы, это изменилось. То, что в легаси осталось — это часть логики, которая очень редко меняется и стабильно работает.
Активную фазу перехода на микросервисы мы уже прошли, всё новое просто создается в новых микросервисах. Если что-то затрагивает легаси, обсуждаем это на архитектурном ревью, стоит ли выносить функционал в микросервис, учитывая перспективы продуктов.
У нас открытая среда — ребята готовы к новым изменениям, не воспринимают их в штыки и готовы адаптироваться. Активно участвуют в разработке продукта, вкладываются в долгосрочную стратегию, вырабатывают лучшие практики и инструменты. Между командами идёт активное взаимодействие, ребята участвуют в митапах.
Оценивайте компании на Хабр Карьере и делитесь мнением о них с теми, кто сейчас ищет работу в ИТ. Это анонимно.
→ оценить работодателя