Мы хотели бы сделать еще пару оговорок. Как мы обычно говорим на выступлениях, «изложенная информация является исключительно нашим мнением, основанным на личном опыте. Если вы не согласны с ним, то милости просим выступить с собственным докладом». Как и на устных выступлениях, мы приветствуем любые дискуссии, которые могут возникнуть вокруг тем, представленных в этой книге. Мы рады обсудить с читателями отзывы, исправления, мнения и разногласия. С нами можно связаться через сайт http://www.benandfitz.com/. Содержимое этой книги отражает наш личный «боевой» опыт и уроки, извлеченные из многочисленных ошибок.
Все имена, использованные в примерах, были изменены для сохранения конфиденциальности как положительных, так и отрицательных героев.
Эта книга о том, чему не учат в вузах
Большинство известных нам программистов потратило от 4 до 10 лет на обучение компьютерным технологиям и программированию. На момент написания этой книги мы не знаем ни одного курса,[1] обучающего студентов навыкам общения и совместной работы в команде или компании. Конечно, во время учебы большинству студентов приходится хотя бы однажды участвовать в групповом проекте, но обучать человека методам успешной работы с другими людьми и принуждать его к командной работе – совершенно разные вещи. Для большинства студентов такой опыт заканчивается разочарованием.
Ключевая идея книги
Чтобы достичь успеха, программисту необходимо не только знать новейшие языки и создавать максимально быстрый код. Профессиональные кодеры почти всегда работают в командах, а команда напрямую влияет на продуктивность и удовлетворенность ее участников в большей степени, чем хотелось бы большинству людей.
Ключевая идея этой книги проста: написание ПО – это командный вид спорта, и мы полагаем, что человеческие факторы оказывают на результаты такое же влияние, как и технические. Большинство людей не уделяет достаточного внимания человеческому компоненту программирования даже после многолетнего изучения его технических аспектов. Чтобы достичь успеха, не менее важно научиться сотрудничать с другими людьми. Развив навыки взаимодействия с разработчиками ПО, вы добьетесь гораздо больших результатов, не прилагая лишних усилий.
Глава 1. Миф о гениальном программисте
Поскольку эта книга посвящена социальным проблемам разработки программного обеспечения, рассмотрим предмет, который вам, безусловно, хорошо знаком – это вы сами.
Люди – создания несовершенные, однако прежде чем искать недостатки в коллегах, поищите их у себя. Подумайте о собственных реакциях, поведении и взглядах, это позволит вам стать более успешным и эффективным разработчиком. Вы станете тратить меньше времени на решение проблем, связанных с людьми, и уделять больше внимания созданию отличного программного кода.
Основная идея этой главы заключается в том, что разработка ПО – это командный вид спорта. Чтобы преуспеть в команде инженеров, сосредоточьтесь на ключевых принципах общения – скромности, уважении и доверии.
Перед тем как углубиться в самосовершенствование, давайте понаблюдаем за обычным поведением программистов.
Помогите мне спрятать свой код!
Мы много раз выступали на конференциях по программированию за последние шесть лет. Будучи участниками первого состава команды, которая запустила службу хостинга проектов с открытым кодом в поисковой системе Google в далеком 2006 году, мы получали много вопросов и пожеланий, связанных с нашим продуктом. Вот несколько типичных вопросов и пожеланий середины 2008 года:
Создайте, пожалуйста, возможность скрытия определенных ветвей кода в Subversion на Google Code.