Обзор DX25 Core Model

В конце 2023 года компания GetDX представила модель DX25 Core Model для оценки и улучшения опыта разработчиков (Developer Experience). Модель основана на исследовании, в которое вклад внесли Dr. Margaret-Anne Storey, Dr. Nicole Forsgren, Dr. Michaela Greiler, Dr. Liz Pavese и другие. Модель DX25 была успешно внедрена и используется сотнями компаний, включая Dropbox, Twilio и Brex.

Модель включает три основных компонента:
  1. DX Drivers. Объединяет 25 ключевых факторов, определяющих опыт разработчиков. В частности, это факторы DevEx, которые по результатам исследования имеют наивысшую корреляцию с ключевыми показателями эффективности (KPI) в отрасли.
  2. DX KPIs. Объединяет три валидированных KPI для опыта разработчиков, которые коррелируют с бизнес-результатами;
  3. Outcomes. Объединяет бизнес-результаты, такие как коммерческая эффективность, вовлечённость сотрудников и текучесть кадров.

DX Drivers:
  1. Batch size. Размер партии — это объём работы, объединённый в один цикл или этап разработки. Уменьшение размера партии означает разбиение проектов и задач на более мелкие части. Сокращение размера партий снижает когнитивную нагрузку, повышает мотивацию и чувство срочности, а также сокращает циклы обратной связи.
  2. Build processes. Процессы сборки — это автоматизированные шаги, которые упаковывают, тестируют и проверяют код. Эти шаги выполняются как в рамках процесса релиза, так и при проверке отдельных изменений. Оптимизация процессов сборки снижает когнитивную нагрузку и сокращает циклы обратной связи.
  3. Clear direction. Ясность направления — это степень понимания разработчиками миссии, целей и общего контекста команды в рамках организации. Более ясное направление снижает когнитивную нагрузку, улучшает принятие решений и качество программного обеспечения, а также повышает мотивацию и состояние потока.
  4. Code review. Код-ревью охватывает своевременность и качество получаемой обратной связи, а также опыт проверки кода других разработчиков. Поскольку код-ревью является частым элементом рабочего процесса, оно существенно влияет на опыт разработчика. Эффективные процессы ревью повышают качество программного обеспечения и сокращают циклы обратной связи.
  5. Codebase experience. Опыт работы с кодовой базой означает лёгкость понимания и изменения кода. Это значительно влияет на общий опыт разработчика, поскольку большая часть времени посвящается работе с кодом. Улучшение опыта работы с кодовой базой снижает когнитивную нагрузку и повышает мотивацию и состояние потока.
  6. Connectedness. Связность команды — это ощущение сопричастности и связи с другими в рабочей среде. Она формируется посредством коммуникации и взаимодействия вне обязательных рабочих контактов. Связность способствует сотрудничеству, что ведёт к более быстрым и качественным поставкам.
  7. Cross-team collaboration. Межкомандное взаимодействие отражает то, как разные команды в организации координируют и согласуют свою работу. Включает коммуникацию, обмен знаниями, разрешение зависимостей и интеграцию потоков работы.
  8. Deep work. Глубокая работа — это способность сосредоточенно работать над задачами без отвлечений. Глубокая работа достигается за счёт снижения количества прерываний и переключений контекста, а также при создании условий для управления собственным временем. Она снижает когнитивную нагрузку и повышает мотивацию и поток, улучшая скорость и качество разработки.
  9. Documentation. Документация помогает разработчикам получать информацию, необходимую для выполнения технических задач. Качественная документация должна быть структурированной, доступной и актуальной. Она влияет на когнитивную нагрузку и циклы обратной связи, определяя скорость и качество разработки.
  10. Ease of release. Лёгкость релиза отражает количество трений, возникающих при выпуске кода пользователям. Включает шаги по валидации, упаковке и деплою. Лёгкость релиза влияет на когнитивную нагрузку и общий объём усилий, необходимых для доставки, определяя скорость вывода функций.
  11. Efficient processes. Эффективные процессы отражают то, насколько эффективно члены команды взаимодействуют при проектировании и доставке программного обеспечения. Включают принципы, рабочие процессы и распределение ролей. Эффективные процессы снижают когнитивную нагрузку и сокращают циклы обратной связи, улучшая скорость и качество поставки.
  12. Experimentation. Экспериментирование включает деятельность по генерации идей, проверке гипотез и получению выводов из экспериментов. Это способствует мотивации и потоку, а также повышает качество программного обеспечения.
  13. Incident response. Реагирование на инциденты описывает то, как разработчики обрабатывают и устраняют проблемы в системах. Включает триаж, назначение, шаги устранения и коммуникацию. Трение в процессе реагирования увеличивает стресс, когнитивную нагрузку и количество принудительных переключений контекста.
  14. Learning culture. Культура обучения — это характеристика команды, выражающая стремление к постоянному улучшению и обучению на опыте. Обычно проявляется через ретроспективы и постмортемы. Развитая культура обучения улучшает опыт разработчиков, повышая скорость и качество разработки.
  15. User feedback. Использование обратной связи от пользователей включает сбор, анализ и действия на основе сигналов от конечных пользователей. Требует структурированных циклов обратной связи и налаженных каналов коммуникации. Это повышает качество программного обеспечения и увеличивает мотивацию и поток разработчиков.
  16. Local development. Локальная разработка — это процесс внесения и проверки изменений кода при создании новых функций. Зависит от скорости, отзывчивости и удобства инструментов разработки. Влияет на когнитивную нагрузку и циклы обратной связи во время активной разработки.
  17. Local environment. Локальная среда включает настройку системы разработчика для создания и тестирования изменений. Включает установку зависимостей и запуск исходного кода. Важно для онбординга, а также вызывает постоянное трение при поддержке.
  18. Tech debt. Технический долг существенно влияет на продуктивность и удовлетворённость разработчиков. Эффективное управление включает выявление, анализ и устранение. Избыточный технический долг увеличивает когнитивную нагрузку, тормозит циклы обратной связи и снижает мотивацию.
  19. On-call experience. Опыт дежурства включает частоту алертов, обработку инцидентов, поддержку и влияние на моральное состояние. Существенно влияет на удовлетворённость разработчиков.
  20. Production debugging. Отладка в продакшене включает наблюдение, диагностику и устранение проблем в рабочих средах. Упростив этот процесс, можно снизить когнитивную нагрузку, ускорить устранение инцидентов и повысить стабильность системы.
  21. Realistic timelines. Реалистичные сроки требуют тщательного планирования, согласования заинтересованных сторон, коммуникации и доверия. Чрезмерно агрессивные сроки снижают мораль и качество.
  22. Requirements quality. Качество требований отражает полноту и ясность спецификаций. Некачественные требования увеличивают когнитивную нагрузку, снижают мотивацию и приводят к переработкам.
  23. Say on priorities. Влияние на приоритеты отражает участие разработчиков в формировании направлений работы команды. Участие разработчиков повышает качество решений и мотивацию.
  24. Test coverage. Покрытие тестами отражает степень охвата автоматизированными тестами. Улучшение покрытия снижает когнитивную нагрузку и ускоряет циклы обратной связи.
  25. Test efficiency. Эффективность тестирования отражает скорость и стабильность автоматизированного тестового набора. Низкая эффективность замедляет циклы обратной связи и поставку.

DX KPIs:
  1. Speed. Темп поставки программного обеспечения командами.
  2. Ease of delivery. Насколько легко или сложно разработчикам доставлять программное обеспечение в организации.
  3. Quality. Техническая стабильность разрабатываемого программного обеспечения.

Outcomes:
  1. Organizational performance. Организационная эффективность отражает степень достижения организацией коммерческих и некоммерческих целей, включая прибыльность, производительность, долю рынка, операционную эффективность, удовлетворённость клиентов, качество продуктов или услуг и достижение стратегических целей.
  2. Employee engagement. Вовлечённость сотрудников отражает степень их приверженности целям организации.
  3. Lower attrition. Снижение текучести отражает частоту уходов сотрудников по собственному желанию.
  4. Less time waste. Потери времени измеряют количество времени, которое разработчики теряют из-за препятствий или неэффективности рабочей среды.

Модель DX25 Core Model представлена на схеме ниже:
Если вам интересно исследование и улучшение опыта разработчиков (Developer Experience, DevEx, DX) в вашей компании, обращайтесь к нам за помощью.

Мы помогаем компаниям и руководителям оценивать, измерять и развивать инженерную культуру, процессы и практики, помогаем адаптировать фреймворки (DORA, SPACE, DX25, DX Core 4) под контекст, принципы и культуру компании, развиваем внутренние платформы и DevEx/Enablement команды.

Не забывайте подписываться на наш канал Enabling.team Insights, чтобы быть следить за состоянием в индустрии.