К основному содержимому
#Processes

Let's talk about DX, Baby! - Jo Franchetti - NDC London 2024

#Processes #Management #Performance #Engineering #Software #SoftwareDevelopment #Leadership

Этот доклад Джо Франкетти на конференции NDC {London} 2024 посвящен теме developer experience (DX, DevEx), по которой относительно недавно вышло несколько whitepapers. Эта тема мне импонирует, поэтому я расскажу кратко о чем была речь в этом докладе:

  • Автор рассказывает про важность DX, рассказывая историю о разработчике, который столкнулся с трудностями при интеграции нового инструмента.

  • Из этого выводятся три составляющие подхода DX: cognitive load, flow state и feedback loops -- Когнитивная нагрузка - это объем информации, который разработчик должен обработать для выполнения задачи. -- Состояние потока - это состояние ума, когда человек полностью погружен в свою деятельность и чувствует себя мотивированным и эффективным. -- Циклы обратной связи - это скорость и качество ответной реакции на произведенные действия

  • Дальше звучит тезис о том, что если работать над улучшением опыта разработчика, то это может снизить когнитивную нагрузку и повысить продуктивность.

  • Для попадания в состояние потока нам нужна среда, где есть баланс между уровнем мастерства и задачами, которые ставятся перед разработчиками. Это позволяет разработчикам чувствовать, что они контролируют процесс и могут использовать инструменты.

  • Циклы обратной связи позволяют разработчикам получать информацию о том, правильно ли они выполняют задачи и где они испытывают трудности (условно запуски CI/CD с прогоном тестов дают полезную обратную связь, но если мы ее ждем часами, то мы теряем в эффективности)

  • Для измерения и оценки изменений можно использовать опросы (NPS, CSAT), оценку качества кода (code complexity, code coverage, number of bugs, number of issues), developer productivity (тут мерить можно по разном), development lifecycle

  • Дальше автор предлагает разделять Internal DX и External DX -- Internal DX - тут фокус на улучшении продуктивности, выравнивании с бизнес-целями -- External DX - тут фокус на adoption rates, вовлечении коммьюнити и промотировании продукта более широкой аудитории

  • А дальше автор показывает гигиенические факторы при создании репозиториев с кодом: -- Соблюдение стандартов кодирования -- Использование dev контейнеров и codespaces -- Избегание глобальных настроек -- Создание всеобъемлющего readme, включающего введение, цели, задачи, ключевые особенности, использование, настройку, ограничения, рекомендации по внесению изменений, контактные данные, кодекс поведения, лицензию.Грамотное написание технических текстов, понимание аудитории, создание образа читателя. -- Создание понятного кода - функций без побочных эффектов, функций с меньшим количество аргументов, promises over callbacks, ранний возврат из функций, etc. Важно отслеживать читаемость кода, так как большую часть времени мы поддерживаем уже созданный код, а не создаем новый. Сложный код увеличивает когнитивную нагрузку и ухудшает developer experience

В конце автор призывает к улучшению опыта разработчиков и призывает к обсуждению и обмену мнениями о том, как сделать код более понятным и удобным для чтения.

P.S. Я уже писал на тему developer productivity и developer experience несколько статей

#Processes #Management #Performance #Engineering #Software #SoftwareDevelopment #Leadership