В мае 2023 года в профессиональном журнале ACM Queue был представлен
фреймворк DevEx для понимания и измерения опыта разработчиков (
Developer Experience), созданный авторами Abi Noda, Margaret-Anne Storey, Nicole Forsgren и Michaela Greiler.
Авторы определяют Developer Experience как совокупность того, как разработчики относятся к своей работе, как они о ней думают и какую ценность ей придают. Developer Experience отражает реальный повседневный опыт разработчиков и те препятствия, с которыми они сталкиваются в процессе работы, при этом формируется не только инструментами: значимую роль играют человеческие факторы, такие как наличие ясных целей по проектам и ощущение психологической безопасности в команде. Опыт разработчика сильно зависит от контекста: команды, роли, зоны ответственности и уровня зрелости специалиста.
В статье представлены два фреймворка:
Practical framework для понимания Developer Experience и
Measurement framework, который объединяет обратную связь от разработчиков с данными об инженерных системах, с которыми они взаимодействуют. В совокупности эти фреймворки дают руководителям четкие и прикладные ориентиpы относительно того, что необходимо измерять и на чем следует фокусироваться для улучшения продуктивности разработчиков (Developer Productivity).
Practical Framework сводит Developer Experience к трем ключевым измерениям (Dimensions):
Feedback Loops,
Cognitive Load и
Flow State. Эти измерения сформированы на основе
исследования, в котором были выявлены 25 социотехнических факторов, влияющих на Developer Experience. Пересечение этих факторов с тремя измерениями формирует практическую модель, позволяющую всесторонне понимать опыт разработчиков.
Циклы обратной связи (Feedback loops)Под циклами обратной связи авторы понимают скорость и качество получения отклика на выполняемые действия. Быстрые циклы позволяют разработчикам выполнять работу оперативно и с минимальными препятствиями. Медленные, напротив, прерывают процесс разработки и приводят к задержкам, поскольку разработчики вынуждены ждать или переключаться на другую задачу. Для улучшения Developer Experience организациям необходимо сокращать циклы обратной связи, выявляя области, в которых можно ускорить работу инструментов разработки (например, процессы сборки, тестирования, настройку окружений), а также оптимизируя процессы передачи задач между разработчиками. Организационная структура также должна поддерживать упрощенные взаимодействия между командами, минимизирующие задержки.
Когнитивная нагрузка (Cognitive load)Когнитивная нагрузка отражает объём умственных усилий и рабочей памяти, необходимых разработчику для выполнения задачи. Для улучшения Developer Experience командам и организациям следует снижать когнитивную нагрузку путем устранения ненужных препятствий в процессе разработки. Особое внимание следует уделять поддержанию понятной и логично организованной структуры кода, а также качественной документации, которые упрощают понимание систем и уменьшают количество контекстных переключений. Специализированные DevEx и платформенные команды должны предоставлять удобные и понятные инструменты самообслуживания, позволяющие разработчикам упрощать и ускорять ключевые этапы разработки и релизов.
Состояние потока (Flow state)Состояние потока — ментальное состояние, при котором человек полностью погружен в выполняемую деятельность, испытывая высокую концентрацию, полную вовлеченность и удовлетворение. Для улучшения Developer Experience следует создавать условия, оптимальные для достижения разработчиками состояния потока. Прерывания необходимо минимизировать, группируя встречи в выделенные временные интервалы, исключая незапланированные задания и консолидируя запросы о помощи. Состояние потока также зависит от культуры в команде, обеспечивающей разработчикам автономию и возможности работать над значимыми задачами.
Measurement Framework включает в себя три группы метрик:
- Метрики восприятия (Perceptions) — отражают то, как разработчики воспринимают инструменты, процессы, инженерные системы и условия работы; какие препятствия они испытывают, насколько эффективно могут выполнять задачи и как оценивают собственный опыт;
- Метрики рабочих процессов (Workflows) — представляют собой объективные данные о системах и инженерных процессах, с которыми взаимодействуют разработчики. Они включают показатели скорости сборки, длительности циклов обратной связи, стабильности окружений, времени передачи задач, частоты прерываний и другие технические характеристики, отражающие фактическую эффективность рабочих процессов;
- Ключевые метрики (KPIs, North Star Metrics) — измеряют высокоуровневые результаты, на которые направлено улучшение Developer Experience и с которыми оно коррелирует: продуктивность, удовлетворенность, вовлеченность и удержание сотрудников.
Авторы приводят рекомендации по использованию фреймворков:
- Анализируйте метрики восприятия и рабочих процессов совместно. Совместный анализ позволяет выявлять расхождения и получать целостное представление о препятствиях в работе;
- Учитывайте ключевые результаты для сохранения общей картины. Высокоуровневые показатели помогают понять влияние изменений на продуктивность, удовлетворенность, вовлеченность и удержание, предотвращая фокус на локальных улучшениях;
- Применяйте опросы как основной источник данных и опирайтесь на валидированные конструкты. Опросы позволяют быстро находить препятствия и отслеживать динамику, но вопросы должны основываться на четко определенных конструктах (Constructs), чтобы обеспечивать точность и надёжность результатов;
- Разбивайте результаты по командам и персонам. Анализ только агрегированных данных скрывает важные локальные проблемы, которые могут оказывать существенное влияние на эффективность;
- Сравнивайте результаты с бенчмарками (Benchmarks). Сравнительный анализ внутри организации и по отрасли помогает корректно интерпретировать показатели и определять области, где Developer Experience требует приоритетного внимания.
В финале авторы подчеркивают несколько тезисов:
1. Developer Experience следует начать измерять как можно раньше, даже если формальной инициативы еще нет;
2. Developer Experience повышает адаптивность инженерной организации к изменениям, включая переход к удалённой работе и широкое внедрение AI инструментов;
3. Для небольших компаний и стартапов Developer Experience является фундаментом скорости разработки и способности быстро находить Product-market fit;
4. В крупных организациях улучшение Developer Experience напрямую влияет на эффективность инженерных процессов, качество продукта и удержание сотрудников.
Таблица ниже иллюстрирует DevEx framework, сопоставляя ключевые результаты с примерами метрик восприятия и метрик рабочих процессов по каждому из трех измерений: