Наша рубрика «Где работать в IT» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях.
В этом выпуске мы расскажем вам об облачном сервисе МойСклад.
Кто отвечал на вопросы
Обо всех процессах в компании нам подробно рассказали:
Анастасия Серебренникова
HR-директор
Влад Могильников
Head of Scrum
Олег Алексеев
CTO
О компании
МойСклад — облачный сервис для управления торговлей и производством, в котором зарегистрированы 2,5 млн компаний. За последние годы компания выросла до 250 человек, половина из которых — разработчики.
Публичная оценка компании на Хабр Карьере в 2022 году — 4,87 из 5. Сотрудники особенно ценят МойСклад за связь с топ-менеджментом, комфортные условия труда, соцпакет, отношения с коллегами, признание результатов труда и за то, что компания делает мир лучше. Подробнее посмотреть оценки и почитать отзывы сотрудников можно в профиле МоегоСклада на Хабр Карьере.
Об условиях работы
Отвечает Анастасия Серебренникова, HR директор
Какой в вашей компании сложился рабочий график и какое отношение к переработкам?
В МоемСкладе всегда был гибкий график работы с соблюдением work-life-balance: кто-то начинает в 8, кто-то в 13. Есть сотрудники из разных часовых поясов. При этом мы не согласовываем каждое отсутствие или «опоздание» с руководителем, доверяя каждому сотруднику.
Переработки иногда случаются, но не во всех департаментах, и, конечно, оплачиваются в двойном размере или компенсируются в виде дополнительных выходных.
Какие бытовые условия ждут нового сотрудника на рабочем месте?
В основном мы все работаем удаленно, но у нас есть 3 офиса: Москва, Нижний Новгород и Алма-Ата. В офисах Москвы и Нижнего Новгорода есть стол для игры в пинг-понг, турник, мягкие пуфы. На кухне всегда свежие фрукты, выпечка, две кофе-машины, чай, вода, молоко и сахар.
Сотрудник может выбрать технику, на которой ему комфортнее работать: если он привык к Mac, то может выбрать его. Бывают случаи, когда сотруднику удобнее работать на своем оборудовании — мы не против.
Есть ли возможность удалённой работы?
Да, все сотрудники компании могут работать удаленно.
Какой социальный пакет получают сотрудники?
Расскажу по пунктам:
График работы: у большинства отделов он гибкий, и есть возможность работать удаленно из любой точки мира.
Оплата отпусков и больничных: платим до полного оклада. Мы за то, чтобы сотрудники отдыхали, когда им удобно и восстанавливались, не думая о том, когда они получат компенсацию от ФСС.
«Болезнь без больничного»: 5 дней в год вы можете не выходить на работу, если плохо себя чувствуете. При этом можно не обращаться в поликлинику и получать зарплату.
ДМС со стоматологией: подключаем сотрудников после прохождения испытательного срока.
Обучение: компенсируем затраты на обучение и даем корпоративные скидки на изучение английского языка.
Фитнес: компенсируем до 50% стоимости годового абонемента.
Поддержка: предоставляем скидку 50% на сервис онлайн-психотерапии.
Еда: тем, кто работает в офисах Москвы и Нижнего Новгорода, мы оплачиваем обеды. И, конечно, в офисе всегда есть кофе, чай, фрукты и сладости.
IT-ипотека: участвуем в программе ипотеки для сотрудников IT-компаний, которая дает возможность получить льготный кредит по ставке до 5%.
И еще у нас есть различные партнерские программы лояльности.
Какие бонусы, премии и компенсации предусмотрены в компании?
Структура компенсации, включающая переменную часть, у нас работает только для продавцов и поддержки. Для всех остальных позиций мы придерживаемся более стабильного для сотрудника вида оплаты — фиксированная заработная плата, растущая каждый год. Это стабильность и надежность для сотрудника, так как никто в конце года не скажет: «у нас тут тяжёлые времена, время затянуть пояса, премия в этом году не случится».
Какие есть перспективы для образования и личного развития у сотрудников?
В МоемСкладе есть обучение сотрудников по запросу руководителя или самого сотрудника. Есть возможность роста внутри команды, на руководящие позиции в первую очередь рассматриваются внутренние сотрудники.
О найме
Отвечает Анастасия Серебренникова, HR директор
Во сколько этапов проходит наём, и что на них ожидает соискателя?
В каждой вакансии мы честно пишем, что ожидает соискателя. Этапа у нас два: сначала соискатель общается с рекрутером, затем проходит проф. интервью, и мы оперативно возвращаемся с фидбэком.
Даёте ли вы тестовое задание кандидатам? Как оно устроено?
Да, конечно, наличие тестового задания зависит от направления, но чаще всего даем.
Как отличается подход к найму в зависимости от позиции и стека?
В целом процесс у нас един для всех направлений, отличается только чек-лист вопросов и порог проходимости для каждой позиции и стека.
Какая фраза от кандидата на собеседовании точно заставит вас выкинуть его резюме?
Наверное — «оставьте меня в покое, я не хочу коммуницировать». Всё же мы команда, и коммуникации — большая часть нашей ежедневной работы. С таким подходом и сам сотрудник не сможет надолго задержаться в нашей культуре.
Кого последнего вы уволили и почему?
Не прошедшего испытательный срок программиста. Устроился удалённо, по ГПХ. Он так и не начал работать. Возможно, был занят своими делами.
Как происходит онбординг нового сотрудника?
В первый день мы даем доступы ко всем корпоративным ресурсам, оформляем документы и знакомим сотрудника с командой. Новичка всегда сопровождает рекрутер, с которым он взаимодействовал на этапе подбора. Рекрутер рассказывает, что и как устроено в компании, о гласных и негласных правилах. Если сотрудник пришел в офис, то проведет экскурсию, познакомит его со всеми и сходит с ним на обед.
Начинается адаптация, и проходит она в работе над решением реальных задач. Одновременно с этим в первые недели новый сотрудник проходит обучение по продукту: специалист показывает и рассказывает, как устроен МойСклад изнутри.
Уже через неделю можно получить первую обратную связь от компании. Похожая встреча проводится через полтора месяца работы и в день окончания испытательного срока.
О команде
Отвечает Владислав Могильников, Head of Scrum
Какая методология разработки у вас используется и почему?
Мы используем гибкие практики. То, что принято называть одним общим термином Agile. В большинстве наших команд используется фреймворк Scrum, так как он хорошо лег в идеологию продуктового подхода. Идеален ли он у нас? Ну, как и везде, есть отклонения от Scrum guide, но в нашем случае все отклонения зафиксированы в Confluence команд: мы осознанные ребята.
У нас есть и сервисные команды, в них пытаемся внедрить Kanban-практику. Тут мы в самом начале пути и пока переходим от push-системы к pull-системе.
Каковы размеры и структуры команд?
Абсолютно все команды у нас end-to-end (разработчик, аналитик, тестировщик, дизайнер, SM, PO). Сотрудник закреплен и работает на одном продукте. Есть исключения в паре команд: дизайнер и SM. Некоторые из них работают на две команды. По численности все команды разные, но не превышают 12 человек.
По каким критериям вы разбиваете разработчиков на джунов, мидлов и сеньоров?
Сеньор может формулировать решение задачи, включая относительно сложные архитектурные компоненты, и реализовать решение. Самостоятельно или с командой.
Мидл умеет более-менее самостоятельно реализовать уже сформулированное решение.
А джун требует присмотра и умеет делать относительно небольшие задачи, либо работает в паре с кем-то опытным в одной задаче.
Кто чаще возглавляет команды — продуктовый специалист или технический?
Для нас термин «возглавляет» не очень подходит. Это скорее про роли в команде, и кто за что отвечает.
Тут всё просто. Есть Product Owner — лидер продукта, отвечает за его развитие. Есть Team Lead, продуктивность команды — его зона ответственности. Есть Scrum master, он помогает команде становиться осознанней и организованней. Есть команды, в которых традиционно на одном сотруднике совмещены роли тимлида и техлида. Есть команды, где роль тимлида выполняет старший тестировщик, а есть команда, где руководителем в настоящий момент является владелец продукта.
Как часто люди меняют команды?
Переходы между командами случаются нечасто. Обычно это связано с запуском новой команды или с ростом сотрудника внутри компании. В разработке сотрудники могут менять команды достаточно часто, но у них есть право выбора. Это может быть и командировка в другую команду на время.
Что важнее, софт-скилы или хард-скилы?
Раньше бы сказали, что хард-скилы. Но теперь всё больше понимаем, что софт-скилы для нас не менее важны. Мы стали работать над сплоченностью команд и поняли, что бывают сотрудники, которые просто некомандные игроки и с ними приходится много работать scrum-мастеру. Стали больше внимания обращать на софт-скилы на собеседовании.
Как много собраний у вас проводится? Есть ли особые подходы к ним?
Мы работаем по Scrum, поэтому все мероприятия взяли оттуда. Плюс есть один общекомпанейский митинг раз в 2 недели, на котором CEO рассказывает о делах компании и отвечает на вопросы сотрудников.
Как вы боретесь с выгоранием сотрудников?
Поддерживаем с сотрудниками постоянный контакт, не оставляем их наедине со своими проблемами, у нас регулярные встречи один на один. С сотрудником на таких встречах говорит тимлид, глава гильдии или скрам-мастер. С кем-то сотрудник обязательно делится тем, что идёт не так. Это возможность выговориться, получить поддержку, почувствовать, что ты на правильном пути или подкорректировать свои действия.
У нас поддерживается довольно бодрый ритм работы. У неопытного сотрудника такой ритм может вызвать перегрузку, так как он еще не умеет регулировать количество задач в соответствии со своими возможностями. Мы помогаем в этом, вовремя подсказываем, что полезно притормозить и не умирать на работе.
О технологиях
Отвечает Олег Алексеев, CTO
Какие языки, фреймворки и библиотеки используются на проекте?
Мы работаем с Java, React, GWT, Vaadin, PostgreSQL, Clickhouse, WildFly, Spring, Maven, Selenium, для внутренней автоматизации используем Python, AirFlow и Metabase. Пишем программы на Kotlin и Swift для мобильных устройств на платформах Android и iOS, а для десктопа используем TypeScript и Scala под Electron.
Что вы можете рассказать об архитектуре проектов?
Наша компания разрабатывает и продаёт один продукт — онлайн-сервис для ведения учёта, автоматизации продаж и производства МойСклад. Это большой монолит, состоящий из большого количества сервисов, рядом с которыми работают уже самостоятельные микросервисы. Все это «крутится» в традиционной в наше время среде — Kubernetes.
Мы поддерживаем несколько наших публичных API для работы с нашим сервисом, с помощью которых сторонние разработчики разрабатывают интеграции со своими информационными системами и с магазином приложений сервиса МойСклад.
Какая у вас принята политика код-ревью?
Любые изменения в коде обязательно проходят ревью. Если в команде нет компетенций для проведения ревью кода или команда пока не набрала нужное количество разработчиков, то с ревью помогают другие команды. В некоторых командах на изменения в коде во время ревью смотрят несколько разработчиков. Для ревью кода разработаны общие рекомендации, а некоторые команды расширяют их своими правилами.
Задача на ревью должна попадать вместе со всеми видами тестов, принятыми к использованию в команде, а сами изменения в коде должны быть описаны обычным языком так, чтобы было понятно не только программисту, но и тестировщику и аналитику. Замечания, которые могут быть сформулированы по итогам ревью, должны быть мотивированы и подкреплены ссылками на принятые лучшие практики и стайл-гайд, принятый в компании.
Как тестируется код?
Для автоматического тестирования кода мы пишем модульные, интеграционные и UI-тесты. Тестировщики вручную тестируют саму задачу и проводят исследовательское тестирование смежных компонентов согласно описанию изменений в коде, данному разработчиком.
Как устроен процесс документации и ведения базы знаний на проектах?
За структурой, шаблонами оформления и состоянием базы знаний присматривает ведущий аналитик. Наполнением нашей базы знаний занимаются все сотрудники компании. Мы собираем в неё всё, что связано с постановкой задач, описанием архитектуры, тест-планами, процессами работы и ролями в составе процессов.
Процесс разработки предполагает обязательное создание разного рода статей на каждом этапе: исследования и мотивация для бизнеса, архитектуру решения и описание внутренних API на этапе проектирования и разработки, тест-планы во время разработки и тестирования. В случае передачи разработанного решения на эксплуатацию команды описывают всё необходимое для инфраструктуры.
Каков процент легаси-кода на проекте, и как часто разработчики занимаются его рефакторингом?
Легаси-кода заметное количество: нашему проекту уже много лет. И местами всё ещё работает код, написанный в 2008 году. Процент оценить трудно, но не менее 30%.
Менять легаси-код можно с относительно высокой долей уверенности благодаря покрытию тестами. Замена легаси не самоцель и становится частью планов по разработке естественным образом, если начинает мешать решению новых задач или перестает удовлетворять растущим требованиям по производительности.