В конце 2023 года компания GetDX представила модель
DX25 Core Model для оценки и улучшения опыта разработчиков (
Developer Experience). Модель основана на исследовании, в которое вклад внесли Dr. Margaret-Anne Storey, Dr. Nicole Forsgren, Dr. Michaela Greiler, Dr. Liz Pavese и другие. Модель DX25 была успешно внедрена и используется сотнями компаний, включая Dropbox, Twilio и Brex.
Модель включает три основных компонента:
- DX Drivers. Объединяет 25 ключевых факторов, определяющих опыт разработчиков. В частности, это факторы DevEx, которые по результатам исследования имеют наивысшую корреляцию с ключевыми показателями эффективности (KPI) в отрасли.
- DX KPIs. Объединяет три валидированных KPI для опыта разработчиков, которые коррелируют с бизнес-результатами;
- Outcomes. Объединяет бизнес-результаты, такие как коммерческая эффективность, вовлечённость сотрудников и текучесть кадров.
DX Drivers:- Batch size. Размер партии — это объём работы, объединённый в один цикл или этап разработки. Уменьшение размера партии означает разбиение проектов и задач на более мелкие части. Сокращение размера партий снижает когнитивную нагрузку, повышает мотивацию и чувство срочности, а также сокращает циклы обратной связи.
- Build processes. Процессы сборки — это автоматизированные шаги, которые упаковывают, тестируют и проверяют код. Эти шаги выполняются как в рамках процесса релиза, так и при проверке отдельных изменений. Оптимизация процессов сборки снижает когнитивную нагрузку и сокращает циклы обратной связи.
- Clear direction. Ясность направления — это степень понимания разработчиками миссии, целей и общего контекста команды в рамках организации. Более ясное направление снижает когнитивную нагрузку, улучшает принятие решений и качество программного обеспечения, а также повышает мотивацию и состояние потока.
- Code review. Код-ревью охватывает своевременность и качество получаемой обратной связи, а также опыт проверки кода других разработчиков. Поскольку код-ревью является частым элементом рабочего процесса, оно существенно влияет на опыт разработчика. Эффективные процессы ревью повышают качество программного обеспечения и сокращают циклы обратной связи.
- Codebase experience. Опыт работы с кодовой базой означает лёгкость понимания и изменения кода. Это значительно влияет на общий опыт разработчика, поскольку большая часть времени посвящается работе с кодом. Улучшение опыта работы с кодовой базой снижает когнитивную нагрузку и повышает мотивацию и состояние потока.
- Connectedness. Связность команды — это ощущение сопричастности и связи с другими в рабочей среде. Она формируется посредством коммуникации и взаимодействия вне обязательных рабочих контактов. Связность способствует сотрудничеству, что ведёт к более быстрым и качественным поставкам.
- Cross-team collaboration. Межкомандное взаимодействие отражает то, как разные команды в организации координируют и согласуют свою работу. Включает коммуникацию, обмен знаниями, разрешение зависимостей и интеграцию потоков работы.
- Deep work. Глубокая работа — это способность сосредоточенно работать над задачами без отвлечений. Глубокая работа достигается за счёт снижения количества прерываний и переключений контекста, а также при создании условий для управления собственным временем. Она снижает когнитивную нагрузку и повышает мотивацию и поток, улучшая скорость и качество разработки.
- Documentation. Документация помогает разработчикам получать информацию, необходимую для выполнения технических задач. Качественная документация должна быть структурированной, доступной и актуальной. Она влияет на когнитивную нагрузку и циклы обратной связи, определяя скорость и качество разработки.
- Ease of release. Лёгкость релиза отражает количество трений, возникающих при выпуске кода пользователям. Включает шаги по валидации, упаковке и деплою. Лёгкость релиза влияет на когнитивную нагрузку и общий объём усилий, необходимых для доставки, определяя скорость вывода функций.
- Efficient processes. Эффективные процессы отражают то, насколько эффективно члены команды взаимодействуют при проектировании и доставке программного обеспечения. Включают принципы, рабочие процессы и распределение ролей. Эффективные процессы снижают когнитивную нагрузку и сокращают циклы обратной связи, улучшая скорость и качество поставки.
- Experimentation. Экспериментирование включает деятельность по генерации идей, проверке гипотез и получению выводов из экспериментов. Это способствует мотивации и потоку, а также повышает качество программного обеспечения.
- Incident response. Реагирование на инциденты описывает то, как разработчики обрабатывают и устраняют проблемы в системах. Включает триаж, назначение, шаги устранения и коммуникацию. Трение в процессе реагирования увеличивает стресс, когнитивную нагрузку и количество принудительных переключений контекста.
- Learning culture. Культура обучения — это характеристика команды, выражающая стремление к постоянному улучшению и обучению на опыте. Обычно проявляется через ретроспективы и постмортемы. Развитая культура обучения улучшает опыт разработчиков, повышая скорость и качество разработки.
- User feedback. Использование обратной связи от пользователей включает сбор, анализ и действия на основе сигналов от конечных пользователей. Требует структурированных циклов обратной связи и налаженных каналов коммуникации. Это повышает качество программного обеспечения и увеличивает мотивацию и поток разработчиков.
- Local development. Локальная разработка — это процесс внесения и проверки изменений кода при создании новых функций. Зависит от скорости, отзывчивости и удобства инструментов разработки. Влияет на когнитивную нагрузку и циклы обратной связи во время активной разработки.
- Local environment. Локальная среда включает настройку системы разработчика для создания и тестирования изменений. Включает установку зависимостей и запуск исходного кода. Важно для онбординга, а также вызывает постоянное трение при поддержке.
- Tech debt. Технический долг существенно влияет на продуктивность и удовлетворённость разработчиков. Эффективное управление включает выявление, анализ и устранение. Избыточный технический долг увеличивает когнитивную нагрузку, тормозит циклы обратной связи и снижает мотивацию.
- On-call experience. Опыт дежурства включает частоту алертов, обработку инцидентов, поддержку и влияние на моральное состояние. Существенно влияет на удовлетворённость разработчиков.
- Production debugging. Отладка в продакшене включает наблюдение, диагностику и устранение проблем в рабочих средах. Упростив этот процесс, можно снизить когнитивную нагрузку, ускорить устранение инцидентов и повысить стабильность системы.
- Realistic timelines. Реалистичные сроки требуют тщательного планирования, согласования заинтересованных сторон, коммуникации и доверия. Чрезмерно агрессивные сроки снижают мораль и качество.
- Requirements quality. Качество требований отражает полноту и ясность спецификаций. Некачественные требования увеличивают когнитивную нагрузку, снижают мотивацию и приводят к переработкам.
- Say on priorities. Влияние на приоритеты отражает участие разработчиков в формировании направлений работы команды. Участие разработчиков повышает качество решений и мотивацию.
- Test coverage. Покрытие тестами отражает степень охвата автоматизированными тестами. Улучшение покрытия снижает когнитивную нагрузку и ускоряет циклы обратной связи.
- Test efficiency. Эффективность тестирования отражает скорость и стабильность автоматизированного тестового набора. Низкая эффективность замедляет циклы обратной связи и поставку.
DX KPIs:- Speed. Темп поставки программного обеспечения командами.
- Ease of delivery. Насколько легко или сложно разработчикам доставлять программное обеспечение в организации.
- Quality. Техническая стабильность разрабатываемого программного обеспечения.
Outcomes:- Organizational performance. Организационная эффективность отражает степень достижения организацией коммерческих и некоммерческих целей, включая прибыльность, производительность, долю рынка, операционную эффективность, удовлетворённость клиентов, качество продуктов или услуг и достижение стратегических целей.
- Employee engagement. Вовлечённость сотрудников отражает степень их приверженности целям организации.
- Lower attrition. Снижение текучести отражает частоту уходов сотрудников по собственному желанию.
- Less time waste. Потери времени измеряют количество времени, которое разработчики теряют из-за препятствий или неэффективности рабочей среды.
Модель
DX25 Core Model представлена на схеме ниже: