Как измерить Разработку и DevOps?
DORA, SPACE, SDLC и классификация измерений.
DORA
DORA (DevOps Research and Assessment, сейчас часть Google Cloud) использует четыре ключевые метрики для измерения производительности разработки и эксплуатации программного обеспечения:
- Частота развертывания (Deployment Frequency): Насколько часто происходит выпуск кода в производственную среду.
- Время восстановления (Mean Time to Restore, MTTR): Сколько времени, в среднем, требуется для исправления инцидента, приводящего к сбою системы или снижению ее качества.
- Время до изменения (Lead Time for Changes): Время между моментом, когда команда начинает работу над изменением, и моментом, когда это изменение успешно развертывается в производстве.
- Процент успешных изменений (Change Failure Rate): Процент развертываний, вызывающих инцидент или снижение качества сервиса.
Пожалуй, эту оценку можно считать базой. Концепция DORA Core Model, обширна, и охватывает и взаимосвязи, и возможности, и показателей и результаты.
SPACE
Метрики SPACE были разработаны в сотрудничестве GitHub и Microsoft Research для измерения и улучшения производительности инженерных команд. Вот краткое описание каждой из метрик SPACE:
- S — Удовлетворение и благополучие (Satisfaction & Well-being): Измеряет уровень удовлетворенности и благополучия инженеров. Это может включать в себя опросы, оценки настроения и другие методы сбора обратной связи.
- P — Производительность (Performance): Сосредоточено на измерении того, насколько эффективно команда выполняет свою работу. Может включать в себя такие показатели, как время отклика на ошибки, время на разработку и т. д.
- A — Активность (Activity): Отслеживание активности инженеров, таких как количество коммитов, слияний и других действий в рамках рабочего процесса.
- C — Общение и сотрудничество (Communication & Collaboration) : Измеряет, насколько хорошо команда общается и сотрудничает. Это может включать анализ коммуникаций, ревью кода и другие взаимодействия в команде.
- E — Эффективность и поток (Efficiency & Flow) : Оценивает, насколько гладко и эффективно работает рабочий процесс команды. Это может включать в себя измерение времени ожидания ревью, частоты развертывания и другие показатели потока.
SDLC
SDLC (Software Development Life Cycle) — это процесс разработки программного обеспечения, включающий в себя различные этапы, такие как планирование, анализ, проектирование, разработка, тестирование и развертывание. Метрики SDLC — используются для измерения и анализа эффективности и производительности на различных этапах жизненного цикла разработки ПО. Ниже представлены некоторые из общих метрик SDLC:
- Время разработки: Количество времени, затраченного на разработку функции или продукта.
- Количество ошибок: Число обнаруженных ошибок на разных этапах разработки и после выпуска продукта.
- Время реакции на ошибку: Время между обнаружением ошибки и ее исправлением.
- Частота развертывания: Насколько часто изменения вносятся в производственную среду.
- Время простоя: Продолжительность времени, когда приложение или система недоступны.
- Скорость выполнения: Скорость разработки новых функций или модулей.
- Процент успешных развертываний: Доля развертываний, которые прошли без ошибок или несоответствий.
- Загрузка рабочей нагрузкой: Количество задач или требований, которые команда обрабатывает за определенный период.
- Уровень удовлетворенности клиента: Отзывы и оценки клиентов по отношению к конечному продукту.
- Стоимость разработки: Общие затраты на разработку функции, модуля или продукта.
Орг. уровни применения метрик
- Портфель
- Система\Решение
- Команда
- Сотрудник
Классы метрик
- Результаты(ценность для потребителей)
- Поток (рабочий процесс)
- Человеческий капитал, в широком смысле
Сфокусированность метрик
- Результаты(Как мы делаем прямо сейчас?)
- Оптимизация (Что можно оптимизировать?)
- Возможности (Какие возможности мы закладываем на будущее?)
Классы применимости
- Точные метрики
- Опережающие метрики
Используемые материалы
- Accelerate: State of DevOps Report 2023
- Yes, you can measure software developer productivity, from McKinsey’s Digital
- ROI of DevOps Transformation: How to quantify the impact of your modernization initiatives
- Measure and Grow — SAFe