Kitabı oku: «Настольная книга тимлида разработки ПО»
© Виктор Большаков, 2022
ISBN 978-5-0055-9147-0
Создано в интеллектуальной издательской системе Ridero
Введение
Зачем вам эта книга
Автор постарался собрать полный набор компетенций Тимлида и раскрыть их для наиболее эффективного применения, указав на достоинства и недостатки существующих подходов. Несмотря на то, что книга ориентирована на повышение профессионального уровня тимлидов команды DatsTeam, она будет полезна и другим специалистам, поскольку в ней собраны лучшие практики и рассматривается полный спектр деятельности роли тимлид.
Основой для написания книги послужили опыт из различных доступных источников и структура компетенций TeamLead Roadmap [https://tlroadmap.io/], за что автор выражает большую благодарность сообществу. Однако мнение автора частично отличается от вышеупомянутых компетенций: для ознакомления читателя с имеющимся мировым опытом и опытом автора, структура функций в книге заполнена практиками и принципами.
Данная книга будет полезна для специалистов в сфере разработки:
– Действующему тимлиду
– Разработчику, планирующему стать тимлидом
– Руководителю групп разработки, CIO, CTO, CDTO
– Руководителю подразделения разработки ПО
Действующий тимлид сможет переосмыслить свои подходы, применить новые и структурировать свою деятельность. Во многом это поможет справиться с текущими проблемами и избежать их появления в будущем.
Разработчику, планирующему стать тимлидом, книга даст понимание о функциях этой профессии, так как зачастую разработчики не видят полноты деятельности тимлида. Руководители, стоящие выше, в свою очередь, не видят нужного потенциала по организационным и личностным качествам в разработчике на эту должность. Когда же неподготовленный разработчик получает желаемую роль, он сталкивается с новым типом задач, которые из-за отсутствия знаний и опыта в этой сфере, приводят к проблемам.
Руководителю групп разработки, CIO, CTO, CDTO эта книга позволит задать стандарты работы в организации, провести повышение квалификации тимлидов, оценить их квалификацию по компетенциям и даже написать требования к вакансии тимлида или должностной инструкции.
Руководителю подразделения разработки ПО, такому как Системного администрирования, Контроля качества, Проектного офиса и др., книга раскрывает функции управления командой.
Книга бесплатная и свободно распространяется в электронном виде. При цитировании необходимо указывать название книги и автора.
О роли
Тимлид [Team Leader] – роль лидера команды разработки, которая включает в себя организацию эффективной работы команды и обеспечивает ее максимальную ценность для организации.
Определение в wikipedia [https://en.wikipedia.org/wiki/Team_leader] звучит иначе, но отражает ту же самую суть.
В каждой организации свой набор ролей и распределение функций между ними. Для определения роли за основу берутся методологии, лучшие практики, книги, а также опыт сотрудников.
Разделение труда в организациях очень разнообразное. В крупных компаниях разделение труда более детализировано – поле деятельности тимлида сужается, что повышает эффективность выполнения оставшихся в его зоне ответственности функций. Например, в некоторых организациях есть роль Владельца продукта [Product Owner], что позволяет тимлиду в меньшей степени заниматься проектированием функционала систем. Предположим, в другой части компаний есть роль Руководителя проектов [Project Manager], которая снимает с тимлида функции построения планов и контроля выполнения этих планов. В небольших стартапах роль тимлида может включать в себя функции Владельца продукта [Product Owner], Руководителя проекта [Project Manager], Релиз-инженера [Release Engeneer], ИТ директора [CIO], Технического директора [CTO] и др.
В концепции само-организованных команд не существует такой роли, как тимлид. Такие команды формируются из само-мотивированных сотрудников, распределяющих между собой ответственность за максимизацию результатов. При реализации такой концепции необходимо учитывать, что амбиции лидера хотя бы одного из членов команды будут значительно мешать достижению целей. А появление неформального лидера и вовсе может свести к минимуму пользу от реализации концепции.
Команда – группа людей, работающих совместно для достижения определенных целей. В более широком смысле у лидера может быть достаточно большая команда. Но именно под ролью тимлида подразумевается управление командой, работающей по единому процессу (в том числе единому технологическому циклу), с единым планированием и, единым пулом задач.
Карта компетенций
Компетентность – способность (знания и опыт), позволяющая эффективно выполнять определенный класс профессиональных задач.
Тимлид это роль, требующая компетентности в решении определенных задач.
Последующие главы книги будут подробно раскрывать особенности каждой компетенции тимлида, практики и принципы которых необходимо придерживаться.
Контекст деятельности
Тимлид осуществляет свою деятельность в определенных обстоятельствах, которые определяют подходы, инструменты и цели.
Факторы, влияющие на деятельность тимлида:
– Организация, в рамках которой работает команда:
– Роли и конкретные сотрудники на тех или иных должностях
– Регламенты, политики и правила организации в части:
– работы с сотрудниками
– реализации процессов разработки
– формата общения между командами/подразделениями
– общие требования к программным продуктам
– Ресурсы для мотивации сотрудников
– Доступные тимлиду и команде инструменты для достижения целей
– Корпоративная культура
– Команда
– Программный продукт или продукты, над которыми работает команда
– Качество постановки задач, формализации целей входящей информации
– История формирования организации и команды, продуктов, процессов и инструментов разработки
Каждый фактор оказывает значительное влияние и его необходимо учитывать при организации работы команды.
Например, создание микроклимата команды, конфликтующего с корпоративной культурой, будет фактором возмущения для других сотрудников и руководства организации. Другая ситуация – авторитарный стиль управления тимлида будет постоянно ставиться под сомнение руководством организации с демократическим стилем управления.
При трудоустройстве на роль тимлида необходимо оценивать соответствие ваших предпочтений и существующее положение этих факторов в организации. Достаточно часто между тимлидами возникают споры об эффективности тех или иных практик без учета этих внешних факторов. Эти споры возникают не только между тимлидами разных организаций, но и даже между тимлидами в одной организации.
Управление сотрудниками
Найм
Перед тем как раскрыть тему найма новых сотрудников, приведу напутствующие слова Мариэтты Парсекян (HR директора компании Dats. Team) тимлидам своей компании:
Главное, что надо понимать, Рекрутинг в ИТ это работа команды, это диалог, взаимодействие и эффективная обратная связь в процессе найма. Залог успешных плейсментов – это понимание, что у нас одна задача, мы в одной лодке, быстрое реагирование на изменения рынка, быстрая обратная связь и отсутствия нагромождений в виде большого числа интервью и тестов.
Рынок высококонкурентный в ИТ и наше предложение должно выгодно отличаться, а тимлид – это лицо нашей разработки. Надо обязательно помнить об этом, даже при отказе кандидату. С вами ассоциируется культура нашей разработки. С нашей культурой рекрутинга ассоциируется культура нашей разработки. Любой кандидат, который поговорил с вами будет нести в сообщества свое мнение о нас и растить наш DevRel, даже если мы его намеренно не растим.
Вам будет крайне полезно провести несколько образовательных встреч с HR-менеджером, где вам расскажут необходимую информацию по трудовому кодексу, а вы в ответ расскажете о технологиях, компетенциях команды, процессах и др.
Выявление потребностей
При нехватке ресурсов для решения бизнес-задач, возникает давление со стороны бизнеса. Часто это выражается в недовольстве результатами команды – желанием вывести часть сотрудников в выходные дни или созданием новых рисков для бизнеса, заставляя команду делать изменения продуктов быстрее и менее качественно.
Необходимо вовремя определять момент нехватки ресурсов, а лучше иметь прогноз от самого бизнеса. Следите за количеством и объемом поступающих задач, средним временем решения задач, запрашивайте планы бизнеса по росту, планам трансформации бизнеса, конкурентной борьбе.
Выявление потребностей – зачастую это признание бизнесом нехватки ресурсов и необходимость отдельного финансирования для решения подобных проблем. Решить их можно по-разному:
– Повысив утилизацию текущих ресурсов
– Перераспределив внутренние ресурсы организации
– Обратившись к внешнему подрядчику
– Наняв нового сотрудника
Никто не любит переработки, но некоторые организации все же прибегают к этому методу. Злоупотребление переработками ведет к выгоранию команды – в скором времени это может привести к замедлению разработки, поскольку часть команды может уволится, часть уйти в отпуск, а еще одна часть просто сильно понизить уровень своей производительности и мотивации. Однако столь радикальный режим может стать решением острых проблем организации.
Если в компании несколько команд разработки, различные подразделения, имеющие специалистов схожей компетенции, важно узнать о возможности временного или постоянного перераспределения ресурсов.
Если важно пройти локальный текущий пик высокого спроса на ресурсы, имеет смысл рассмотреть аутсорсинг или аутстаффинг для краткосрочного привлечения этих ресурсов. Вам может не подойти такой способ, если в организации высокий уровень бюрократии, вход в проект слишком долгий и дорогой, присутствуют высокие риски информационной безопасности. Причин может быть множество.
Перед тем как открыть вакансию, необходимо оценить:
– Насколько объем работы для данной вакансии постоянен. Не получится ли так, что через несколько месяцев эту позицию придется сократить.
– Время, затраченное на поиск и адаптацию кандидата. Если в среднем найм и адаптация занимает от трех и более месяцев, то пиковая нагрузка может быть пройдена и острая потребность в сотруднике исчерпает себя.
Необходимость решения определенных задач может привести вас к вопросу Дизайна команды и Управления компетенциями. Важно переосмыслить распределение обязанностей, возможно выгоднее будет вместо найма еще одного Senior разработчика искать разработчика Junior/Middle уровня для того, чтобы разгрузить текущих разработчиков от простых задач.
Кадровый резерв – это сотрудники, имеющие потенциал для того, чтобы сменить должность или роль, то есть выполнять другие обязанности (более сложные или управленческие функции). Проанализируйте возможности роста своих сотрудников или сотрудников других команд. Такой рост внутри компании повысит уровень лояльности не только того сотрудника, который получит новую роль, но и других сотрудников, которые увидят пример роста в компании.
Формирование вакансии
Вакансия – это набор требований, обязанностей, условий труда и информации о компании/продукте.
Набор требований – это одна из наиболее важных частей в вакансии с точки зрения тимлида, ведь именно эту информацию ему необходимо будет подготовить. Перечень требований формируется на основании потребностей и отражает компетенции (знания и опыт), которыми должен обладать новый сотрудник. Есть базовые требования, с которыми работает компания: гражданство, решение удаленной работы или в офисе. Эти требования будут добавлены к вашим по умолчанию. Также HR-рекрутер может убрать дискриминационные требования.
Если на рынке мало специалистов, удовлетворяющих все ваши требования, то есть несколько вариантов развития событий:
– Сделать требования к вакансии мягче, рассматривать кандидатов с меньшей квалификацией/не покрывающих все ваши потребности. В этом случае, вам придется доучить кандидата (потратить на это ресурсы компании).
– Увеличить уровень оплаты труда, возможно, даже выше рыночной заработной платы. К сожалению, поступать так достаточно рискованно, текущие сотрудники потребуют повышения их окладов до того же уровня (выше рынка). Иногда в организациях стандартизируют уровни оплаты труда для определенных категорий специалистов, что затрудняет найм при нехватке специалистов на рынке.
– Дольше искать нужного кандидата. Вполне возможно вы дождетесь подходящего под ваши требования и финансовые возможности специалиста.
Вы можете не знать спрос и предложение. Для этого можно на некоторое время выставить требования максимально жесткими и постепенно их ослаблять, но обычно рекрутеры в организации могут быстро провести анализ и сразу предложить корректировки.
На специализированных сайтах поиска работы (например hh.ru) есть ряд стандартных полей требований: Опыт работы, График работы и др. Отнеситесь к этим полям с вниманием, кандидаты выставляют фильтры и могут не увидеть вашу вакансию. Вы можете помочь рекрутеру, указав на ресурсы, на которых лучше размещать вакансию и которые часто посещаются нужными специалистами.
Необходимо учесть интересы кандидатов. Вам нужно сформулировать набор минимальных и достаточных требований. Сделайте акцент на ключевых компетенциях, опыт или знания которых сыграют ключевую роль в принятии решения.
Обязанности – перечень типов задач, которые необходимо будет решать специалисту. Эту часть вакансии тоже зачастую формирует тимлид.
Обязанности являются важной частью вакансии, поскольку позже новый сотрудник, ссылаясь на них, может отказаться выполнять часть порученной ему работы. Более формальный документ, на основании которого происходит увольнение, – это «Должностные обязанности», но перечень обязанностей в нем должен соответствовать вакансии. Для таких вакансий, как Руководитель проектов/Full stack разработчик должностные обязанности могут очень сильно отличаться, и кандидаты начинают этому уделять пристальное внимание.
Условия труда должны отражать ключевые для кандидата условия:
– Оклад, премии, мотивация
– Где нужно будет работать (офис, офисное оснащение)
– Соц. пакеты
– Инструменты (техника, IDE)
В описание вакансии включается: информация о компании, информация о продукте, команде – это «продающий текст», важно красиво и, по существу, указать всё то, ради чего кандидату стоит выбрать именно вас.
Отсев кандидатов по резюме
До публикации вакансии, HR-рекрутер, имея доступ к базе данных резюме, делает подборку кандидатов, удовлетворяющих требованиям вакансии.
После публикации вакансии, HR-рекрутер осуществляет первичный отсев откликов. Далее уже вы фильтруете резюме по откликам и подборкам.
Последующий процесс обработки отфильтрованных резюме HR-рекрутером включает контакт с кандидатом (предварительное собеседование) и даже предварительный отбор.
Если вы отбираете большой объем резюме, стоит давать обратную связь HR-рекрутеру. Пишите, почему тот или иной кандидат не подходит – это поможет дополнить требования, улучшить первичный отсев HR-рекрутером или усовершенствовать вопросы предварительного отбора. Редко бывает, что приходится самому осуществлять подборку резюме для выявления моментов, требующих корректировки.
Если несмотря на высокий уровень зарплаты вы все равно получаете слишком мало откликов, то вашей компании следует тратить больше ресурсов на выращивание своего бренда в сообществе разработки.
Если в подборках попадается слишком мало подходящих резюме, то стоит вернуться на шаг назад и уточнить требования к вакансии или увеличить срок поиска.
И напоследок, если вас завалили откликами и подборками резюме, значит пришло время ужесточить параметры поиска, дополнив их менее значительными требованиями. При наличии достаточного времени имеет смысл отсмотреть все поступившие резюме, тогда фильтрация будет гораздо качественнее.
Порой более эффективным для отсеивания кандидатов может показаться метод решения тестового задания. Однако в большинстве случаев этот способ работает плохо – не все кандидаты готовы уделять тестовому заданию достаточное количество времени, а просьба решить простые задачи ничего вам не скажет о потенциальном сотруднике. Если сделать серьезный акцент на тестовом при найме, то можно упустить хороших специалистов, у которых просто нет времени на такое приложение к вакансии. Более показательным будет способ решения тестового задания на собеседовании, хоть и такой метод является очень стрессовым для кандидата.
Собеседования
Собеседования организовывает HR-рекрутер. При этом вам должно прийти приглашение на почту, (автоматически создаваться событие в календаре с напоминанием) в котором обязательно приложено резюме кандидата и место проведение собеседования. Также в копии такого письма обязательно должны быть все участники собеседования. Время собеседования должно быть с вами предварительно согласовано. На практике, если у вас идет активный найм, проще зарезервировать определенные часы в день собеседования.
К собеседованию необходимо подготовится:
– Прочитать резюме и отметить для себя информацию, вызывающую вопросы. Например, частые переходы между местами работы, признаки недостаточной компетенции в тех аспектах, которые для вас важны и т. д.
– Иметь опросник hard skills со стандартными вопросами. Выделите технические знания и опыт по секциям, для каждой сформулируйте вопросы. Эти вопросы должны продемонстрировать глубину и широту знаний/опыта кандидата. Хорошие вопросы: «В каких случаях выгоднее использовать NoSQL базы данных?», плохие вопросы: «У вас был опыт написания автотестов, знаете, как это делается?». Несмотря на набор готовых вопросов, вам нужно быть готовым к импровизации прямо во время собеседования – задавать вопросы, больше раскрывающие ту или иную компетенцию. Одним из подходов может служить попытка расспросить кандидата о системах, которые он разрабатывал, периодически доходя до мельчайших подробностей реализации.
– Иметь опросник soft skills со стандартными вопросами. Вопросы совместимости с вашей командой, компанией, продуктом и процессами. Личностные качества кандидата и все остальное можно почерпнуть из личного опыта кандидата и набора гипотетических ситуаций. Набор вопросов soft skills не имеет правильных ответов, так что ответы не могут однозначно свидетельствовать о совместимости или несовместимости вашей компании и кандидата.
– Также важно узнать, насколько быстро, в случае положительного решения, кандидат готов приступить к работе есть ли у него какие-то ограничения или планы (допустим, отпуск), о которых вы должны знать.
– У вас должна быть однотипная структура проведения собеседования – вопросы кандидату об опыте, hard skills, soft skills, тестовые задания, вопросы кандидата о компании, о команде, о продукте, о процессах, инструментах. Однотипная структура не означает, что вы ограничитесь одним и тем же набором вопросов.
– Необходимо распечатать резюме и вопросы, взять планшет и быть готовым делать пометки.
– Если собеседование проводится с удаленным сотрудником, вам нужно проверить готовность вашей техники и программ заранее.
– Если вы планируете дать тестовое задание на собеседовании, в ходе которого сотрудник будет решать задачу на месте, необходимо позаботиться о доступном рабочем месте и четко сформулированном задании.
– Если вы не один собеседуете кандидата – обсудите с коллегами кто что будет спрашивать.
Проведение собеседования:
– Кандидата обычно встречает HR-рекрутер и провожает в переговорную комнату, после чего зовет вас. В случае онлайн-собеседования, координацию подключения кандидата может осуществлять как HR-рекрутер, так и вы сами.
– Несмотря на то, что вы заранее знаете, как зовут кандидата, вам необходимо познакомиться, представиться и проявить уважение. Будьте доброжелательны, старайтесь улыбаться и шутить – это позволит кандидату расслабиться и показать всё, на что он способен.
– Сразу расскажите кандидату план беседы и регламент (сколько ориентировочно будет идти собеседование)
– Вы модератор беседы, если считаете, что в разговоре кандидата уводит в сторону, тактично верните его к нужной теме. Или, если вас уже устроил ответ, тактично остановите кандидата и перейдите к обсуждению следующего вопроса. Если вы уже поняли, что кандидат вас не устраивает, то можно прямо об этом сказать в случае, если это следует из описания вакансии. Но бывают обстоятельства, по которым вы понимаете, что кандидат вам не подходит, но открыто заявить об этом вы не можете, тогда у вас должна быть короткая программа диалога для скорейшего завершения собеседования.
– Задавая вопросы из своего списка, помечайте там же результаты. Это могут быть значки «+», «-», числовая оценка или комментарии в виде ключевых слов. Желательно, чтобы кандидат не видел ваших пометок, это может вызвать вопросы или попытку кандидата доказывать вам что-то.
– При необходимости решения тестового задания дайте кандидату на это время без вашего присутствия, так ему будет проще сконцентрироваться. Тем не менее, у кандидата должна быть возможность задавать вопросы, убедитесь, что задание ему понятно перед тем, как оставить его наедине.
– Расстаться вы должны с кандидатом обозначив перспективу – когда и от кого он получит обратную связь.
Фиксирование результатов собеседования:
– После окончания собеседования поставьте кандидату общую оценку по 5-ти бальной шкале. Напишите оценку на распечатанном резюме, скрепите с опросником (на котором вы помечали результат) вместе. Если в собеседовании участвовало несколько человек, оценка должна быть коллективной. Также можно фиксировать и хранить информацию в цифровом виде. В некоторых случаях используются RMS-сервисы, позволяющие в удобном виде создавать и хранить все необходимое.
– Результаты всех прошедших собеседований до момента найма (а может быть и позже) должны храниться у вас в недоступном для других сотрудников месте.
– В резюме могут быть указаны желаемые оклады, ваши пометки или др. информация. Если кто-то из сотрудников будет знать эту внутреннюю информацию о своих коллегах, это в определенный момент может обернуться неприятным сюрпризом.
– Собеседований может быть много, так что ответы кандидатов на одни и те же вопросы могут запросто перепутаться в памяти, особенно, если между собеседованиями прошло большое количество времени. Вы просто забудете кто и как отвечал на вопросы.
– Даже после принятия решения может произойти оффер, который по любым причинам не будет принят. Возможно, кандидат не выйдет на работу или вы столкнетесь с другими незапланированными ситуациями, требующими пересмотра решения – во всех случаях вам понадобится аккуратно собранная информация результатов собеседования.
Лучшие практики проведения собеседований – это сделать всё в один день. Многоступенчатые собеседования, которые растягиваются на много дней, вызывают дискомфорт у кандидатов и демонстрируют уровень бюрократии в компании. При этом очевидно, что собеседование в один день более утомительно для кандидата, поэтому важно делать перерывы и не затягивать общение с каждым из специалистов.
Также полезно использовать современные методы проведения интервью без вашего непосредственного участия https://vcv.ru/, но не менее эффективные за счет видеозаписи. Такой способ не идеален, поскольку у вас нет возможности импровизировать и задавать уточняющие вопросы, а у кандидата не складывается полноценное впечатления о компании и ее сотрудниках.
Еще один полезный прием – записывать видео собеседований, это может позволить:
– Получить мнение о кандидате коллег, не присутствовавших на собеседовании
– Легко передать найм кандидата в другую команду
– Перейти в другую команду на испытательном сроке
Однако для этого подхода, требуется запросить разрешение на запись у кандидата.
Вы можете самостоятельно или при помощи HR-рекрутера получить дополнительную информацию о кандидате, проверив его рекомендации. Обычно указывают в рекомендациях тех, кто даст только положительный отзыв, поэтому наиболее ценными будут отзывы, полученные от предыдущих работодателей кандидата по другим каналам.
Некоторые организации практикуют «пробный рабочий день», предоставляя кандидату попытку сработаться с командой и показать на практике, как он решает задачи. При этом у потенциального сотрудника появляется возможность увидеть, как работает команда. В таком подходе есть несколько проблемных мест:
– Не всем кандидатам захочется потратить целый день на такой тест-драйв.
– Кандидат не сможет продемонстрировать всю глубину своих hard skills, ведь ему достаются задачи без полного погружение в контекст проекта.
– В течение дня придется потратить много ресурсов на ответы на вопросы нового сотрудника.
– Организации придется раскрыть конфиденциальную информацию, выдать определенные доступы, что несет в себе определенные риски.