Наша рубрика «Где работать в ИТ» — это интервью с интересными айти-компаниями в котором они делятся подробностями о своей внутренней кухне. Мы задаём компаниям три десятка вопросов начиная с условий работы, заканчивая стэком технологий и тем, как происходит код-ревью. А потом публикуем их ответы и фотки, чтобы вы узнали о них побольше, влюбились и захотели там работать.
Сегодня герой очередного выпуска рубрики — компания MYRTEX, которая разрабатывает и развивает платформы для проведения грантовых, субсидиальных и других видов конкурсов.
А ещё в выпусках мы рассказываем об оценках компаний на Хабр Карьере, чтобы вы были в курсе, за что их любят (или нет?) сотрудники. Кстати, если вы тоже оцените своего работодателя, то это поможет тем, кто ищет работу в ИТ.
Содержание выпуска
Кто отвечал на вопросы
Обо всех процессах в «Миртехе» нам подробно рассказали:
Лев Бережной
CTO / Продакт оунер
Оксана Марухненко
Эйчар-менеджер
Игорь Лю
Креативный и дизайн тимлид
О компании
MYRTEX создает цифровую среду для взаимодействия власти, бизнеса и некоммерческих организаций. Компания разрабатывает и развивает IT-инструменты для реализации программ корпоративной социальной ответственности и поддержки социальных инициатив. Корпорации и региональные госорганы пользуются продуктами «Миртеха», чтобы проводить грантовые и творческие конкурсы и поощрять лучшие социальные проекты.
В команде MYRTEX работает 70 человек и все они распределены по городам России и других стран, но иногда приезжают повидаться в офис на Арбате. В этом году компания впервые получила публичную оценку на Хабр Карьере — 4,74 из пяти. Сотрудники особенно ценят «Миртех» за налаженную связь с руководством, за признание результатов труда и за то, что компания делает мир лучше. Увидеть оценку в деталях и почитать комменты сотрудников можно в профиле «Миртеха» на Хабр Карьере.
Об условиях работы
Какой в вашей компании сложился рабочий график и какое отношение к переработкам?
Лев Бережной: Бо́льшая часть команды придерживается стандартного графика: пятидневная рабочая неделя с 10 до 19 по московскому времени. В это время мы ведем разработку нового функционала и выполняем стандартные управленческие задачи.
Но нашу платформу используют для проведения своих грантовых конкурсов клиенты, работающие в совершенно разных часовых поясах: это и Фонд Президентских грантов с конкурсом федерального значения, и разные регионы с конкурсами регионального масштаба, и различные коммерческие фонды, работающие в разных уголках страны. Поэтому контроль за работой системы мы ведем постоянный. В даты запусков и подведения итогов конкурсов выделяются специальные команды, которые посменно обеспечивают поддержку клиентов и мониторят работу системы. В таких случаях любая сверхурочная работа всегда дополнительно оплачивается, а при планировании мы учитываем желание и возможность сотрудника работать в таком режиме.
Какие бытовые условия ждут нового сотрудника на рабочем месте?
Лев: Наши сотрудники работают удаленно из разных уголков страны и мира, поэтому у большинства офис — это их квартира. Но отдельный офис у «Миртеха» тоже есть. Он находится в самом центре Москвы, на Арбате. Туда всегда можно приехать, чтобы обсудить рабочие моменты или просто сменить обстановку. Место есть для каждого! У нас там большие окна, кондиционер (что, как мы выяснили этим летом, очень важно) и пропускная система. Поэтому в офисе тихо и всегда «все свои».
Есть ли возможность удаленной работы?
Лев: Все наши сотрудники, а это более 70 человек, работают удаленно. Мы приняли такой формат еще до того, как это стало мейнстримом, а пандемия подтвердила, что мы пошли по верному пути.
Первый состав команды собрался в 2017 году. С первого дня все стали работать из дома, что подарило нам больше сил для интенсивной работы над продуктом без отвлечения на изматывающие поездки. Технологии и пять лет назад позволяли строить эффективную работу даже на расстоянии. Мы стали подбирать в команду людей в соответствии с важными критериями — умением работать самостоятельно. Наша культура основана на доверии, а потому у нас нет жесткого контроля времени сотрудника — каждый, прежде всего, работает на результат.
Какой социальный пакет получают сотрудники?
Лев: Вне зависимости от способа трудоустройства все сотрудники получают одинаковый соцпакет — согласно ТК РФ. У нас очень активно развивается HR-направление, мы планируем создать собственный университет. Руководители отделов периодически собираются на стратегические сессии с тренингами, которые мы проводим за городом. И мы очень надеемся, что с ослаблением ограничений нам удастся наконец-то собрать всю команду, чтобы встретиться и пообщаться лично на корпоративе у моря.
Какие бонусы, премии и компенсации предусмотрены в компании?
Лев: Наш подход к реализации проектов предусматривает формирование команд, в которой есть тимлид, разработчики, тестировщики, клиентские менеджеры, дизайнер и другие специалисты, если это требуется. У каждой команды есть бюджет, и мы всегда закладываем в него до 30% бонусов, которые распределяет тимлид в зависимости от вклада каждого члена команды. Кроме того, сейчас мы разрабатываем дополнительную систему бонусов и поощрений для сотрудников. Наша задача как руководителей — зарабатывать вместе с командой.
Какие есть перспективы для образования и личного развития у сотрудников?
Лев: Расти в компании можно как по зонам ответственности (горизонтально), так и вверх, достигая более высокой должности. Рост заработной платы происходит на всех этапах. Каждый член команды знает, что любая инициатива приветствуется. Мы развиваем и всегда стараемся приводить к конечному результату интересные идеи сотрудников. Так мы даем людям свободу для роста и одновременно улучшаем наш продукт. Внедрена менторская система для новых сотрудников. Есть позитивный опыт проведения выездных тренингов. Пока это не системная работа, но в следующем году планируется усилить образовательную составляющую.
О найме
Во сколько этапов проходит найм и что на них ожидает соискателя?
Оксана Марухненко: На наших собеседованиях мы не задаем провокационных вопросов и не пытаемся никого «расколоть». Напротив, стремимся создать максимально живую, дружелюбную и приятную атмосферу. Ставим себя на место соискателя, понимая, что собеседование — всегда стресс для человека. Если говорить об этапах, то их обычно два, но если специалист нас очарует и покорит с первого раза, то предложение может быть сделано ему сразу.
Даете ли вы тестовое задание кандидатам? Как оно устроено?
Оксана: Тестовое задание используем как способ понять мышление и уровень креатива соискателя. Еще одна фишка — никогда не ставим дедлайна для выполнения задания. Делаем это, исходя из уважения к кандидату, поскольку мы не знаем уровня его загруженности на данный момент. Кроме того, наблюдаем за самим процессом выполнения, из которого иногда можно получить о кандидате гораздо больше информации, чем из самого задания. Стиль выполнения задания практически всегда является демонстрацией стиля работы.
Как отличается подход к найму в зависимости от позиции и стека?
Оксана: Подход в зависимости от позиции не меняется, потому что на каждую позицию, какой бы она ни была, мы рассматриваем человека. Особое внимание всегда уделяем желанию обучаться, умению быстро адаптироваться к меняющимся условиям, ценим способность нестандартно мыслить, отстаивать свое мнение, убеждать коллег в своей правоте, делая это корректно и нетоксично, уважая собеседника и его взгляд на ситуацию. Всегда ищем мыслящих, неравнодушных, настоящих. Всему остальному научим.
Какая фраза от кандидата на собеседовании точно заставит вас выкинуть его резюме?
Оксана: Никакая. Мы всегда с уважением относимся к мнению кандидата. Наоборот, смелость прямо высказывать свое мнение нам импонирует. На собеседовании мы с интересом слушаем разные истории на соискателей, делаем для себя много открытий и выводов, и даже учимся многому.
Кого последнего вы уволили и почему?
Оксана: Это был бизнес-аналитик, но «уволили» — очень громко сказано. Скорее, побеседовали и обоюдно приняли решение не продолжать сотрудничество. Почему? Наши ценности в работе просто не совпали. Такое иногда бывает, и это нормально.
Как происходит онбординг нового сотрудника?
Оксана: Онбординг — очень важный период в жизни сотрудника. На этапе онбординга сотрудник взаимодействует почти со всей командой — более опытные коллеги, руководители отделов, HR, руководители направлений. Наше взаимодействие построено на принципе «открытых дверей»: любой из нас всегда находится в открытом доступе в рамках рабочего дня и даже дольше, если это необходимо. Очень развита система Базы знаний, построенная в виде Википедии и подключенных сервисов, типа Confluence, Figma и др. В процессе онбординга кандидаты знакомятся с нашим продуктом, различными сервисами, документами, затем делают первые самостоятельные шаги на пути покорения своих вершин. А мы наблюдаем за ними, помогаем и радуемся.
О команде
Какая методология разработки у вас используется и почему?
Оксана: Мы успешно используем гибкие методологии разработки (Scrum, Kanban), так как это позволяет быстро адаптироваться к постоянно меняющимся требованиям. Каждый день мы начинаем с общего утреннего созвона по рабочим группам, чтобы поздороваться и официально начать рабочий день, расставить приоритеты, обсудить возможные вопросы и проблемы. А в конце каждого двух- или трехнедельного спринта делаем обзор, на котором делимся результатами и демонстрируем ценности, приобретенные нашим продуктом. Также очень важно устраивать ретроспективу — оценивать процессы и предлагать улучшения для повышения эффективности групповой работы.
Каковы размеры и структуры команд?
Оксана: За три года наша команда выросла с 10 до 70 человек. Конечно, увеличился не только штат разработки, но и бэк-офис, отдел продаж, аккаунтинг, тестирование и т. д. Когда мы формируем проектные команды, то и наш опыт, и совет Джеффа Безоса про «команду на две пиццы» показывает, что оптимальное количество специалистов не должно превышать семи-восьми человек. Как правило, в команду входят тимлид, несколько разработчиков, аналитик, тестировщик, аккаунт, дизайнер или верстальщик. Могут периодически подключаться DevOps или другие профильные специалисты, в зависимости от задач.
По каким критериям вы разбиваете разработчиков на джунов, мидлов и синьоров?
Оксана: Уровень разработчика виден по тому, насколько быстро, качественно и разумно решена задача и написан код. Программистам с небольшим опытом мы стараемся давать задачи важные, но не срочные. И часто предлагаем поработать в поддержке, чтобы познакомиться с продуктом в целом и нашими рабочими процессами. Более опытные программисты попадают в команды разработки и сразу включаются в реализацию конкретных задач с четкими сроками. А разработчики высокого уровня, которые могут держать под присмотром качество кода на нескольких сервисах, часто становятся тимлидами и берутся за важные инфраструктурные задачи.
Кто чаще возглавляет команды — продуктовый специалист или технический?
Оксана: В «Миртех» команду разработки возглавляет владелец продукта (Product Manager). Именно он знает, в каком направлении должен развиваться продукт: собирает требования и изучает рынок, формирует видение, расставляет приоритеты в развитии, рассчитывает ключевые показатели, собирает и направляет команду, а также представляет итоговые результаты коллегам, стейкхолдерам и заказчикам. Технический специалист (Project Manager) помогает команде в процессах оценки и планирования проекта, следит за сроками исполнения задач, создает дорожную карту развития проекта и определяет внутренние дедлайны. Он делает это в рамках, которые задает продуктовый менеджер.
Как часто люди меняют команды?
Оксана: Все зависит от задачи. Есть уже сложившиеся команды, которые ведут вместе отдельные сервисы и разработки для клиентов на постоянной основе. Но если приходит новый клиент с новой нетривиальной задачей и требуется свежий взгляд, то мы собираем новую проектную команду. Или когда видим, что уровень специалиста уже перерос проект, над которым работает его текущая команда, и его можно эффективнее задействовать на более сложных задачах.
Что важнее, софт-скиллы или хард-скиллы?
Оксана: Важен правильный баланс профессиональных навыков и тех, что позволяют сотруднику выстраивать эффективный рабочий процесс, сохраняя дружеские отношения с коллегами. Для компании, чьи сотрудники полностью работают удаленно, очень важно настроить коммуникацию между всеми членами команды. В ситуации, когда нет возможности «перекурить» проблему или вместе выпить чашку кофе в размышлениях над сложной задачей, важно, чтобы каждый умел идти на контакт и работать в условиях противоречивых мнений, характеров, точек зрения. Умел самостоятельно учиться и решать проблемы. Организовывать свой рабочий день. Без всех этих навыков, к сожалению, сложно двигаться в одном темпе к общим целям.
Как много собраний у вас проводится? Есть ли особые подходы к ним?
Оксана: Раз в три недели мы проводим в Zoom-обзор спринтов, на котором каждая команда представляет что было сделано за период, вместе обсуждаем нововведения, победы и сложности, которые возникли у каждого отдела. Ежедневных летучки и совещания проводим в основном через Discord. Обычно решение всех вопросов ограничивается созвонами в маленьких группах ответственных за задачу людей. Это проще и быстрее, чем созывать всех.
Очно мы встречаемся примерно раз в полгода — стараемся собрать всю команду, хотя это не всегда получается в силу различных рабочих и личных обстоятельств. Такие встречи мы называем «стратегическими сессиями». Из них всегда выжимаем максимум: командная работа, новые идеи, тимбилдинг и, конечно, отдых и общение с людьми, которых обычно только слышишь или читаешь в чатах.
Как вы боретесь с выгоранием сотрудников?
Оксана: Заметить выгорание при работе с удаленкой бывает трудно, но мы очень стараемся создавать и поддерживать доверительную атмосферу в команде, чтобы никто не стеснялся делиться своими проблемами. Каждый сотрудник может обратиться к своему руководителю и попросить о помощи, если это нужно. Также мы стараемся замечать изменения в стиле работы сотрудника. Типичные признаки: сотрудник меньше выходит на связь, чаще ошибается, больше раздражается и т. д. В таких ситуациях мы всегда стараемся поговорить с человеком напрямую и принять какие-то поддерживающие меры в зависимости от возникшей проблемы.
О технологиях
Какие языки, фреймворки и библиотеки используются на проекте?
Лев: Серверное приложение разработано на фреймворке .NET Core, язык C#. Для разработки фронта сначала комбинировали несколько разных фреймворков (Razor, Blazor, React), но сейчас остановились на Angular.
Что вы можете рассказать об архитектуре проектов?
Лев: «Конструктор конкурсов» создан по классической сервисной архитектуре. Небольшое созвездие подпрограмм общается друг с другом через общую шину данных (Rabbit MQ) или с помощью http-запросов. При этом каждый сервис решает свою бизнес-задачу. У нас есть, например, сервис приема заявок, сервис заключения договора и сервис приема отчетности с соответствующим назначением. Так же в отдельные сервисы вынесен общий функционал. Например, виджеты или рабочие панели, которые должны быть доступны на всех сервисах и предлагать одинаковую функциональность.
Какая у вас принята политика код-ревью?
Лев: Ревью проводится разработчиком, назначенным с помощью рулетки. Замечания обсуждаются в комментариях. В конфликтных ситуациях решение принимает тимлид сервиса, выслушав доводы «за» и «против». Код не сливается, пока нет подтверждения, что все замечания устранены. При ревью выполняется проверка качества кода, соответствие принятым нормам и подходам на проекте. Кроме того, отдельно анализируется и оценивается влияние кода на быстродействие и безопасность системы.
Как выстроен процесс тестирования продукта и взаимодействие с разработчиками?
Лев: Качество кода контролируется по нескольким аспектам. Во-первых, мы используем программные средства, которые позволяют всем разработчикам писать код в одном стиле. Во-вторых, после того как задача выполнена и код написан разработчиком в отдельной ветке, мы просим создавать запрос на внесение изменений в основную ветку. И организуем ревью кода. А самые стабильные участки кода мы покрываем unit-тестами.
Отдельно выстроена система тестирования продуктов. Всё начинается с этапа аналитики требований. Когда цели и задачи сформулированы, макеты отрисованы, мы собираемся небольшой командой (куда входят специалисты всех отделов) и обсуждаем будущий функционал, выявляем неудобства и слабые места. Подобное обсуждение помогает сэкономить время и деньги, а также увеличить надежность продукта. Внести изменения в программе на этапе проектирования куда дешевле, чем когда продукт уже отрисован, сверстан и запрограммирован.
После проработки задач происходит планирование и формирование тестовых сценариев для проверки. Зачастую, наши тестировщики взаимодействуют с разработчиками, чтобы узнать возможные уязвимости и то, на что стоит обратить особое внимание. Это позволяет лучше узнавать продукт и составлять более качественные тестовые сценарии.
Мы используем методологию Scrum, но релизы иногда бывают чаще двух-трех раз в неделю. И чтобы поддерживать такой ритм, без автоматизированных тестов никак не обойтись. Мы стремимся в первую очередь покрыть большую часть основных сценариев автотестами, что позволит ручным тестировщикам больше сосредоточиться на тестировании нового функционала и лучше распределить нагрузку внутри отдела.
Как устроен процесс документации и ведения базы знаний на проектах?
Игорь Люлюкин: Система знаний «Миртех» делится на две части. Первая часть базы построена в формате Вики — то, что мы знаем об использовании продуктов, об инструментах разработки и самих рабочих процессах внутри нашей команды и компании. Она реализована на базе Confluence и дает возможность разграничивать данные по ролям. Вторая часть связана с дизайном. В Figma мы храним информацию о разработанных интерфейсах, оформлении коммуникации в онлайн- и оффлайн-каналах. Все описания к интерфейсу продуктов, гайды для разработчиков, дизайнеров и других специалистов находятся в Zeroheight. Мы ведем данный проект по кодированию вместе с Frontend-разработчиками, что помогает оптимизировать процесс как дизайна, так и разработки за счет внедрения единой системы нейминга и подхода к компонентам.
Есть публичная часть базы знаний, доступная нашим клиентам, с описанием функционала и дорожной картой релизов в Trello.
Каков процент легаси-кода на проекте и как часто разработчики занимаются его рефакторингом?
Лев: Рефакторинг выполняется регулярно в рамках развития продукта, если в этом видит необходимость руководитель группы. Уровень легаси-кода стараемся держать на уровне не более 5%.
Оценивайте своих работодателей на Хабр Карьере! Это анонимно. Можно ругать или хвалить, но главное, чтобы оценка была честной.