Время — деньги. Создание команды разработчиков программного обеспечения
Шрифт:
• Плохо описанная вакансия
Собеседование должно проводиться для конкретной вакансии (если только это не ознакомительное собеседование). Если вы не знаете функциональных обязанностей вакантного поста, вы получите совершенно разные мнения членов группы, проводящей собеседование, относительно приемлемости кандидата. Чёткое описание работ для всех вакансий должно быть доступно всем интервьюерам задолго до прихода кандидата
• Слишком много времени уделяется неквалифицированным кандидатам
Не тратьте на кандидата больше времени, чем нужно.
• Чрезмерная или недостаточная реклама собственных возможностей
Некоторые организации не предоставляют о себе достаточных сведений. Кандидата интервьюируют так дотошно, что у него не остаётся возможности узнать о вакансии. У него остаётся масса вопросов, и он не знает, подходит ли ему эта вакансия. Другие организации слишком много себя рекламируют и по сути не интервьюируют кандидата. Вы должны знать сильные стороны компании и рассказать о них в подходящий момент, но не в процессе собеседования.
• Нереализованные возможности
Вам нужно иметь пару людей, знающих, как довести работу с кандидатом до конца. Кандидат не должен уйти, не получив ответа на важные вопросы или не совсем понимая, что ему предлагается. У вас должен быть ответственный сотрудник, который может ответить на все вопросы, если кандидат не принял предложения. Он должен ориентироваться в широком круге проблем, включая видение будущего компании, возможности роста по службе и уметь сравнивать и противопоставлять альтернативные предложения.
• Медлительность
Хороших кандидатов трудно найти. Если вы уверены, что нашли достойного, — действуйте быстро. Не стесняйтесь пригласить кандидата на интервью вечером или предложить прилететь на выходные. Будьте готовы провести собеседование в тот же день. Я не предлагаю спешить с собеседованием, но бывают обстоятельства, требующие быстрого принятия решения, в том числе во внеурочное время.
Дело нужно поставить так, чтобы вы могли сразу принять кандидата на работу. Время исключительно важно при поиске талантливых людей, и почти всегда вам придётся конкурировать с другими компаниями. Нет ничего неприятнее, чем найти прекрасного кандидата, а потом услышать, что он принял другое предложение, пока вы раскачивались.
• Неправильный баланс
Большинство проблем с удерживанием сотрудников связано с неправильным балансом профессиональных, финансовых и социальных факторов. Вы не сможете долго жертвовать чем-то одним в пользу другого. Нужно на регулярной основе обеспечивать баланс между профессиональной удовлетворённостью, денежным стимулом и социальной поддержкой. Не ждите, когда начнут возникать проблемы.
• Текучесть кадров
Текучка существует всегда. Меняются личные обстоятельства и приоритеты. Люди уходят по причинам, которые вы не можете контролировать: родился ребёнок, нужно быть поближе к родным, далеко до работы… С другой стороны, текучка может указывать на серьёзные проблемы в коллективе
Глава 3
Организация проекта
Как бы ни были талантливы люди, они всё равно не смогут работать с максимальной эффективностью, если их не организовать правильно. Проекты часто страдают от недостатка организованности и неясностей в распределении ролей и обязанностей. Каждый должен знать свой манёвр в общем контексте проекта.
В этой главе мы подробно разберём модель организационной структуры, используемой в NuMega, а также рассмотрим роли, обязанности и навыки, необходимые участникам группы в рамках этой модели.
Модель организационной структуры компании NuMega
Программы, как правило, создаются коллективами, а не одиночками. Команда разработчиков — это группа людей с различными техническими навыками, работающих над реализацией общего проекта. Поскольку разработать ПО довольно сложно, в команде требуются специалисты с самыми разными навыками и способностями, необходимыми для создания продукта. Вот какие специалисты должны быть в группе:
• основной состав группы — специалисты, полностью занятые в создании нового программного продукта:
— менеджеры проекта;
— программисты;
— тестировщики;
— разработчики документации;
— инженерные психологи;
— технологи по разработке ПО;
• вспомогательная группа — специалисты, не занимающиеся созданием программ, но, тем не менее, играющие важную роль в реализации проекта:
— группа менеджмента и маркетинга продукта;
— специалисты по технической поддержке ПО;
— администраторы бета-тестирования.
Очень важно, чтобы перечисленные функциональные подразделения участвовали в работе над проектом с самого начала. Чем раньше люди смогут понять суть требований к продукту и принять участие в их критическом анализе, тем лучше подготовятся к исполнению собственной миссии и ощутят свой вклад в успех проекта. Кроме того, чтобы завершить создание продукта в срок, все перечисленные подразделения должны работать параллельно на протяжении всего цикла разработки. Решение этой задачи будет описано в главе 11 — там мы рассмотрим включение в график проекта взаимно скоординированных во времени промежуточных этапов.
С другой стороны, если при подборе кадров какие-либо функциональные подразделения будут не (недо-) укомплектованы, то реализовать такие важные условия разработки ПО, как глубокое понимание задач, синергизм в работе и постепенный прогресс, будет невозможно. Я не настаиваю на том, чтобы все подразделения были полностью укомплектованы к первому дню работы над проектом, но по крайней мере их представители (хочется надеяться, что это будут ведущие специалисты) должны работать над проектом с самого начала. Нельзя недооценивать как важность этого требования, так и трудность его реализации.