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