Обзор 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 ключевых факторов, определяющих опыт разработчиков. Эти факторы имеют наивысшую корреляцию с ключевыми показателями эффективности (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, чтобы быть следить за состоянием в индустрии.