ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Полный цикл внедрения CI/CD в научном стартапе

Заказчик

Продуктовая IT-компания.

Продукт

Наукоёмкое приложение — система моделирования поведения физического объекта в заданных условиях.

Бизнес-вызов

В компании заказчика не применялись непрерывная интеграция и поставка, а также автоматизированное тестирование. Написание Unit-тестов было редкой практикой: покрытие кода составляло около 10%. Соответственно, при любых попытках развить продукт и внедрить изменения возникало большое количество багов.

Процесс поставки проводился вручную и требовал больших затрат: как финансовых, так и временных. Постоянно возникающие баги и задержки релизов привели к состоянию, в котором дальнейшее развитие продукта было невозможно.

Технологические сложности отразились и на продуктивности команды: инженеры потеряли веру в успешность дальнейшей работы и не были мотивированы к внедрению улучшений. В то же время фаундер также был недоволен работой команды, в результате чего атмосфера на проекте была токсичной и сложной.

Заказчик желал ускорить и упростить процессы на проекте, а также добиться высокого качества и стабилизации поставок продукта. Для достижения целей к проекту была подключена команда JazzTeam. Перед нами была поставлена задача по внедрению и настройке CI/CD. Также было необходимо решить проблему недоверия между фаундерами и командой.

Особенности проекта

  • Продукт представляет собой десктопное решение с установленной аппаратно-программной защитой и сложной схемой поставки.
  • С психологической точки зрения у владельца бизнеса и разработчиков установились рассинхронизация и недопонимание. Постоянное недовольство инженеров и негативная обратная связь от владельца привели к тому, что в команде накалилась атмосфера и увеличилась токсичность.
  • Фактическое внедрение CI/CD проводилось силами команды заказчика. Со стороны JazzTeam к проекту был подключён менеджер, который управлял всеми процессами на проекте.

Полный цикл внедрения CI/CD в научном стартапе

Диаграмма: Полный цикл внедрения CI/CD в научном стартапе

Подходы и решения

  • Глубокий анализ процессов разработки и поставки на проекте. Чтобы процесс CI/CD принёс компании заказчика максимальную пользу, наши специалисты глубоко изучили особенности, среду окружения и экосистему проекта. По результатам исследования были подготовлены необходимые мануалы, диаграммы, а также техническое задание. Это позволило систематизировать и разбить на чёткие этапы процесс внедрения непрерывной интеграции и поставки, а также назначить дедлайны по достижению целей.
  • Организация ежедневных работ по внедрению CI/CD. Так как система имела сложную архитектуру и нетипичный стек технологий, задача по внедрению CI/CD на проекте была действительно нетривиальной и требующей исследований. В команде установилось высокое сопротивление к написанию Unit-тестов: у сотрудников не было мотивации работать над сложной, абсолютно новой для них задачей. Поэтому наш менеджер принял решение начать ежедневные исследования (1 час в день) по автоматизации тестирования и внедрению CI/CD.
  • Внедрение автоматизированного UI и Unit-тестирования. На проекте введена практика обязательного написания Unit-тестов разработчиками. Ежедневное UI-тестирование критических функций продукта в максимально приближенной к продакшену сборке позволило изменять текущий код продукта с минимальными рисками пропуска регрессионных багов.
  • Поэтапное, итеративное внедрение непрерывной интеграции и поставки. Эффективность каждого этапа регулярно оценивалась, обсуждалась с командой и фаундером. Таким образом, инженеры видели постоянный прогресс и получили мотивацию для дальнейшей работы.

Результаты и достижения

  • Внедрены непрерывная интеграция и поставка (CI/CD). Спустя 2 месяца с момента внедрения данная практика начала приносить первые результаты: процесс создания дистрибутивов продукта стал быстрым и безопасным, что позволило существенно высвободить время и увеличить производительность команды.
  • Внедрена автоматизация тестирования на всех уровнях (Unit-тестирование, UI). Данные активности были органично встроены в CI/CD процесс, что позволило обеспечить быстрые поставки, разрабатывать надёжный софт и оптимизировать процессы на проекте.
  • Через внедрение CI/CD в команде порождена инженерная культура и налажена постоянная работа с техническим долгом. До нашего включения в проект главной целью команды было быстрое внедрение функционала, специалисты не уделяли должного внимания качеству и поддержке продукта. Уже через 3 месяца со старта сотрудничества команда разработки начала сокращать технический долг, использовать и накапливать лучшие инженерные практики, вести необходимую документацию, при этом увеличив скорость создания нового функционала.
  • Постепенные улучшения и автоматизация большого количества рутинных действий помогли решить психологические проблемы в команде. Успехи были замечены фаундером, а также мотивировали инженеров к дальнейшей продуктивной работе, что способствовало налаживанию отношений и установлению благоприятной доверительной атмосферы на проекте.
  • Подготовлена вся необходимая документация по внедрению CI/CD на проекте. Опираясь на созданные мануалы, команда заказчика в будущем сможет легко развивать продукт, а вместе с этим и актуализировать процесс CI/CD.

Используемые технологии

ЗАИНТЕРЕСОВАНЫ В СОТРУДНИЧЕСТВЕ?

СВЯЖИТЕСЬ С НАМИ