Наставничество

Что это такое

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

Почему это важно

Альтернатива наставничеству — команда, где только один человек умеет что-то делать, и очередь, выстраивающаяся за ним. Оно ещё и накапливается: час, потраченный на объяснение подхода к отладке, экономит этот час каждый раз, когда та же проблема возвращается, у всех, кому этот человек потом помогает. Провал здесь тоньше, чем пренебрежение: наставник, забирающий клавиатуру, заканчивает задачу за десять минут и учит, что другому нельзя доверять её.

Ключевые идеи

Проверяйте подход так же, как код

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

Полезно     «Что здесь произойдёт, если очередь пуста?»  (ведёт к исправлению)
Полезно     «Эта функция делает три вещи; для какой из них тест?»
Не полезно  «nit: переименуй переменную»  (это сделает инструмент)

Парная работа с переходом клавиатуры

Чередуйтесь: один ведёт, другой навигирует, затем меняетесь. Учащийся должен принимать решения за клавиатурой — именно там и происходит обучение. Если клавиатура остаётся у вас, работу делаете вы, а он смотрит.

Спрашивайте прежде, чем рассказывать

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

Дайте побарахтаться, но в рамке времени

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

«Дай этому двадцать минут. Если всё ещё застрял, напиши мне, что
 пробовал и чего ожидал» -> само сообщение часто выдаёт ответ
 раньше, чем вы его прочтёте.

Говорите, когда не знаете

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

Практика

Проверьте одну работу на подход, а не на стиль

Возьмите пул-реквест и вместо исправлений напишите три вопроса о решениях, которые в нём приняты.

Готово, когда: автор вносит хотя бы одно изменение, о котором вы не просили напрямую, потому что вопрос его вскрыл.

Проведите одну парную сессию с обменом клавиатуры

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

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

Частые ошибки

  • Забрать клавиатуру — задача заканчивается, а обучение нет; исправить: меняйтесь ведущим и дайте человеку принимать решения.
  • Отвечать сразу — вопрос, который построил бы модель, потрачен зря; исправить: сначала спросите, что он пробовал и чего ожидал.
  • Проверять стиль вместо подхода — комментарии забываются, а дизайн остаётся неразобранным; исправить: спрашивайте о решениях и альтернативах.
  • Борьба без рамки времени — человек потерялся, а не думает, и теряет уверенность; исправить: договоритесь о пределе и попросите конкретное сообщение.
  • Притворяться, что знаете — неверный ответ выдаётся с авторитетом; исправить: скажите, что не знаете, и покажите, как бы вы это выяснили.

Что читать дальше

  • Коммуникация (08-soft-skills/01-communication) — прочитайте сначала; навыки расспроса и объяснения, на которых это строится.
  • Командная работа и сотрудничество (08-soft-skills/02-teamwork-collaboration) — версия тех же привычек на уровне команды.
  • Код-ревью (01-cs-fundamentals/17-code-review) — как хорошо проверять код, а это большая часть повседневного наставничества.
  • Техническая презентация (08-soft-skills/09-technical-presentation) — форма объяснения решений «один ко многим».