Текст книги "Время — деньги. Создание команды разработчиков программного обеспечения"
Автор книги: Эд Салливан
Жанры:
Программирование
,сообщить о нарушении
Текущая страница: 3 (всего у книги 19 страниц)
Пожалуй самая сложная кадровая проблема – поиск качественных специалистов. Если кадровое обеспечение у вас отстаёт, вы можете под влиянием обстоятельств «взять хоть кого, лишь бы помог». Но это очень рискованно. Каждый новый сотрудник должен прежде всего стать полноценным членом команды.
Кроме того, любое плохое кадровое решение скорей всего приведёт к проблемам, описанным в этой главе. Классные специалисты распознают достойные организации и хотят работать только в самых лучших. Не разбавляйте команду посредственностями – это может сказаться на ваших дальнейших возможностях найма работников.
Но что делать в кризисных ситуациях? А вот что:
• Нанимайте контрактников
Контрактников можно эффективно использовать, заполнив пробелы в штатном расписании и используя их для работ, не являющихся критичными или уникальными в вашем проекте. Даже если их способности позволяют выполнять более квалифицированные задачи, все равно имеет смысл их использовать для таких работ, это позволит вашим людям работать над более критичными или интересными частями проекта. Контрактники – люди временные, и их легко уволить по завершении работы или если они окажутся несовместимыми с командой.
• Сверхурочная работа
Это ещё одна возможность закончить работу, не жертвуя качеством коллектива (подробнее см. главу 12).
• Удаление или задержка в реализации некоторых функций
Рассмотрите возможность принести в жертву функциональность. Если работы настолько много, что не поможет ни сверхурочная работа, ни контрактники, график проекта и список его возможностей может стать нереальным. При этом дополнительные сотрудники с недостаточной квалификацией не только не помогут, а, возможно, даже помешают.
• Реорганизация кадрового обеспечения
Отсутствие достойных кандидатов может говорить о том, что прилагается недостаточно усилий для кадрового обеспечения. Зачем вводить в команду слабых специалистов, создавая дополнительные проблемы, если на самом деле вам нужно разобраться с кадровым обеспечением?
Глава 2
Резюме, собеседование и удерживание сотрудников
Хотя команда создаётся из отдельных людей, но вообще-то нужно работать с коллективом – обдуманно и осторожно. В этой главе мы рассмотрим основы построения коллектива: анализ резюме, собеседование с кандидатами и создание необходимых условий.
Умение отличить плохих кандидатов от хороших на основе их резюме – очень важное качество. Ничего не стоит швырнуть в корзину плохое резюме прекрасного специалиста или потратить уйму времени и сил на собеседование с человеком, с которым не стоило и встречаться.
Анализ резюмеДавайте использовать определение подходящих кандидатов из предыдущей главы применительно к анализу резюме.
• Опыт работы (квалификация)
Как давно кандидат работает в интересующей вас области и насколько сложны проекты, с которыми он имел дело? Например, имеет кандидат 2– или 10-летний опыт разработки на C++? Писал он код высокопроизводительных приложений с обработкой транзакций для финансовых институтов или простой код для вывода диалоговых окон в вузовской программке? Предыдущий опыт скажется на способности специалиста разбираться со сложными технологиями и применять их в работе. Вам нужны люди, справившиеся со сложной работой хотя бы в одной из интересующих вас областей.
• Летуны (преданность)
Один из лучших способов оценить это качество – посмотреть в резюме, не «летун» ли он: если за последние три года он сменил четыре места, его преданность работе можно поставить под вопрос. Хотя причины смены работы могут быть вполне обоснованными, такое поведение заслуживает пристального внимания.
• Предприятия, на которых кандидат работал в прошлом (отношение к делу, умение работать в команде)
Ещё одна неплохая возможность получше узнать потенциального работника – посмотреть, где он работал раньше. Вам нужны люди, которые хорошо впишутся в организацию того типа, которая у вас есть или которую вы хотите создать. Где работал кандидат: всегда только в больших компаниях или в малых? Преимущественно в отделах информационных технологий или независимых фирмах-производителях ПО? Потратил ли он большую часть времени на работу по госзаказам или три его последние работодателя были начинающими компаниями? Над чем трудился кандидат: создавал «коробочное» ПО или занимался реализацией больших проектов масштаба предприятия?
Рабочая среда, корпоративная культура, сегмент бизнеса, выбранные кандидатом в прошлом, могут многое о нём сказать – для этого даже не нужно встречаться. Так, если ваша компания начинающая, а в резюме говорится об опыте работы с начинающими компаниями, такой кандидат может вам подойти. С другой стороны, если вы имеете дело с кандидатом, пришедшим из компании, загруженной формализованными методами и стандартами, а вы пытаетесь быстро выбросить свой продукт на рынок, вам, возможно, придётся отказать такому кандидату, особенно если есть другие факторы, указывающие на его приверженность неторопливой работе.
• «Сильные» и «слабые» глаголы (поведение)
Вы можете многое почерпнуть из того, как кандидат описывает свой предыдущий опыт. Хорошие работники обычно демонстрируют свою приверженность и ответственность за решаемые задачи и гордятся этим. Показателем такого положительного качества обычно являются «сильные» глаголы, например:
– произвёл;
– овладел;
– управлял;
– определил;
– написал;
– интегрировал;
– направил;
– создал.
Слабые, глаголы в целом означают меньшую приверженность делу и ответственность. Применение таких слов может указывать, что кандидат не в полной мере овладел предметом. Поищите такие слова:
– принимал участие;
– ознакомился;
– следовал;
– помогал;
– способствовал;
– комментировал.
• Сфера ответственности (поведение, умение работать в команде)
Оцените сферу ответственности. Насколько большим был проект? Какова была доля участия в нём кандидата? Насколько важно это было для компании? Что бы произошло при срыве проекта? Сколько людей участвовало в проекте?
• Способность письменно излагать свои мысли (умение работать в команде)
Резюме и сопроводительное письмо – первые примеры способности кандидата письменно излагать свои мысли. Они же могут быть и единственными, если вы не попросите кандидата написать что-нибудь ещё. Хорошо ли это читается? Не слишком ли многословно? Не чересчур ли сжато? Понимаете ли вы, что хотел сказать кандидат? Не забудьте оценить всё, что получили от кандидата.
• Профессиональный кругозор (жажда знаний)
Жажду знаний можно оценить (с некоторыми оговорками), исходя из широты профессионального опыта. В целом тот, кто стремится расширять свои знания, склонен принимать предложения, позволяющие ему испробовать что-то новое. Хорошей мерой профессионального кругозора кандидата является оценка его способности работать на разных уровнях абстрагирования. Может ли он работать как с высокоуровневым кодом (например, с пользовательским интерфейсом и общей логикой программы), так и с низкоуровневыми технологиями (потоки, управление памятью, внутренняя организация ОС и т.п.)?
Резюме не даёт полной картины
Резюме лишь помогают отобрать кандидатов для собеседования. Не забывайте оценить жизненный опыт кандидата на основании сопроводительного письма и резюме. Иногда из него видны характерные черты человека, которые могут иметь значение для предлагаемой вами работы. Вполне вероятно, что умение играть на нескольких музыкальных инструментах говорит о способности работать с несколькими языками программирования, успехи в спорте – об активной натуре, а опыт военной службы – о дисциплине.
Телефонное интервью
Прежде чем назначать встречу кандидатам для собеседования, имеет смысл провести их предварительный отсев, поговорив по телефону. Телефонное интервью – эффективное средство получения дополнительных сведений о кандидатах, а также прекрасная возможность сэкономить время. Оно поможет не только понять, для какой должности в наибольшей степени подходит кандидат, но и назначать ли вообще ему собеседование. Собеседование по телефону целесообразно в следующих случаях.
• Вы хотите больше узнать о кандидате
Предварительный разговор по телефону – лучший способ решить, подходит ли вам кандидат, когда вы в нём не уверены. Резюме не даёт полного представления о кандидате, так что если у вас есть сомнения, поговорите с ним по телефону. Соберите наиболее важные сведения, которые помогут вам решить, отсеять его или назначить ему встречу.
• Нужно установить контакт, но нет возможности встретиться
Если ваш график не позволяет своевременно провести собеседование, созвонитесь с кандидатом, подтвердив при этом наличие вакансии. Так, если у вас есть вакансия разработчика пользовательского интерфейса для самых современных карманных компьютеров, сообщите об этом кандидату. Если у вас отличная команда и прекрасные условия работы, кандидат должен об этом знать. Это поможет поддерживать заинтересованность кандидата в вашей компании, когда он будет рассматривать другие предложения, а вы сможете решить, нужно ли уделять ему больше внимания, чтобы взять его себе.
Из собственного опыта
Иногда для забавы мы просматриваем старые резюме наших сотрудников. Показательно (и довольно смешно), насколько плохи их резюме в сравнении с тем, что на самом деле представляют эти люди или кем они стали. Когда-то я зачитывал такие резюме, не называя имени автора, и спрашивал у коллег, взять ли нам его на работу. Ответы были очень интересными!
Собеседование с кандидатомНаконец появился хороший кандидат. Следующий шаг – собеседование. Далее я расскажу о принципах его проведения.
Команда, проводящая собеседование
В собеседовании должны принимать участие все сотрудники, которые будут непосредственно связаны с новичком. Не забывайте: вы создаёте команду и важно, чтобы другие её члены приняли нового сотрудника. Им будет легче это сделать, если они будут участвовать в выборе кандидатов.
Ключевые темы
При собеседовании вы должны оценить:
• квалификацию;
• преданность;
• отношение к делу;
• поведение;
• умение работать в команде:
• жажду знаний.
Оценка квалификации
На собеседовании важно оценить квалификацию кандидата. Правильней всего привлечь для этого руководителей или ведущих специалистов отдельных направлений. Это могут быть руководители отдела разработки, тестирования или разработки технической документации. Ваши специалисты должны уделить достаточно времени для понимания того, что и как кандидат уже сделал.
Вот простой совет: даже если вы, как интервьюер, не знаете предмет столь же глубоко, как кандидат, вы все равно можете задавать много вопросов для оценки его знаний. Здесь важно внимательно слушать и правильно формулировать последующие вопросы. Например:
• «Что такое потоки?»
• «Как они функционируют?»
• «Зачем они применяются?»
• «Каковы наиболее распространённые проблемы использования потоков?»
• «Опишите наиболее сложную проблему, связанную с потоками, которую вам удалось решить».
Откровенно говоря, один и тот же набор вопросов вы можете использовать для самых разнообразных тем, скажем, обсуждая СОМ, серверы Sun и базы данных Oracle. Если ответы становятся короче и поверхностней, стоит копнуть глубже. Но если кандидат отвечает свободно, подробно и приводит примеры из реальной жизни, вы, скорее всего, имеете дело с кандидатом, знающим своё дело.
Из собственного опыта
Как-то в NuMega мы связались с кандидатом, из резюме которого следовало, что он был архитектором сложных систем на базе СОМ, и мы попросили своих экспертов по СОМ провести с ним собеседование. Сначала кандидата попросили схематически изобразить его проект на доске, а затем пройтись по объектной модели и объяснить проектные решения. Кандидат нарисовал на доске один квадратик, долго на него таращился, а потом сказал: «Ладно, поймали. Я соврал в своём резюме – я это не разрабатывал». Вывод: всегда нужно убедиться, что кандидат умеет делать то, что он декларирует.
Ключевые вопросы
Вопросы на собеседовании должны быть связаны с предыдущей практикой кандидата, а не с абстрактными ситуациями, для которых кандидат обычно знает «правильные» ответы. Вам нужно определить, как он работает в реальных условиях. Оценив поведение человека предыдущих ситуациях, вы можете представить, как он будет справляться с новой работой. Рассмотрим ряд общих проблем в тех областях, на которых нужно сосредоточиться. Они не претендуют на полноту – это лишь примеры вопросов, относящихся к ключевым темам.
• Квалификация.
– Опишите последний случай, когда для решения проблемы вам требовалась помощь других специалистов. Долго ли вы её ждали? Как вы взаимодействовали? Что получилось в итоге?
– Расскажите о сложной проблеме, которую вам пришлось выявлять и устранять. Что это было? Как вы её обнаружили? Каково было решение?
– Расскажите о каком-нибудь фрагменте кода, который вам нужно было написать в сжатые сроки. Как вы это делали? Получилось ли у вас и почему?
• Преданность.
– Какая часть вашего предыдущего проекта была самой сложной? Как вы к этому относились? В чём заключалась ваша роль? Что получилось в результате?
– Расскажите о ситуации, когда ваш проект должен был реагировать на внешние воздействия. Что было причиной? Какова была реакция команды? Какова была ваша реакция?
• Отношение к делу.
– Опишите последний случай, когда вы не уложились в сроки. Что случилось? Как вы реагировали? Что произошло потом?
– Опишите последний случай, когда вы оказались в затруднительном положении. Из-за чего? Как вы реагировали? Как вы вышли из положения?
• Поведение.
– Опишите последний случай, когда вы отвлеклись от своих дел, чтобы помочь кому-то другому. Почему вы это сделали? Каков был результат?
– Расскажите о ситуации, когда вы делали дополнительную работу, хотя вас об этом не просили и никто не знал, что вы это делаете.
• Умение работать в команде.
– Опишите самого сложного во взаимоотношениях человека, с которым вам приходилось работать. Что делало таким сложным общение с ним? Какова была ваша реакция? Как вы к этому относились?
– Каковы наиболее важные принципы плодотворной работы с другими людьми? Почему? Приведите примеры, подтверждающие ваше мнение.
• Жажда знаний.
– Как вы поддерживаете свои знания? Какие книги или журналы вы читаете, какие выставки посещаете?
– Опишите, что сейчас происходит на рынке с продуктом X. Что может случиться в дальнейшем?
Из собственного опыта
Один из любимых вопросов наших специалистов: «Есть ли у вас дома компьютер, пригодный для разработки?» Если у кандидата его нет, он, как правило, не интересует наших разработчиков. Они ищут фанатов своего дела, готовых потратить на него своё личное время и деньги, и писать программы бесплатно. Ищут себе подобных.
Обратная связь и завершение собеседования
Не действуйте в одиночку. Поддерживайте обратную связь с другими членами команды, проводящей собеседование. Обсуждайте с ними все «за» и «против» по данному кандидату, а также вопросы, требующие дальнейшего изучения. Не пытайтесь переубедить друг друга – ограничьтесь простым обсуждением в рамках своей компетентности.
Иногда становится совершенно очевидным, что кандидат не годится. То ли он не соответствует тому, что написано в его резюме, то ли из его заявлений вытекает, что он не вписывается в коллектив. Не бойтесь прервать собеседование, если стало ясно, что кандидат у вас работать не будет. Наше правило: если двое согласны, что лучше не продолжать собеседование, они его кончают – какой смысл попусту тратить время?
Тестирование кандидата
Проверка возможностей кандидата может дать очень наглядные результаты. Для начинающих и малых компаний тестирование, позволяющее больше узнать кандидата, чем интервью, зачастую является важным шагом, предшествующим приёму на работу. Тестирование не должно требовать большого объёма внешней вспомогательной информации. Вместе с тем тест должен быть достаточно сложным, чтобы можно было увидеть, как кандидат решает трудные проблемы.
Зачастую наиболее важная часть теста – не тест как таковой, а реакция на него. Не паникует ли кандидат? Не сдаётся ли он через пять минут? Находит ли он творческое или уникальное решение? Прилагает ли усилия? Не сломило ли его то, что он не смог закончить тест или не нашёл ответа?
Многие считают, что собеседование – порядочный стресс и без тестирования. Может быть, но работа в среде разработки ПО – стресс ещё больший. Вы должны быть уверены, что ваш человек до определённой степени умеет справляться со стрессами.
Из собственного опыта
Многие годы мы предлагаем одни и тот же программистский тест каждому разработчику. Он не требует никакого оборудования или обращения к справочникам. Кандидатов просят написать программу, отображающую на экране свой собственный исходный текст, не обращаясь к чтению файлов. Хотя для многих кандидатов этот тест оказался сложным, он позволил многое в них открыть. Кое-кто сдавался через пару минут, другой присылал ответ потом, поскольку не нашёл решения во время собеседования. Один даже позвонил из самолёта, возвращаясь с собеседования! Не такие ли люди вам нужны?
Примеры разработок
Другой способ тестирования кандидатов – анализ примеров их разработок. Многие разработчики пользовательского интерфейса, технические писатели, специалисты по эргономике и программисты могут запросто представить вам такие образцы. Скажем, разработчики пользовательского интерфейса и эргономисты могут продемонстрировать снимки экранов поставляемых продуктов, а технические писатели – документацию или справочные файлы, над которыми они работали. У тестировщиков зачастую есть их старые планы тестирования или другая вспомогательная документация. Внимательно ознакомившись с предыдущими работами, вы сможете получить хорошее представление о предыдущем опыте и способностях кандидата. Когда вы не знаете, как поступить с кандидатом, образцы его разработок могут направить вас в нужном направлении.
Привлечение кандидата
При положительных результатах собеседования вы начинаете рассматривать кандидата как явного претендента на место. Теперь вы должны суметь объяснить, почему эта должность, эта компания и эта рабочая обстановка – именно то, что ему нужно. У хорошего кандидата предложений хватает, поэтому важно уметь кратко описать преимущества, которые он получит, работая на вас.
Чтобы привлечь кандидата, задайте себе следующие вопросы относительно проекта, группы и компании;
• что вы предлагаете в плане технологий?
• над какими продуктами будет работать кандидат?
• как можно охарактеризовать компанию, в которой будет работать кандидат?
• в чём уникальность предложения?
• какие уникальные преимущества есть у предлагаемой рабочей обстановки?
Заметьте: о зарплате и льготах в вашем предложении ни звука. О них я скоро расскажу. Вам не нужны люди, рассматривающие работу только через призму зарплаты. Прежде чем переходить к цифрам, нужно убедиться, что кандидат интересуется работой.
Из собственного опыта
В NuMega все аргументы в пользу компании абсолютно чётко определены, и все их знают наизусть. Многих кандидатов это завораживает.
• Вопрос: что вы предлагаете в плане технологий?
Ответ: Windows-программирование на нижнем уровне.
• Вопрос: над какими продуктами будет работать кандидат?
Ответ: средства разработки и отладки.
• Вопрос: как можно охарактеризовать компанию, в которой будет работать кандидат?
Ответ: стремительно развивающаяся коммерческая компания – поставщик ПО.
• Вопрос: в чём уникальность предложения?
Ответ: применение передовых закрытых технологий Microsoft и Intel; работа в элитарной команде разработчиков.
• Вопрос: каковы уникальные преимущества предлагаемой рабочей обстановки?
Ответ: непринуждённая обстановка, ориентированная на комфорт разработчиков, сочетающая работу и отдых.
Окончательное решение
Когда придёт время принять решение, не забудьте выяснить мнения каждого. Соберите всех заинтересованных лиц, чтобы обсудить их соображения и наблюдения. Это позволит выяснить одну из трёх вещей:
• вы нашли победителя;
• вы не нашли победителя;
• не ясно, кого вы нашли – мнения разделились.
Сделайте предложение кандидату, только если понятно, что вы имеете дело с победителем – не нужно лишнего риска. Если после многочисленных дискуссий у какого-то члена команды остаются серьёзные возражения, лучше остановиться. Важно учитывать мнение каждого члена команды. Особенно важно не вводить кандидата в команду насильно. Маловероятно, что команда, участвовавшая в собеседовании и процессе отбора, примет и будет помогать человеку, который ей не подходит.
Дополнительные усилия
Когда вы кончите собеседования и убедитесь, что хотите взять кандидата, может возникнуть ситуация, требующая дополнительных действий с вашей стороны. Иногда кандидаты рассматривают несколько предложений, или у них остаются какие-то сомнения или вопросы, которые не могут разрешить только специалисты по подбору кадров. Тогда вам может потребоваться человек, умеющий доводить сделки до конца, который снимет последние вопросы и сомнения колеблющегося кандидата. Он может позвонить ему домой, пригласить на ранний завтрак или поздний ужин и доверительно с ним поговорить. Само собой, тот факт, что вы уделяете особое внимание кандидату, скажет ему о том, как он для вас важен, что в свою очередь существенно увеличит ваши шансы заполучить этого кандидата.
Предложение
Когда приходит пора делать кандидату предложение, действуйте быстро и предлагайте солидные начальные условия. Нужно продемонстрировать кандидату, что он является важной частью команды. Не забывайте: вы берёте на работу только лучших и времени терять не намерены!
Я очень рекомендую предлагать солидную базовую зарплату и поощрения, стимулирующие производительность. Обычно это делается в виде премий и некоторой доли акций в соответствии с тем уровнем вклада в общее дело, который вы ожидаете от нового сотрудника.
Дальнейшие шаги
Если кандидат не принял вашего предложения сразу же, будьте готовы и дальше работать с ним. Ещё раз: у талантливых людей масса выгодных предложений. Нельзя сделать предложение и на этом успокоиться. Сделав предложение, шлите кандидату электронную почту, письма, звоните. Не теряйте с ним контакт на этой критической стадии. Если поступили новые предложения, возникли другие вопросы или осложнения, вы должны о них знать. Если вы не получаете ответа ещё несколько дней – все равно продолжайте и доведите дело до конца.
Если вы упустили кандидата
Принятие решения – процесс эмоциональный, здесь и мелочи могут сыграть определённую роль. Когда кандидат говорит «нет», убедитесь, что на то есть серьёзные причины, а не какие-то легко разрешаемые пустяки. Для этого нужно разобраться, почему предложение отклонено. Не успокаивайтесь, услышав о «лучшем предложении». Нужно понять, что лежит за этим ответом.
Из собственного опыта
У нас как-то был хороший кандидат на должность тестировщика, отказавшийся от нашего предложения по «семейным обстоятельствам». Поговорив с ним, мы выяснили, что он обещал свозить свою семью в диснеевский парк. Он думал, что у него не будет свободного времени из-за жёсткого графика, связанного с выпуском нашего продукта. Вообще-то он был прав – нам были нужны люди, готовые сразу приступить к работе и довести её до конца. Но, узнав причину отказа, мы обсудили ситуацию с руководством и согласились, что он – ценное дополнение к нашей команде и достоин того, чтобы учесть его «семейные обстоятельства»
В другом случае мы сделали предложение прекрасному разработчику, который затем решил продолжать работу над своим текущим проектом, так как в нём была нужда и он должен был с этим примириться. Мы, конечно, огорчились, но оценили его позицию и выразили надежду, что он свяжется с нами, завершив проект. Мы не пытались обсуждать с ним его обязательства, нельзя убеждать человека, чтобы он отказался от тех ценностей, ради которых мы его сами принимаем на работу. Вдруг, оказавшись в затруднительном положении, он снова нам позвонил, и мы взяли его на работе. Мы готовы были его ждать, уверенные, что он будет так же предан нам, как бывшему работодателю.