Время - деньги. Создание команды разработчиков программного обеспечения - [5]
В третьей части я рассказываю о моделях исполнения проекта, управляющих повседневными работами по разработке продукта. Мы рассмотрим:
• исполнение — как не дать проекту сбиться с курса, обнаруживая и решая проблемы как можно раньше;
• бета-тёсmирование — как с помощью бета-тестирования получать из внешнего мира отзывы о программе и расширить возможности тестирования;
• работа с кандидатами на выпуск — как управлять заключительными этапами проекта и обеспечить готовность продукта;
• закрытие проекта — что это такое, зачем оно нужно и как его провести.
В конце каждой главы приводятся ответы на распространённые вопросы и методы решения проблем, часто возникающих во время применения изложенных в книге идей на практике. Большинство вопросов и проблем взято из реальных случаев, поэтому я надеюсь, что они помогут вам выйти из реальных затруднительных ситуаций.
Кроме того, по ходу изложения есть врезки под заголовком «Из собственного опыта», иллюстрирующие применение некоторых принципов и концепций в компании NuMega. Эти врезки позволили мне кое-что прокомментировать, рассказать несколько интересных, а порой анекдотичных историй, благодаря которым разработка ПО является таким весёлым занятием.
Я бы хотел услышать ваши соображения и комментарии по поводу этой книги. Кроме того, было бы интересно, если б читатели поделились своими уроками, которые они извлекли из собственного опыта, а также оригинальными способами создания программ в срок. Пишите мне по адресу: [email protected]
Часть 1
Люди, организация и методы
Глава 1
Замечательные люди и как их найти
Замечательные люди создают замечательные программы. Они формулируют требования, отлаживают технологию и придерживаются графиков. Они тестируют, документируют и сопровождают продукт. Их идеи, профессионализм и энтузиазм определяют успех или провал разработки. Поскольку на судьбы проекта больше всего влияет «человеческий фактор», очень важно нанимать самых подходящих людей.
Так-то оно так, но в команды разработчиков часто попадают не совсем те. Трудности с поиском кандидатов и неспособность распознать талант могут усугубляться жёсткими требованиями к срокам поставки продукта, хотя их принимают в расчёт из лучших побуждений. Если вам не по силам решить эти проблемы, то в лучшем случае вы наберёте команду посредственную, в худшем — несостоятельную. И не надейтесь, что таланты сами придут к вам: как бы там ни было, так будет далеко не всегда. Напротив, нужно иметь жёсткое, закреплённое на уровне организации правило находить и удерживать наиболее квалифицированных специалистов. Это правило должно распространяться на три ключевых направления деятельности: поиск, собеседование и удерживание кандидатов.
В этой и следующей главе мы обсудим лучшие методики поиска, отбора и удерживания талантливых людей. Я также расскажу о том, почему эта деятельность, как и сама разработка ПО, требует планирования, дисциплины и контроля исполнения.
Определение «замечательных»
Прежде всего нужно понять, кого же вы ищете. Если вы не можете определить, кто вам нужен, как вы узнаете, что нашли того, кого искали? Как отличить классного разработчика, потрясающего технического писателя и cупep-тестировщика от не столь выдающихся? Критериев оценки масса, но я выделил шесть основных.
Каждый потенциальный кандидат должен иметь признание в своей области. Разработчик должен иметь квалификацию в своей специфической технической области, технический писатель — опыт в создании учебных материалов, инженер по обеспечению качества — владеть методами автоматизированного тестирования.
Я говорю не просто о компетентности, а о мастерстве. Кандидат должен в совершенстве (ну, почти) владеть предметом, относящимся к потребностям проекта. Он должен быть способен «с лёту» рассказать о своей теме и в любой момент продемонстрировать глубокое понимание того, что и как было сделано. Разработчик, например, должен доказать, что его технические познания соответствуют предлагаемой ему должности. Вот некоторые возможные темы:
• C++ объектно-ориентированное проектирование;
• создание СОМ-компонентов;
• MFC и разработка пользовательского интерфейса;
• ассемблер и внутренняя организация Windows;
• разработка драйверов устройств;
• разработка сетевых протоколов;
• оптимизация производительности.
Почему это важно? Во-первых, если человек в совершенстве овладел хотя бы одним предметом, он, вероятно, при необходимости освоит и другие. Технология меняется быстро, и способность к обучению и постижению сложных предметов — очень важное качество.
Во-вторых, в мощных командах важно взаимоуважение друг к другу её членов, а оно зачастую основывается на знаниях и способностях. Каждый должен иметь квалификацию в одной или нескольких областях, в которые он может внести такой же или больший вклад, чем другие.
Значит ли это, что каждый разработчик должен иметь учёную степень и 20-летний опыт разработки ПО? Нет, конечно. Но если вы решили нанять начинающего разработчика для поддержки и сопровождения, вы должны быть уверены, что он выделится на своём месте, а не просто будет ему соответствовать.
Как и Тома Пикетти, который жестко критиковал капитализм, но при этом положительно его оценивал, бывший главный финансовый директор Группы Всемирного банка Бертран Бадре показывает деструктивную роль финансов в глобальном экономическом кризисе 2007–2008 гг. и предлагает смелый рецепт – использовать их во благо. Бадре объясняет, как с помощью финансов решить многие важнейшие проблемы мира – климатические изменения, бедность, восстановление инфраструктуры и многое другое. Он пишет: «Если использовать их с умом, человеколюбием, находчивостью и изобретательностью, финансы способны на великие свершения».
Хотите попросить повышение? Или сообщить подчиненному, что вас не устраивает качество его работы? Благодаря этой книге вы станете настоящим экспертом в разговоре на сложные темы: научитесь подбирать нужные слова, удачный тон и правильное время для бесед. Всего за одну неделю вы подготовитесь к разговору, мысль о котором вселяла в вас панику многие месяцы.
Если вам необходимо принять жизненно важное решение, вы нашли эту книгу в нужный момент! Когда предстоит сделать судьбоносный выбор – вступить ли в брак, переехать в другую страну, сменить работу или завести ребенка (подставьте ваш вариант) – списки «за» и «против» окажутся бесполезными и только еще больше введут в заблуждение. Верное решение находится внутри вас самих, и отыскать его поможет метод Эмили Фриман, известной писательницы и коуча. Пройдя несколько простых шагов, вы научитесь лучше понимать себя и осознаете, что вам действительно нужно и чего вы хотите по-настоящему.
В этой книге отражен результат 15-летнего исследования стратегического лидерства Hewlett Packard. Реальный опыт успешного применения принципов антихрупкости на практике, которые позволили компании выстоять против кризисов XX и XXI века.
Классно в 16 лет иметь возможность самостоятельно покупать все, что хочется, помогать близким и дарить дорогие подарки важным людям. Кристина решила, что хочет зарабатывать сама. В итоге у нее получилось не только купить самый дорогой ноутбук, но и оплатить каникулы в Дубае для себя и папы, параллельно продолжая учиться в школе. Как у нее получилось? Благодаря этой книге вы: • Сделаете первый шаг к собственным деньгам • Избежите ошибки при трудоустройстве на работу • Сможете заработать деньги на воплощение мечты.
В этой книге Пол Смит, директор по коммуникациям и потребительским исследованиям в Procter & Gamble и популярный спикер, рассказывает, как наиболее эффективно использовать силу историй. Автор уверен: каждый может стать блестящим рассказчиком. Пол Смит предлагает сотню готовых историй на все случаи жизни, которые помогут вам привлекать внимание, вдохновлять и мотивировать. Книга предназначена для всех, кто хочет воодушевлять и убеждать любую аудиторию. На русском языке публикуется впервые.