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