SAFe: Непрерывная интеграция (Continuous Integration), опросник

Непрерывная интеграция (Continuous Integration, CI) — это процесс создания функций из бэклога программы, их разработки, тестирования, интеграции и валидации в промежуточной среде, где они готовы для дальнейшего развертывания и выпуска. Непрерывная интеграция является вторым элементом из четырёх в конвейере непрерывной доставки.

Вопрос 1: Разработка

Разработка в конвейере непрерывной доставки включает разделение функций на истории, реализацию историй в вертикальных срезах с использованием Test-Driven Development (TDD) и фиксацию изменений в системе управления версиями по мере их внесения. Пожалуйста, оцените способность вашей команды быстро и надежно разрабатывать и внедрять истории.

Сидеть (1-2): Журнал невыполненных работ команды не существует или не используется для управления повседневной работой.

Ползти (3-4): Истории либо неполные, либо слишком многословные; модульные тесты, как правило, не пишутся; экспертные оценки не проводятся.

Идти (5-6): Истории завершены; большинство изменений проходят модульные тесты; обычно проводятся экспертные оценки.

Бежать (7-8): Код проверяется ежедневно; охват модульным тестированием составляет более 80%; всегда проводятся экспертные оценки.

Летать (9-10): Код проверяется несколько раз в день; тесты пишутся перед написанием кода (TDD); работа в паре и другие встроенные методы контроля качества являются нормой.

Вопрос 2: Сборка

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

Сидеть (1-2): Сборки выполняются менее одного раза за итерацию и/или полностью выполняются вручную.

Ползти (3-4): Сборки выполняются один раз за итерацию и частично автоматизированы; ветки разработки открыты в течение месяца или более; сборки часто прерываются.

Идти (5-6): Автоматические сборки выполняются один раз в день; неработающие сборки исправляются через 2-4 часа; для каждой сборки выполняются ручные модульные тесты; ветки разработки открыты в течение 2-4 недель.

Бежать (7-8): Сборки запускаются автоматически при фиксации кода; неработающие сборки исправляются в течение 1 часа; автоматические модульные тесты выполняются для каждой сборки; ветки разработки объединяются в магистраль на каждой итерации.

Лететь (9-10): Сборки выполняются при каждой фиксации; сборки включают статический анализ кода и тестирование безопасности; закрытые фиксации предотвращают попадание дефектов в систему управления версиями; ветви dev объединяются в магистраль при каждой фиксации.

Вопрос 3: Сквозное тестирование

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

Сидеть (1-2): Тестирование выполняется вручную в средах, которые не имитируют производственную среду; тестирование выполняется большими партиями во время запланированной фазы «тестирования».

Ползти (3-4): Тестирование в основном проводится вручную в непроизводственных средах; истории внедряются и тестируются независимо в рамках одного PI.

Идти (5-6): Половина тестирования автоматизирована и выполняется в среде, подобной производственной, или имитирующей производственную среду, каждый день.

Бежать (7-8): Большинство тестов автоматизированы и выполняются в средах, подобных производственным; истории внедряются и полностью тестируются на каждой итерации.

Летать (9-10): Успешные сборки запускают автоматическое развертывание в тестовых средах, подобных производственным; все тесты автоматизированы; тесты выполняются параллельно, и изменения полностью проверяются после каждой фиксации.

Вопрос 4: Поставка

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

Сидеть (1-2): Промежуточная среда не существует, или мы используем тестовую среду для промежуточной обработки.

Ползти (3-4): Компоненты развертываются вручную в промежуточной среде один раз в PI.

Идти (5-6): Функции развертываются в промежуточной среде один раз в месяц и демонстрируются руководству продукта.

Бежать (7-8): Функции и инфраструктура автоматически развертываются в промежуточной среде на каждой итерации и принимаются руководством продукта.

Лететь (9-10): Истории, изменения и инфраструктура автоматически развертываются в промежуточной среде, проверяются и немедленно приступают к развертыванию.

Вопрос 5: Качество

Высококачественный продукт — это стратегический результат непрерывной интеграции. «Переключаясь влево», работая небольшими партиями, интегрируя и тестируя изменения в среде, подобной производственной, и не позволяя дефектам распространяться дальше, команды обеспечивают качество каждого продукта, снижают риски в процессе развертывания и гарантируют, что ценность обеспечивается на постоянной основе.

Сидеть (1-2): Четкого понимания качества работы не существует.

Ползти (3-4): В процессе производства обнаруживается множество дефектов и проблем с безопасностью.

Идти (5-6): В процессе производства обнаружено несколько дефектов и проблем с безопасностью.

Бежать (7-8): В процессе производства практически не обнаруживается дефектов и проблем с безопасностью.

Лететь (9-10): Все дефекты и проблемы безопасности обнаруживаются в процессе разработки.

Вопрос 7: Насколько ваши клиенты удовлетворены качеством, обеспечиваемым вашей командой?

10 = Чрезвычайно счастлив, 1 = Чрезвычайно несчастлив

Сидеть: 1 или 2

Ползти: 3 или 4

Идти: 5 или 6

Бежать: 7 или 8

Лететь: 9 или 10

Share

Сертифицированный скрам-мастер, тренер и коуч Сфера интересов: Развитие команд и организаций, тренинги и обучение