Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Drawio
baseUrlhttps://crystals.atlassian.net/wiki
diagramNameДиаграмма без названия.xml
contentId765067450
width1106.5
zoom1
pageId761331911
diagramDisplayNameДиаграмма без названия.xml
lbox1
contentVer2
height299.5
revision2

Ниже описаны правила и средства взаимодействия между CSI и внешними разработчиками.

CSI:

Якорь
ProductOwner
ProductOwner
Product owner

Внешней команде разработчиков со стороны CSI выделяется Product Owner (далее - PO или владелец продукта).
PO предоставляет команде разработки пользовательские истории или функциональные сценарии.
Назначает процесс работы (Scrum, Kanban), сроки выполнения задач, размеры итераций.
PO принимает выполненные работы, принимает решение об их готовности, завершённости.

Якорь
Userstory
Userstory
Пользовательские истории / функциональные сценарии

Пользовательские истории (user stories) должны содержать:

...

Команда разработки приступает к выполнению задач, только после полного понимания пользовательской истории / функциональных сценариев.
Необходимые ответы на вопросы и уточнения могут вноситься перед началом выполнения работ.
Пользовательские истории ведутся в Jira.

Якорь
Jira
Jira
Jira

CSI может предоставить внешним разработчикам доступ к Jira на время выполнения работ.
В этом случае разработчики, тестировщики своевременно меняют статус работ в Jira (ToDo, In progress, Test, Ready и т.п.)

Якорь
Confluence
Confluence
Размещение документации в Confluence

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

Якорь
Jenkins
Jenkins
Jenkins

Запуск сборок, статического анализа кода, unit и функциональных тестов происходит в Jenkins на стороне CSI
При подготовке к разработке DevOps команда CSI подготавливает необходимые ресурсы и создает заготовки Jenkinsfile (файлы с описанием процесса сборки и тестирования продукта).
Изменение Jenkinsfile может производиться аутсорс-разработчиками или DevOps на стороне CSI (обговаривается при старте проекта)

Инфраструктура для тестовых и демонстрационных стендов может быть предоставлена CSI по требованию.
Требования к инфраструктуре определяются на этапе согласования проекта.

Якорь
Github
Github
GitHub

CSI предоставляет разработчикам доступ в приватный репозиторий, мастер ветка защищается от push.
Попадание в мастер ветку происходит только через pull request.
CSI готовит шаблон требований к pull request в репозитории.
Пример шаблона:

...

Наименование веток и комментарии к комитам должны содержать краткий код пользовательской истории.
Это необходимо для интеграции Jira и GitHub, например из пользовательской истории можно перейти к pull request и посмотреть изменения в коде.

Якорь
Codestyle
Codestyle
Code style

Codestyle manifest

Intellij IDEA codestyle

Eclipse codestyle

Eclipse import order

Якорь
Sonarqube
Sonarqube
Статический анализ кода SonarQube

При старте проекта DevOps CSI добавляют репозиторий в SonarQube на стороне CSI

Якорь
Codereview
Codereview
Code review

Разработчики назначают ревьюверов в pull request.
Ревьюверы должны проставить статус approve или попросить устранить найденные замечания.
Разработчики должны устранить указанные замечания в коде.

Список возможных участников Code review определяется перед стартом проекта
SLA проведения Code Review определяется перед стартом проекта

Якорь
Frameworks
Frameworks
Фреймворки для автоматизированного тестирования

Аутсорс-разработчикам передаются инструменты для автоматизированного тестирования продуктов CSI.
По инструментам оказывается консультативная помощь и доработка.

Якорь
Testrail
Testrail
TestRail

Сценарии использования функциональности по каждой из задач заносятся PO в систему TestRail и прикрепляются к задаче в Jira.
Внешние разработчики имеют доступ к системе TestRail.

...

Outsource:

Якорь
Developing
Developing
Developing

Разрабочики пишут код в соответствии code style manifest.
Для сборки Java-проектов используется gradle.

Разработчики самостоятельно пишут gradle-файл.

Якорь
Unittests
Unittests
Unit tests

Разработчики пишут юнит тесты. 
Измерение покрытия кода тестами осуществляется Jacoco.
Покрытие кода (среднее от показателей BRANCH + LINE) должно быть не менее 60%.

Покрытие кода измеряется автоматически при запуске сборки в Jenkins на стороне CSI.
При несоблюдении требований к покрытию задача не считается выполненной.

Якорь
Autotests
Autotests
Автоматизированные функциональные тесты

Разработчики реализуют автоматизированные функциональные тесты, покрывающие сценарии использования, предоставленные PO вместе с задачей.
Результат выполнения автоматизированных тестов контролируется при помощи Jenkins на стороне CSI.

...

При отсутствии функциональных тестов или их падении задача не считается выполненной.

Якорь
Sonarqube
Sonarqube
Разбор и устранение замечаний системы статического анализа кода

Разработчики должны разобрать и устранить замечания уровней Critical и Blocker от системы статического анализа кода SonarQube.

Без исправления Critical и Blocker замечаний задача не считается выполненной.

Якорь
Docs
Docs
Документация

В требованиях пользовательской истории или в момент приёмки работ Proudct Owner может потребовать составить техническую документацию (API, способы эксплуатации, скрытые настройки, способ мониторинга и т.п.)
Документация готовится разработчиками и публикуется в соответствующем пространстве в Confluence CSI.

...