Полное руководство по контрпродуктивности разработчиков

от автора

На сцену выходит контрпродуктивность разработчиков.

Продуктивные разработчики тратят больше времени и энергии на деятельность с высокой отдачей. Контрпродуктивные разработчики тратят больше времени и энергии на деятельность с низкой или отрицательной отдачей. Этот перекос часто лишь в незначительной степени поддается контролю (а иногда и полностью выходит из-под их контроля). Это объясняет, почему одни и те же разработчики в разных условиях могут быть гораздо более (или менее) продуктивными.

Производительность разработчиков —  август 2023 года.

Производительность разработчиков — август 2023 года.

Этот пост о том, куда уходит время/энергия. Да, индивидуальные знания, навыки, мотивация и привычки имеют значение. Но в большинстве организаций эти вещи меркнут по сравнению с ежедневными задачами и окружением разработчиков. Вместо того чтобы измерять производительность отдельных разработчиков, лучше сосредоточиться на устранении известных источников низкой/отрицательной отдачи. Возможно, когда вы возьмете эти вещи под контроль, вы сможете начать фокусироваться на «производительности» команды.

Действия для вашей команды:

В течение следующих двух недель отслеживайте, когда ваше время попадает в эти области.

Действия для руководителей:

Где вы можете сдвинуть время, затрачиваемое на эти области, в сторону более значимых областей?

Примечание: Для краткости я использовал «потраченное время» вместо «потраченного времени и энергии». Это различие важно, поскольку в течение дня у нас не одинаковый уровень энергии. Предположим, что я имею в виду «потраченное время и энергию».

Реактивная, незапланированная работа

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

Такое ощущение, что я целыми днями тушу пожары. Вместо того чтобы писать код, я играю в «ударь-крота» с системными проблемами.

Переключение контекста и стартовые затраты

  • Время, потраченное на переключение контекста и «стартовые затраты» на переход от одной задачи к другой, настройку и сбор необходимых вещей для выполнения работы.

  • Время, потраченное на освоение новых частей кода.

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

  • Время, потраченное на то, чтобы «войти в курс дела» после долгого и утомительного совещания.

Как только я вхожу в зону, мне приходится переключаться на другую задачу. У меня уходит еще полчаса на то, чтобы вернуться к тому, на чем я остановился.

Каждый раз, когда мне приходится переключать контекст, я словно начинаю свой день заново. Это так выматывает.

Нет, у меня нет «секунды». Потому что секунда превращается в полчаса.

Административная работа и работа по соблюдению нормативных требований, не приносящая ценности

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

  • Время, потраченное на получение разрешений на использование определенных инструментов (или на то, чтобы обойтись менее эффективными инструментами в это время, или когда вы вообще отказываетесь от них).

  • Время, потраченное на выполнение требований, которые не позволяют эффективно снизить риск для клиентов или бизнеса.

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

Сегодня я потратил три часа на заполнение форм, чтобы получить доступ к инструменту, который является стандартным для моей работы.

Неэффективное планирование

  • Время, потраченное на оценку, составление спецификаций, обсуждение и презентацию концепций и работ до «последнего ответственного момента». Часто это часть деятельности по планированию, которая в значительной степени носит исполнительный характер. Написание спецификаций и предложений и отсутствие ценных или совместных доработок идей.

  • Время, потраченное на неестественное или неэффективное разделение работы на части для планирования спринта, сгорания, метрик спринта и т. д. Добавление бесполезных концепций работы поверх реальной работы.

У нас было двухчасовое совещание по поводу функции, которая не будет создана еще полгода. Какая пустая трата времени.

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

Мы вообще ничего не планировали и просто начали кодить. Теперь мы несем ответственность за это.

Издержки управления зависимостями

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

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

  • Время, потраченное на совещания и обсуждения для согласования с другими командами, когда более упорядоченный процесс коммуникации (или менее структурированный, более встроенный) мог бы быть эффективным.

Мне кажется, что половина моей работы заключается в том, чтобы гоняться за новостями от других команд. Почему мы не можем просто иметь четкий план и придерживаться его?

Мы постоянно ждем другую команду. Такое ощущение, что успех нашего проекта не зависит от нас.

Неэффективные совещания и коммуникации

  • Время, потраченное на неэффективную коммуникацию, неэффективные встречи, синхронные встречи, которые должны быть асинхронными, и асинхронные встречи, которые должны быть синхронными. Это включает в себя обработку « зашумленной» информации, где сигнал был потерян.

  • Время, проведенное на совещаниях и других мероприятиях, где то, что должно быть сказано, не было сказано из-за низкой психологической безопасности, осуждения, страха возмездия и необходимости многократно повторять эти действия.

  • Время, потраченное на повторение одной и той же информации для разных аудиторий одним и тем же способом. Мы ожидаем, что информация будет переконтекстуализирована для разных аудиторий, но если это одна и та же информация, то это контрпродуктивно.

  • Время, потраченное на сканирование сообщений на предмет актуальности и « наверстывание» информации.

Мы только что провели часовую встречу, которая вполне могла бы обойтись электронной почтой. Теперь весь мой день насмарку.

Мы продолжаем проводить эти встречи, но никто не высказывается, потому что боится критики. Это бессмысленно.

Мы пытались решить этот сложный вопрос с помощью электронной почты и в итоге не поняли друг друга. Нужно было быстро созвониться.

Избыточный инструктаж и ввод в курс дела для руководителя

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

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

Мой руководитель настолько не в курсе дел, что мне приходится тратить несколько часов каждую неделю на то, чтобы его просветить.

Я проинформировал своего руководителя на прошлой неделе, а сегодня он задал те же вопросы. Они вообще слушают?

Поиск консенсуса и задержка принятия решений

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

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

  • Время, потраченное на адаптацию к быстрым и реактивным изменениям, спущенным сверху.

Значит, мы собираем еще одну встречу, чтобы решить то, что уже решили на прошлой неделе? Отлично.

Мне кажется, что мы находимся в цикле принятия решений. Мы обсуждаем, решаем, а потом снова сомневаемся в себе.

Решение было принято без участия тех, кто действительно работает над проектом. Теперь нам придется переделывать его.

Неэффективные механизмы сотрудничества

  • Время, потраченное на работу в одиночку, когда совместная работа была бы более эффективной, и наоборот.

  • Время, потраченное на использование транзакционных процессов и подходов к работе в ситуациях, которые должны быть кооперативными. И использование методов сотрудничества и «высоких ощущений» в ситуациях, которые могут быть безопасными для взаимодействия.

Если бы мы поработали в паре, это было бы сделано за час.

Я не могу выкроить ни секунды, чтобы поработать над этим в одиночку.

Недостаток помощи и поддержки

  • Время, потраченное впустую из-за отсутствия помощи, трудностей с получением помощи, того, что люди слишком заняты, чтобы помочь, или культуры, которая не одобряет просьбы о помощи.

  • Время, потраченное на поиск нужного человека или отдела, который мог бы помочь в решении конкретной проблемы, приводит к необходимости бегать по кругу.

Я мог бы решить эту проблему за пять минут с небольшой помощью, но все «слишком заняты», чтобы ответить на простой вопрос.

В конце концов я нашел нужного человека, который помог мне, но на это ушло три дня беготни.

Неэффективная документация

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

  • Время, потраченное на интерпретацию спецификаций или контекста, однажды или дважды оторванного от источника.

Сегодня я потратил два часа на расшифровку устаревшей документации. И до сих пор не нашел ответа.

Плохо поддерживаемый код и документация

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

Код настолько запутан, что кажется, что это археология, а не программирование.

Костыли

  • Время, потраченное на «костыли», которые сами по себе работают медленнее, но при этом создают дополнительную путаницу для других членов команды.

  • Время, потраченное на документирование и объяснение «костылей» другим членам команды.

  • Время, потраченное на пересмотр и поддержку «костылей».

Сейчас в коде так много хаков, что это похоже на хождение по минному полю. Один неверный шаг — и все взорвется.

Я потратил половину своего дня на документирование «костыля», который просто запутает следующего человека, который его увидит.

Неэффективный онбординг

  • Время, потраченное на то, чтобы ввести новых членов команды в курс дела (которое можно было бы эффективно оптимизировать), не имея достаточно времени для обмена более широким контекстом и налаживания отношений.

  • Время, потраченное на повторное освещение основных деталей проекта для новых сотрудников из-за отсутствия стандартизированных материалов или процедур по введению в должность.

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

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

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

Проблемы с инструментами

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

  • Время, потраченное на использование неподходящего инструмента для работы, более медленную работу и создание большего количества ошибок или «костылей».

  • Время, потраченное на неэффективную диагностику — что-то не работает, и вы пытаетесь выяснить причину, а у вас нет инструментов/возможности наблюдения, чтобы быть эффективным. В некоторых случаях вы оставляете проблемы открытыми. В других случаях на то, чтобы докопаться до сути, уходит гораздо больше времени.

  • Время, потраченное на решение конфликтующих версий библиотек или пакетов, когда они могли бы быть стандартизированы в разных проектах.

Если бы у меня был монетка за каждый раз, когда мне приходилось вручную переустанавливать свое окружение разработчика… У меня было бы много монет.

Мы автоматизировали эту задачу, но инструмент, который мы использовали, настолько сложен, что теперь никто не знает, как его починить, если что-то пойдет не так.

Ручные, автоматизируемые задачи

  • Время, потраченное на выполнение ручных, объемных, повторяющихся задач, которые являются хорошими кандидатами для автоматизации. Сюда также входит исправление ошибок, вызванных выполнением этих задач вручную.

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

Почему я все еще делаю это вручную? У нас есть технология, чтобы автоматизировать это! Такое ощущение, что мы застряли в 2004 году.

Ожидание в медленных процессах

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

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

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

Переработка, проверка, обратная связь и преждевременная конвергенция

  • Время, потраченное на работу над чем-то без подтверждения предыдущих предположений, поскольку это снижает эффективность того, что вы делаете прямо сейчас.

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

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

  • Время, потраченное на работу с неполным контекстом или информацией, когда ваша работа могла бы быть более обоснованной и эффективной (или ваше время могло бы быть лучше потрачено на обучение).

  • Время, потраченное на погоню за идеальной информацией или полной уверенностью, когда достаточно просто принять правильное решение.

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

Я бы хотел, чтобы мы просто проверили это, прежде чем создавать. Теперь мы вынуждены отказаться от этого.

Нам следовало просто запустить его и начать отслеживать отзывы.

Я могу сказать, что эту историю пользователя придумал менеджер по продукту. Я не уверен, что он действительно понимал данные или отзывы.

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

Создание малоценных функций

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

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

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

Я создал эту функцию, которой никто не пользуется. Это все равно что строить мост в никуда.

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

Конечно, мы закрыли клиента, но это довольно слабый результат.

Невыпущенный код

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

  • Время, потраченное на то, чтобы не интегрировать код и не увидеть, как он сочетается с общей кодовой базой.

Мой код просто пылится, потому что его еще не выпустили.

Кто знает, пройдет ли он вообще проверку.

Мы находимся на пятой фазе этого проекта и еще ничего не сделали. Забавно, правда? Хотя отчетность выглядит неплохо.

Искусственные сроки и спешка

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

  • Время, потраченное на поспешную работу и ошибки в пути, ощущение спешки.

  • Время, потраченное на выполнение работы раньше, чем это необходимо, или раньше, чем работа, которая может быть более ценной.

Мы спешим уложиться в сроки, которые кто-то придумал из воздуха, и при этом теряем кучу ресурсов.

Я работаю примерно на 50 %. Я не принимаю хороших решений.

Плохое соотношение времени и энергии

  • Время, проведенное в периоды плохого соотношения времени и энергии. Например, послеобеденные встречи для задач, требующих глубоких размышлений, и утренние встречи в период наилучшей концентрации.

  • Время, потраченное на отдых и подзарядку, но неэффективное из-за прерываний. Вы менее эффективны, когда пытаетесь продуктивно работать позже в течение дня.

Почему мы проводим мозговой штурм в 16:00 в пятницу?

Они запланировали рутинное совещание по обновлению в мои самые продуктивные часы. Вот и весь мой поток.

Каждый раз, когда я говорю, что пойду на настоящий обед, я оказываюсь на дурацком звонке в Zoom.

Несоответствие навыков

  • Время, потраченное на то, что плохо соответствует навыкам. Либо что-то, что выходит за рамки навыков сотрудника, либо что-то, что ниже его квалификации.

Мне не хочется признавать это, но я далеко не в теме..

Мне скучно, и я наполовину выдохся

Потеря знаний

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

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

Никто из команды не встречался с клиентами. Это безумие.

Упущенные возможности

  • Время, которое НЕ БЫЛО потрачено на высокоэффективную работу, обмен ценным контекстом, перекрестное обучение других людей и следование технологическим тенденциям. Это упущенные возможности, на которые другие пункты списка не дают вам уделить внимание.

  • Время, потраченное на то, чтобы не исправлять вещи, упомянутые в этом списке, особенно если если не исправление чего-то усложняет исправление в будущем.

Я хотел бы иметь время для работы над более значимыми проектами, но я застрял на выполнении неотложных задач.

Я бы хотел потратить один день на то, чтобы эти «порезы от бумаги» исчезли.

Эффекты второго и третьего порядка

  • Время, потраченное на менее эффективную работу, обусловлено эффектами второго и третьего порядка всех вышеперечисленных пунктов, включая потерю морального духа и уверенности, психологический удар, «отказ от работы» и отключение от нее.

Все эти мелкие неэффективные действия начинают сказываться на моральном духе команды. Это нисходящая спираль.

Деньги хорошие, и я хочу сохранить свои возможности. Я не могу изменить это место.

Я что-то упустил?

p.s. а еще я пишу про управление продуктами в своем тг-канале Inspired Product Manager.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Сколько пунктов актуальны для вас?

0% 0 («Я люблю немного приврать»)0
20% до 6 («Сказочная жизнь: почти всё идеально»)1
20% 7–11 («Жить можно, ведь у всех есть недостатки»)1
20% 12+ («Так это про нас, жизнь штука сложная»)1
40% Я еще не меньше 10 пунктов могу добавить!2

Проголосовали 5 пользователей. Воздержавшихся нет.

ссылка на оригинал статьи https://habr.com/ru/articles/895676/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *