Orion Innovation: 5 принципов эффективной работы в ИТ-проектах
Центр разработки Orion Innovation (ранее MERA)
Информационные технологии, системная интеграция, интернет
Проект и задачи
Масштабы продукта можно представить, оценив количество тестов, которые проверяют его качество. Сейчас их более 230 тысяч! Участники проекта вовлечены в работу почти со всеми компонентами решения, предоставляя заказчику услуги по разработке, ручному и автоматизированному тестированию.
Программа стартовала в компании сравнительно недавно, в декабре 2018 года. Сотрудничество, которое начиналось с небольшой группы из восьми тест-автоматизаторов, сейчас насчитывает 12 команд общей численностью 100 человек. Одна из особенностей проекта — работа в распределенных командах. Помимо сотрудников в офисах компании в Нижнем Новгороде, Казани и Вильнюсе, в работу вовлечены удаленные команды из Самары, Воронежа, Новосибирска и других городов России. Сайты разработки заказчика тоже рассредоточены по миру. Налаживать эффективное взаимодействие в команде помогает ряд негласных принципов работы, основанных на богатом опыте управления ИТ-проектами:
- Ориентация на конечный результат.
- Грамотно организованный рабочий процесс.
- Опытная и мотивированная команда.
- Использование современных технологий и методик разработки.
- Автоматизация процессов с помощью инструментов CI/CD.
Принцип 1. Ориентация на конечный результат
Менеджеры в нашем проекте делают все возможное, чтобы у сотрудников было четкое понимание того, что от них требуется в конкретный момент времени и в долгосрочной перспективе. У каждой команды проекта есть свои цели и планы, которые формулирует заказчик. На основе командных целей формируются командные и индивидуальные планы производительности, ставятся задачи на неделю/спринт или месяц. Обеспечить прозрачность работы всех сотрудников на уровне команды нам помогают доски и дашборды в Jira.
Чтобы отслеживать текущий вклад команды в достижение стратегических целей, раз в несколько недель мы отправляем заказчику отчеты с требуемыми показателями. В конце каждого квартала просим заказчика оценить нашу работу по таким критериям, как качество, эффективность, коммуникация, точность оценок и сроков.
Принцип 2. Грамотно организованный рабочий процесс
Продукт существует на рынке более 15 лет, и на стороне заказчика уже имеются довольно хорошо выстроенные процессы разработки ПО. Где-то мы являемся частью команды заказчика, а где-то — самостоятельной «боевой» единицей, но в любом случае основной упор делается на коммуникацию. В процессе работы мы много общаемся — как в чатах, так и на митингах внутри команд и с командами заказчика. Единое информационное пространство помогает нам работать слаженно и делать максимум возможного.
Мы работаем под девизом «Больше кода — меньше документов» и максимально оберегаем наших сотрудников от административной работы. Стараемся избегать двойной отчетности в разных тулах, заполнения однотипных табличек. При этом мы должным образом следим за качеством: проводим обязательное ревью кода, собираем метрики и обсуждаем возможные улучшения как внутри команд, так и с представителями команд заказчика.
Принцип 3. Опытная и мотивированная команда
Для работы в проекте нужно обладать сильной технической экспертизой, поэтому большинство участников команд имеют уровень Middle+ и Senior. При подборе новых сотрудников все кандидаты проходят финальное собеседование с представителем команды заказчика. До финиша доходят самые экспертные и замотивированные. С одной стороны, это замедляет процесс найма, а с другой — помогает формировать настоящие Dream Teams. Несмотря на то, что мы работаем в распределенных командах, сотрудники хорошо общаются между собой. До пандемии мы ездили друг к другу в гости на общие тимбилдинги, а сейчас устраиваем еженедельный Five o’clock Tea в Microsoft Teams, чтобы пообщаться на нерабочие темы.
Сильные составы команд позволяют максимально комфортно освоиться в проекте новым сотрудникам. Для быстрого вхождения предусмотрена четко выстроенная система обучения с тренингом от заказчика и поддержкой наших менторов. Кроме того, мы постоянно следим за тем, чтобы проектная документация находилась в актуальном состоянии. Периодически просим заказчика обновить документы и не перестаем самостоятельно исследовать продукт: записываем видеотренинги и пишем статьи на Wiki для сохранения и передачи знаний.
Чтобы мотивация сотрудников не угасала, стараемся построить для каждого индивидуальный план развития экспертизы в предметной области проекта. Раз в полгода в рамках беседы с руководителем сотрудник информирует менеджера о своих пожеланиях, и они вместе строят план технологического роста. Так как в проекте регулярно появляются новые вакансии, членам команды почти всегда доступна возможность открывать для себя новые технологии или пробовать себя в новом качестве. Например, переквалифицироваться из тест-автоматизатора в разработчики можно за 2–3 месяца.
Принцип 4. Использование современных технологий и методик разработки
Мы работаем по скрам-методологии, но не всегда можем повлиять на выбор подходов к разработке на стороне заказчика. Одна из особенностей нашего проекта — отсутствие единого взгляда на процессы среди менеджеров заказчика. Какие-то команды применяют Agile/Kanban с активным использованием артефактов Jira и множеством митингов, а в одной команде лидеры почти не ведут документацию и формируют сводные отчеты в Excel. В таких случаях мы корректируем свой подход к разработке, но только при условии, что изменения не снизят эффективность нашей работы. Уважая наш опыт участия в аутсорсинговых проектах, заказчик оставляет за нами право вносить предложения и коррективы.
Поскольку заказчик использует последние версии языков и инструментов, члены команды могут прокачаться в топовых технологиях. Мы работаем с самым современным стеком технологий: пишем на последних версиях C++, Java, JavaScript, Python. Используем популярные фреймворки: Spring, Angular и React для разработки; Selenide, TestNG, Cypress для автоматизации тестов.
Принцип 5. Автоматизация процессов с помощью инструментов CI/CD
Решение заказчика является масштабируемым и пользуется большим спросом на растущем рынке виртуальных средств связи. Возможность адаптировать сервис для бизнеса любого размера — от стартапа до крупной корпорации — выгодно выделяет его на фоне популярных аналогов. В 2020 году, в связи с массовым переходом компаний на режим удаленной работы, спрос на продукт увеличился до такой степени, что наш проект вырос более чем в 10 раз!
В процессе кастомизации системы под нужды каждого клиента мы разрабатываем много нового функционала. Ускорить вывод новых версий продукта на рынок помогают инструменты непрерывной интеграции и поставки ПО — Jenkins и GitLab CI. Автоматизация тестов реализована во всех частях продукта, благодаря чему разработчики, тестировщики и менеджеры сразу видят результат своей работы. Быстрая обратная связь по изменениям в коде позволяет команде отслеживать качество продукта и оперативно реагировать на падения. Повышать эффективность работы тест-автоматизаторов помогают еще и внутренние продукты для анализа результатов тестирования, которые разрабатывает и развивает специальная команда.
Прямо сейчас в проекте открыто более 20 позиций для Java Developer, C++ Developer, Java TA, Python TA, Manual QA и по другим направлениям. Смотри вакансии компании, откликайся сам и приводи друзей!