Разработка и выпуск сборок

С точки зрения программиста Devprom ALM решает следующие задачи:

  • визуализирует список текущих задач;
  • хранит функциональные и технические требования, в том числе в виде UML-диаграм;
  • обеспечивает трассировку от исходных первичных требований до программного кода;
  • позволяет вести учет рудозатрат.

Коммиты

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

Поддерживаемые типы систем контроля версий:

  • Subversion - работа по протоколу WebDAV с удаленными сервером.
  • Git - работа с локальными, удаленными и специализированными репозиториями, например, GitHub или GitLab.
  • TFS - работа с удаленным сервером TFS через кросс-платформенную библиотеку Team Explorer Everywhere.

В модуле "Коммиты" описан перечень команд, которые можно использовать, добавляя в текст (описание) коммита. Можно не только связывать коммиты с задачами и требованиями, но также списывать трудозатраты, оставлять комментарии и изменять состояние элемента работы. В описании коммита разработчик добавляет магические фразы, типа I-123 #time 2h, которые позволяют системе связать этот коммит с доработкой и списать затраченное время.

Devprom ALM автоматически строит и отображает трассировки от заявок, требований до конкретных изменений в коде и позволяет просматривать эти изменения без необходимости установки дополнительного ПО.

Чтобы сопоставить пользователей Devprom ALM и учетные записи в системе контроля версий, необходимо настроить мэппинга в параметрах репозитория. Это позволит системе понимать, кто из пользователей сделал коммит, позволит отобразить графики изменений и частоты коммитов.

Ревью кода

С каждым коммитом кода может быть сопоставлено одно или несколько ревью. Devprom ALM не является полноценным инструментов для проведения ревью кода. Для этого уже есть несколько бесплатных инструментов, например, ReviewBoard или UpSource.

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

Управление выпуском продуктов

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

Цель непрерывной интеграции - как можно раньше собрать, проверить продукт и сообщить команде о его качестве. Для реализации непрерывной интеграции вы можете использовать, например, Jenkins, который соберет продукт, запустит модульные и функциональные автотесты, сообщит Devprom о наличии сборки, импортирует в Devprom отчеты по тестированию, а также сообщит какие доработки были реализованы и какие ошибки исправлены.

Команда разработки фокусируется на качественных сборках, разрабатывает автоматические тесты и старается не допускать длительного отсутствия качественных сборок.

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

Платформа Devprom ALM не занимается сборкой и выкладкой приложений. Для этого есть специальные инструменты под названием серверы сборок (сборочные серверы, сборщики), например, Jenkins, TeamCity. Эти инструменты настраиваются на непрерывный цикл выпуска сборок и выполняют все необходимые для этого действия.

Devprom ALM позволяет визуализировать сборки и их статус: в процессе сборки, сборка сломалась, успешно развернута и т.п. В модуле "Сборки" описана команда, используемая для интеграции сборочного сервера и платформы. В дополнение к информации о статусе сборки, вы можете сообщать расположение сборки и выдержку их журнала сборки (или ссылку на журнал сборки).

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

Если вы собираете несколько приложений в рамках одного проекта, то используйте поле "Приложение", в котором можно сохранить его название.

В модуле "Сборки" отображаются все добавленный сборки, их статус, информация о тестах, реализованных требованиях и обнаруженных дефектах. Это основной информационный радиадор готовности продукта (или его сборок) к передачи для ознакомления тестировщикам, аналитикам, представителям заказчика или конечным пользователям.

Когда у вас накопится много сборок, используйте признак "Устарела", чтобы отметить устаревшие сборки. В выпадающих списках на формах будут отображаться только актуальные (неустаревшие) сборки.

Мониторинг инфраструктуры, DevOps

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

Среди инструментов мониторинга обычно используют:

  • Инструменты мониторинга параметров работы операционной системы и промежуточного ПО (базы данных, почтовый сервер и т.п.)
  • Инструменты мониторинга ошибок или производительности приложений и их компонентов
  • Инструменты мониторинга исключительных ситуаций, возникающих на любом уровне технологического стека

При помощи механизма webhooks, поддерживаемого всеми основными инструментами мониторинга (Server Density, New Relic и т.п.), Devprom позволяет:

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