Как пасти котов. Наставление для программистов, руководящих другими программистами - Дж.Ханк Рейнвотер
Шрифт:
Интервал:
Закладка:
Наставничество
Обучая других обучать, мы приумножаем свои усилия и повышаем эффективность. Пусть это будет рабочим определением наставничества. Наставничество помогает решить множество различных задач, и чем больше внимания вы ему уделяете, тем серьезнее отдача. Вы уяснили смысл этого хитрого выражения: «обучать других обучать»? Наставничество – это больше, чем преподавание, поскольку оно предполагает передачу педагогических навыков. Как сказал мне мой отец, в колледже я должен прежде всего научиться находить источники нужной мне информации и правильно с ними обращаться. Он был прав. Наставничество подразумевает обучение самообразованию при одновременной передаче знаний.
Обучая других обучать, мы приумножаем свои усилия и повышаем эффективность.
В академической науке педагогике основную роль играют проблемы эвристики. Как наставник вы должны поощрять стремление своих сотрудников к получению дополнительных знаний и экспериментированию, совершенствуя тем самым способности своих подчиненных к самостоятельному решению задач. Последнее качество в контексте разработки программного обеспечения совершенно необходимо. Охотно верю, что, изучая в школе математику, вы ненавидели слово «задача», но ведь, по существу, вся наша жизнь – эта одна большая задача. Вы должны преобразовать требование в работающий программный продукт, а для этого необходимо установить соответствие между данными в области требований и машинной реализацией, воплотив в нее свой богатый опыт пользователя.
Цель наставничества – воспитать лидеров не хуже самого наставника, а может быть, даже лучше него. Чем больше ответственности за процесс разработки вы сможете привить своим подчиненным, тем серьезней будет та помощь, на которую вы сможете рассчитывать при приближении сроков сдачи. Если это возможно, выделите на наставническую деятельность один из дней рабочей недели. Придерживаться такого графика иногда будет сложно; однако ориентируясь на обучение сотрудников, вы помогаете не только им, но и себе. Подготовка к наставнической деятельности укрепляет ваши собственные знания, формирует более ясное представление о рабочих обязанностях, помогает уточнять задания, которые вы намереваетесь распределить между персоналом.
Характерным примером наставничества может стать построение в реальном времени макета, иллюстрирующего тот или иной метод конструирования программных средств. Быть может, имеет смысл на несколько часов присоединиться к сотруднику, которому попалось особо трудное задание. Это отнюдь не мелочная опека – скорее удачный пример сотрудничества. Наставничество – это сочетание участия и понимания (двух фундаментальных принципов лидерства), направленное на повышение квалификации сотрудников.
Наставник – это не обязательно «старый хрыч». Возраст в данном случае не имеет значения; куда важнее готовность делиться знаниями. Для того чтобы группа смогла добиться выдающихся успехов в разработке программных продуктов, ее сотрудники должны друг другу помогать. Инициатором таких отношений должны выступить вы, главный наставник; надо надеяться, на вашем примере этому научатся остальные.
В зависимости от ситуации вы должны демонстрировать владение двумя видами наставничества: целевым и комплексным. Целевое наставничество (targeted mentoring) предполагает оказание сотрудникам вполне конкретной помощи, например в написании процедуры вызова интерфейса прикладного программирования или подпрограммы сортировки – в зависимости от потребности. Такого рода наставничество востребовано всегда. Для комплексного наставничества (complete mentoring) нужно нечто большее. Оно требует установления с сотрудниками тесных отношений, построенных на искренности и взаимопонимании (в то же время необходимо отдавать себе отчет, что не со всеми сотрудниками это возможно). Выберите из числа подчиненных самых многообещающих – тех, кого вы хотели бы видеть своими последователями, – и уделите их воспитанию максимум внимания. Делясь своими знаниями, старайтесь укреплять отношения с избранниками. Взять хотя бы художника – он может научить студентов, как работать над эскизами, выстраивать тень и перспективу. Уроки художника посещают многие студенты, и, конечно, они перенимают у него часть знаний. Но лишь немногие, лучшие ученики сознательно подготавливаются художником для того, чтобы впоследствии занять его место. Я говорю о роли ученика, подмастерья, адепта. Если вы незаменимы, вас никогда не заменят. Учитывая планы карьерного роста, ничего хорошего в такой незаменимости нет.
Вознаграждение
Выдающиеся успехи нужно поощрять. Вы как лидер должны принимать решения о том, когда и в каком виде выдавать призы. Выбор широк: от повышения заработной платы до похода с отличившимся сотрудником в хороший ресторан или на какое-нибудь спортивное зрелище. Награда должна соответствовать достижениям и основываться исключительно на заслугах. За то чтобы сотрудники выкладывались на все сто, им платят: дополнительные поощрения должны распространяться лишь на тех, кто, превысив ожидания, прыгнул выше головы.
Принципы вознаграждения сотрудников обычно регулируются корпоративной политикой, что, однако, не исключает творческого подхода к этой задаче. Можно, например, провести в период бета-тестирования конкурс, в котором сотрудники будут соревноваться в количестве устраненных ошибок; победителю в таком соревновании, естественно, полагается денежный приз. Оценивать результаты вы должны исходя из характера ошибок и информации о лицах, их допустивших. Ниже я привожу пример схемы подобного рода оценки.
1. Количество исправленных ошибок.
2. Сложность каждой ошибки.
3. Время, потраченное на исправление каждой ошибки.
4. Успешность предложенного решения (зависит от результатов повторного тестирования).
5. Усилия по взаимодействию с другими сотрудниками, направленному на поиск решения (в случае, если такое взаимодействие необходимо).
6. Степень компетенции в области, к которой относится исправляемая ошибка.
7. Ваши собственные усилия по содействию сотрудникам, которые испытывают затруднения при исправлении ошибки.
8. Дополнительные усилия, выходящие за рамки рабочей необходимости.
9. Своевременность решения задач, не относящихся к текущему выпуску продукта.
10. Желание приобретать дополнительные сведения о продукте, преодолевая при этом трудности понимания и усваивая особо сложные моменты.
11. Настойчивость в решении задач, кажущихся невыполнимыми.
Естественно, отслеживать все эти моменты для каждой ошибки и каждого члена группы довольно сложно, однако рассматриваемый метод мониторинга – одного из фундаментальных принципов лидерства – конструктивен, а кроме того, придает деятельности по организации процесса развлекательный характер. Стоит также обратить внимание на то, как в вышеприведенном списке находит свое отражение концепция наставничества. Обычно, будучи лидером, вы стремитесь не допускать между разработчиками соперничества, способного усложнить достижение результата группой в целом. Именно поэтому при распределении вознаграждений так важно вести подсчет достигнутых сотрудниками успехов. Если бы я лучше разбирался в спорте, то, наверное, не удержался бы от какой-нибудь аналогии, например с количеством подстраховок (кажется, есть что-то такое в бейсболе или в баскетболе? или в обоих видах? не знаю).
Вне зависимости от того, какой метод поощрения сотрудников вы выберете, будьте справедливыми и не опаздывайте с вознаграждением. Когда какого-то богатого человека спросили о том, сколько денег ему нужно для счастья, он ответил: «Всегда немножко больше». Не забывайте, что вознаграждать нужно только тех, кто показал исключительные достижения, превысив все ожидания.
Не забывайте, что вознаграждать нужно только тех, кто показал исключительные достижения, превысив все ожидания.
Исправления
Необходимым условием профессионального роста любого программиста должна быть перепроверка результатов его деятельности. Исправляя ошибки, вы не должны действовать как университетский профессор и ставить жирный крест поверх неправильно решенной задачи. Настоящий лидер программистов старается сделать так, чтобы его подчиненные сами находили свои ошибки и учились на них. Конечно, при этом он должен советовать наиболее разумные способы решения проблем. Это очень тонкая задача, к решению которой лидер должен подходить со всей осторожностью, не впадая при этом в занудство. Недопустимо закрывать глаза на неаккуратный код и нерациональные действия сотрудников.