Книга

«Делай как в Google», Титус Уинтерс, Том Мэншрек, Хайрам Райт

КнигаДелай как в Google. Разработка программного обеспеченияТитус Уинтерс, Том Мэншрек, Хайрам Райт

Обложка книги «Делай как в Google»

Делать как в Google или не делать как в Google — вопрос интересный. Но подсмотреть, как у них там делается, всегда интересно. Для этого и была написана книга «Делай как в Google».

Книга за три предложения

В больших корпорациях грамотно выстроенные процессы становятся ещё важнее из-за рычага количества людей. Google довольно успешно смог эти процессы выстроить, и в книге авторы показывают, как привычные практики проявляют себя на масштабах: хорошо, но с модификациями. Причём ограничиться просто техническими процессами вроде код-ревью не получится, очень важной становится социальная составляющая: общение, менеджмент, обмен опытом и так далее.

Что я могу применить

  • Забрал пару полезных принципов развития культуры инноваций в команде. Например, хорошая практика — дать людям возможность легко получить умеренные ресурсы для экспериментов.
  • Убедился, что моя приверженность к написанию тестов и применению статических анализаторов — масштабируемая и правда полезная штука.
  • Пока не могу применить, но задумался об инфраструктуре интеграционных тестов для больших продуктов, где прогон может занимать сутки-двое. В книге даётся довольно чёткое разделение тестов по размеру и критичности, поэтому вполне можно не гонять все автотесты в одном пайплайне.
  • Trunk-based development, с одной стороны, не имеет доказательств эффективности, с другой — есть успешные кейсы применения. Попробовать точно стоит, но аккуратно.

Основные выводы и тейки

  • Для масштабирования организации нужны масштабируемые процессы обеспечения качества.
  • Чем больше организация, тем более важную роль играет грамотный менеджмент.
  • Автоматизировать нужно много и с удовольствием: ручной труд масштабируется крайне плохо.
  • При росте организации могут начать вылезать ну очень неожиданные проблемы.

Впечатления

Впечатления смешанные. С одной стороны, было прикольно почитать, как там у них в Google. С другой — осталось ощущение однобокости. Книга ощущается очень поверхностной, без погружения в какую-либо тему хотя бы чуть-чуть. В конце не появилось понимания, зачем авторы это в принципе написали :)

Вообще мне было искренне интересно почитать о том, как пишется софт в большой компании и насколько много всего есть вокруг непосредственного процесса программирования.

Как эта книга изменила меня

Книга заставила меня плотненько так подумать о важности роли руководителя в большой организации. Масштабируемость и рост во многом зависят от людей, которые за них отвечают. Решения, принимаемые этими людьми, могут превратить организацию в ракету или гужевую повозку. В очередной раз понял, насколько важны фундаментальные навыки грамотного мышления и банальная логика.

Три цитаты

В программировании ремесленники-одиночки встречаются крайне редко, и никто из них не достигает вершин самостоятельно: их достижения, меняющие мир, почти всегда являются результатом искры вдохновения, сопровождаемой упорной командной работой. Великая команда блестяще использует своих суперзвёзд, и целое всегда больше, чем сумма его частей. Но создать команду из суперзвёзд очень сложно. Сформулируем эту идею проще: программирование — это командная работа.

Мы в Google стараемся задать тон общения, когда к компании присоединяется «нуглер» (новый гуглер). Чувство психологической безопасности мы создаём с помощью назначения наставника — человека, который не является членом команды, менеджером или техническим руководителем, в обязанности которого входит отвечать на вопросы и оказывать помощь нуглеру. Наличие официально назначенного наставника для обращения за помощью облегчает новичку работу и избавляет его от страха, что он может отнимать время у коллег.

Идея проектировать системы так, чтобы впоследствии их можно было объявить устаревшими, возможно, выглядит слишком радикальной, но она получила широкое распространение в других инженерных дисциплинах. Рассмотрим, например, атомную электростанцию, которая представляет собой сложнейшее инженерное сооружение. При её проектировании необходимо учитывать её вывод из эксплуатации по истечении срока службы вплоть до выделения средств на эти цели. Необходимость вывода атомной электростанции из эксплуатации существенно влияет на многие решения, принимаемые инженерами.