Трюки ведущего разработчика

Опубликовано:
Translations:English

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

Ожидается, что ты будешь вести других разработчиков. Это означает, что ты должен быть уверен, что:

  1. Они видят, что ты делаешь, и им это интересно. Представь себе танцора, делающего интересные движения; люди это видят и им это нравится.
  2. Они повторяют то, что ты делаешь, умножая приложенную тобой силу. Люди пробуют движения танцора. Так вы сможете двигаться быстрее вместе. Так вы сможете вместе узнать что-то новое.

Поэтому, когда ты начинаешь вести за собой людей, ты должны изменить свой менталитет и перестать быть самым быстрым. Нужно стать множителем силы других членов команды. Представь себе команду из 5 человек. Четверо из них — программисты 1х, один — звезда с продуктивностью 4х. Общая продуктивность 8х. Если звезда снизит свою продуктивность до 1x и будет вкладывать свое свободное время в других членов команды, они довольно скоро станут 2x. Общая производительность увеличится до 9x, на 12%. При этом никто не перегружен работой. Люди растут профессионально и наверняка этому рады. Bus factor улучшается. Вот что означает множитель силы.

Хитрые чизкейки.

Легко сказать, но трудно сделать, да? Можно попробовать пару моих любимых трюков:

Пойми проект

Трать больше времени на чтение кода, чем на его написание. Постарайся понять всё написанное, чтобы из маленьких частей составить большую картину. Читай все код ревью и все тикеты. В следующий раз, когда прочитаешь кусок кода и поймёшь, что это можно улучшить, не исправляй это самостоятельно. Создай задачу, которую сможет взять на себя кто-то другой. Совершенствуй навык формулирования задач. Постарайтесь почувствовать, насколько важны даже небольшие изменения формулировок в описании и названии задачи. Не создавай бесполезную работу; создавай задачи для реальных улучшений.

Помогай людям, попавшим в беду

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

Тщательно объясни, где можно улучшить результат. Улучшен! Не «исправлен», «переделан с нуля, потому что не будет работать». Очень часто люди прекрасно понимают проблему, но им не хватает структурированного подхода к решению. Они бегут наверх по лестнице, но какой-то ступени не хватает, поэтому они падают вниз. Сделай для них недостающую ступень или объясни, как ее сделать.

Не заходи слишком далеко, помогая людям

Не прячься за людьми; в противном случае они привыкнут к тому, что ты всегда подталкиваешь их вперед. Ожидается, что ты будешь лидером. Будь впереди группы. Ты должен встречаться с глазу на глаз с самой большой и пугающей неопределенностью. Трать ощутимую часть своего времени на объяснение того, куда вы вместе направляетесь и почему. В противном случае люди сбиваются с пути.

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

Столкнись с неопределенностью

Представь, что неопределенность - это дикий зверь. Чем больше неопределенность, тем больше и страшнее зверь. Если ты сталкиваешься с неопределенностью размером с медведя, люди позади тебя должны иметь дело с немного меньшей неопределенностью, например, размером с волка. Твоя задача — превратить неопределенность размером с медведя в несколько неопределенностей размером с волка и передать их для приручения менее опытным людям.

В командах частенько сталкиваются с множеством подводных камней:

  1. Более старшие по званию люди пытаются проглотить большую неопределенность целиком. Они не разделяют её это и разбираются с ней сами. Они скрывают от членов команды страшное лицо этой неопределённости. Не работает долгосрочно, потому что такие люди выгорают от перегрузок. Остальная часть команды стагнирует, потому что у них нет сложных задач для тренировок. Хорошие люди уходят.
  2. Более старшие люди разделяют неопределенность, но результирующая неопределенность слишком мала. Люди имеют дело с кошками и никогда не видят волков или медведей. Опять же, команда стагнирует, потому что у них нет сложных задач для тренировок.
  3. Более старшие люди спускают неопределенность «как есть». Иногда даже раздувают ее, прикрепляя свои эмоции или выражая проблему неправильно. Редко срабатывает, это очень рискованно. Можно получить эпический успех или эпический провал.

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

Подсказка: чем более стратегически ты мыслишь, тем больше неопределенности ты обнаружишь. Читай о стратегии; есть много хороших книг.

Постоянно принимай правильные решения

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

Иногда ты остаешься совершенно один. Никто в целом мире не может понять твою проблему, но тебе нужно принять решение. Это не должно страшить, работай над своей самооценкой.

Поддерживай проект

Не позволяй проекту стагнировать. Продолжай работать. Делай всё, что ему нужно. Иногда нужны очень странные вещи. Реализуй фичи. Рекламируй и продавай. Создавай небольшие побочные проекты, помогающие основному проекту. Проведи исследование, нарисуй диаграммы и сделай презентацию. Улучши документацию. Сделай инструменты более приятными в использовании. Поговори с пользователями и заказчиками. Исправь древние баги. Всегда есть чем заняться.