Как измерить Разработку и DevOps?

DORA, SPACE, SDLC и классификация измерений.

Michael Sokolov
3 min readOct 25, 2023
DALL·E — Photo of a diverse group of software developers discussing metrics on a whiteboard.

DORA

DORA (DevOps Research and Assessment, сейчас часть Google Cloud) использует четыре ключевые метрики для измерения производительности разработки и эксплуатации программного обеспечения:

  1. Частота развертывания (Deployment Frequency): Насколько часто происходит выпуск кода в производственную среду.
  2. Время восстановления (Mean Time to Restore, MTTR): Сколько времени, в среднем, требуется для исправления инцидента, приводящего к сбою системы или снижению ее качества.
  3. Время до изменения (Lead Time for Changes): Время между моментом, когда команда начинает работу над изменением, и моментом, когда это изменение успешно развертывается в производстве.
  4. Процент успешных изменений (Change Failure Rate): Процент развертываний, вызывающих инцидент или снижение качества сервиса.

Пожалуй, эту оценку можно считать базой. Концепция DORA Core Model, обширна, и охватывает и взаимосвязи, и возможности, и показателей и результаты.

SPACE

Метрики SPACE были разработаны в сотрудничестве GitHub и Microsoft Research для измерения и улучшения производительности инженерных команд. Вот краткое описание каждой из метрик SPACE:

  1. S — Удовлетворение и благополучие (Satisfaction & Well-being): Измеряет уровень удовлетворенности и благополучия инженеров. Это может включать в себя опросы, оценки настроения и другие методы сбора обратной связи.
  2. P — Производительность (Performance): Сосредоточено на измерении того, насколько эффективно команда выполняет свою работу. Может включать в себя такие показатели, как время отклика на ошибки, время на разработку и т. д.
  3. A — Активность (Activity): Отслеживание активности инженеров, таких как количество коммитов, слияний и других действий в рамках рабочего процесса.
  4. C — Общение и сотрудничество (Communication & Collaboration) : Измеряет, насколько хорошо команда общается и сотрудничает. Это может включать анализ коммуникаций, ревью кода и другие взаимодействия в команде.
  5. E — Эффективность и поток (Efficiency & Flow) : Оценивает, насколько гладко и эффективно работает рабочий процесс команды. Это может включать в себя измерение времени ожидания ревью, частоты развертывания и другие показатели потока.

SDLC

SDLC (Software Development Life Cycle) — это процесс разработки программного обеспечения, включающий в себя различные этапы, такие как планирование, анализ, проектирование, разработка, тестирование и развертывание. Метрики SDLC — используются для измерения и анализа эффективности и производительности на различных этапах жизненного цикла разработки ПО. Ниже представлены некоторые из общих метрик SDLC:

  1. Время разработки: Количество времени, затраченного на разработку функции или продукта.
  2. Количество ошибок: Число обнаруженных ошибок на разных этапах разработки и после выпуска продукта.
  3. Время реакции на ошибку: Время между обнаружением ошибки и ее исправлением.
  4. Частота развертывания: Насколько часто изменения вносятся в производственную среду.
  5. Время простоя: Продолжительность времени, когда приложение или система недоступны.
  6. Скорость выполнения: Скорость разработки новых функций или модулей.
  7. Процент успешных развертываний: Доля развертываний, которые прошли без ошибок или несоответствий.
  8. Загрузка рабочей нагрузкой: Количество задач или требований, которые команда обрабатывает за определенный период.
  9. Уровень удовлетворенности клиента: Отзывы и оценки клиентов по отношению к конечному продукту.
  10. Стоимость разработки: Общие затраты на разработку функции, модуля или продукта.

Орг. уровни применения метрик

  • Портфель
  • Система\Решение
  • Команда
  • Сотрудник

Классы метрик

  • Результаты(ценность для потребителей)
  • Поток (рабочий процесс)
  • Человеческий капитал, в широком смысле

Сфокусированность метрик

  • Результаты(Как мы делаем прямо сейчас?)
  • Оптимизация (Что можно оптимизировать?)
  • Возможности (Какие возможности мы закладываем на будущее?)

Классы применимости

  • Точные метрики
  • Опережающие метрики

Используемые материалы

--

--