Наставничество
Что это такое
Наставничество — это растить чужой навык через проверку его работы, совместную работу над ней и вопросы, которые заставляют думать, вместо ответов, которые ускоряют задачу. Сюда же входит понимание, когда дать человеку побарахтаться, а когда вмешаться, — именно здесь большинство ошибается.
Почему это важно
Альтернатива наставничеству — команда, где только один человек умеет что-то делать, и очередь, выстраивающаяся за ним. Оно ещё и накапливается: час, потраченный на объяснение подхода к отладке, экономит этот час каждый раз, когда та же проблема возвращается, у всех, кому этот человек потом помогает. Провал здесь тоньше, чем пренебрежение: наставник, забирающий клавиатуру, заканчивает задачу за десять минут и учит, что другому нельзя доверять её.
Ключевые идеи
Проверяйте подход так же, как код
Комментируйте решение — границу модуля, обработку ошибок, забытый тест, — а не стиль, который уладит форматтер. Спросите, какие альтернативы рассматривались.
Полезно «Что здесь произойдёт, если очередь пуста?» (ведёт к исправлению)
Полезно «Эта функция делает три вещи; для какой из них тест?»
Не полезно «nit: переименуй переменную» (это сделает инструмент)
Парная работа с переходом клавиатуры
Чередуйтесь: один ведёт, другой навигирует, затем меняетесь. Учащийся должен принимать решения за клавиатурой — именно там и происходит обучение. Если клавиатура остаётся у вас, работу делаете вы, а он смотрит.
Спрашивайте прежде, чем рассказывать
Вопрос, вскрывающий пробел, позволяет человеку построить модель; ответ выдаёт факт. Спрашивайте «что ты уже пробовал?» и «что, по-твоему, должно произойти?», прежде чем объяснять. Прямой ответ берегите для случая, когда человек действительно застрял и время дорого.
Дайте побарахтаться, но в рамке времени
Продуктивная борьба — там, где формируется навык, и она перестаёт быть продуктивной, когда человек потерялся, а не думает. Договоритесь о рамке заранее.
«Дай этому двадцать минут. Если всё ещё застрял, напиши мне, что
пробовал и чего ожидал» -> само сообщение часто выдаёт ответ
раньше, чем вы его прочтёте.
Говорите, когда не знаете
Наставник, выдумывающий ответ, учит неверному и разрушает доверие ко всему остальному. «Я не знаю; вот как я бы это выяснил» — более полезный ответ, и он показывает метод, а не факт.
Практика
Проверьте одну работу на подход, а не на стиль
Возьмите пул-реквест и вместо исправлений напишите три вопроса о решениях, которые в нём приняты.
Готово, когда: автор вносит хотя бы одно изменение, о котором вы не просили напрямую, потому что вопрос его вскрыл.
Проведите одну парную сессию с обменом клавиатуры
Поработайте в паре час над задачей, которую другой человек ещё не делал, меняя ведущего каждые двадцать минут.
Готово, когда: другой человек хотя бы раз принял ключевые решения и может описать вам подход.
Частые ошибки
- Забрать клавиатуру — задача заканчивается, а обучение нет; исправить: меняйтесь ведущим и дайте человеку принимать решения.
- Отвечать сразу — вопрос, который построил бы модель, потрачен зря; исправить: сначала спросите, что он пробовал и чего ожидал.
- Проверять стиль вместо подхода — комментарии забываются, а дизайн остаётся неразобранным; исправить: спрашивайте о решениях и альтернативах.
- Борьба без рамки времени — человек потерялся, а не думает, и теряет уверенность; исправить: договоритесь о пределе и попросите конкретное сообщение.
- Притворяться, что знаете — неверный ответ выдаётся с авторитетом; исправить: скажите, что не знаете, и покажите, как бы вы это выяснили.
Что читать дальше
- Коммуникация (08-soft-skills/01-communication) — прочитайте сначала; навыки расспроса и объяснения, на которых это строится.
- Командная работа и сотрудничество (08-soft-skills/02-teamwork-collaboration) — версия тех же привычек на уровне команды.
- Код-ревью (01-cs-fundamentals/17-code-review) — как хорошо проверять код, а это большая часть повседневного наставничества.
- Техническая презентация (08-soft-skills/09-technical-presentation) — форма объяснения решений «один ко многим».