Нечто неожиданное случилось между 2000 и 2005 годами. Во время работы над Subversion наши обязанности стали понемногу изменяться. Мы больше не сидели весь день в изоляции, занимаясь написанием кода, а руководили проектом с открытым исходным кодом. В течение дня мы общались в чате с дюжиной программистов-волонтеров и следили за их работой. Мы почти полностью координировали разработку новых функций через список рассылки. В процессе этой работы мы поняли, что для успеха проекта недостаточно создавать хороший код. Не менее важно то, как люди взаимодействуют друг с другом для достижения конечной цели.
В 2005-м мы открыли технический офис Google в Чикаго и продолжили программистскую карьеру. В то время мы уже были активно вовлечены в мир открытого кода; мы не только работали над системой Subversion, но и участвовали в сообществе Apache Software Foundation (ASF). Мы перенесли Subversion в инфраструктуру BigTable, разработанную Google, и запустили службу хостинга проектов с открытым кодом (аналогичную SourceForge) под флагом Google Code. Мы начали посещать конференции для разработчиков, а затем и выступать на них – OSCON, ApacheCon, PyCon и, наконец, Google I/O. Работая в обеих корпорациях и занимаясь проектами с открытым кодом, мы незаметно собрали кладезь знаний и историй о том, как работают настоящие команды разработчиков ПО. Серия забавных докладов о неэффективных процессах разработки («Худшие практики Subversion») в конечном счете превратилась в выступления о защите команд от деструктивно настроенных людей («Как избавить проект от вредоносных участников»). Все большие и большие толпы людей собирались на наших презентациях, которые больше напоминали сеансы групповой терапии для разработчиков. Каждый участник осознавал свою причастность к проблемам, о которых мы рассказывали, и хотел поделиться ими с группой.
Спустя шесть лет в нашем арсенале было множество докладов о социальных проблемах разработки ПО, проходивших исключительно в переполненных залах. Мэри Треселер, редактор издательства O’Reilly Media, рекомендовала нам оформить эти доклады в виде книги. Остальное – достояние истории.
Если вы хотите делать отличные программы, то эта книга – для вас
Для кого предназначена эта книга
Эта книга предназначена в первую очередь для разработчиков ПО, стремящихся строить свою карьеру и создавать высококлассные программы. К целевой аудитории книги не относятся генеральные директоры, психологи, управленцы, теоретики-компьютерщики и специалисты по электронике (хотя все эти профессионалы тоже могут получить удовольствие от чтения). При написании книги мы руководствовались следующими предпосылками:
• читатель работает в команде программистов, например принимает участие в проекте с открытым исходным кодом;
• читатель получает удовольствие от разработки ПО и считает ее достойным и увлекательным занятием. Если вы преобразуете нули в единицы и обратно с целью отделаться от кредиторов, то вы вряд ли заинтересованы в саморазвитии и карьерных достижениях.
Рассматривая методы эффективного взаимодействия инженеров с другими людьми, мы касаемся вопросов, которые, как может показаться на первый взгляд, не имеют отношения к должностным обязанностям программиста. Мы говорим о том, как эффективно руководить командой, прокладывать свой «маршрут» в организации и выстраивать здоровые отношения с пользователями. Может показаться, что эти главы адресованы исключительно менеджерам, однако мы уверены, что в вашей карьере наступит момент, когда вы сами непреднамеренно окажетесь в такой роли. Отбросьте сомнения и продолжайте читать! Все, что написано в этой книге, безусловно, касается разработчиков ПО.