Благодаря хорошей закваске новички усваивают вашу культуру
Культура вашей команды очень похожа на хорошую буханку хлеба: закваска (основатели команды) прививает культуру тесту (новичкам), и с ростом дрожжей и бактерий (участников вашей команды) получается отличная буханка хлеба (ваша команда). Если у вас сильная закваска, то, скорее всего, она победит нежелательные «дикие сорта» культур, которые привносит с собой новый участник команды.[6] Если же закваска слабая, то ваша команда уязвима для неизвестных штаммов культур, приносимых новичками. Неизвестные культуры приводят к непредсказуемым результатам, поэтому проще начинать с закваски, которую вы знаете.
Культура команды – это не просто методы создания программного кода и общения друг с другом, которыми пользуются участники команды; это набор знаний, ценностей и целей, уникальных для каждой команды инженеров. Основатели команды или компании определяют наибольшую часть командной культуры, однако культура продолжает изменяться и развиваться на протяжении всего времени существования команды.
Элементы, составляющие командную культуру, очень разнообразны. Некоторые из них непосредственно касаются написания ПО – например, рецензирование программного кода, разработка на основе тестирования и создание хорошей проектной документации перед началом создания больших объемов кода. Некоторые элементы ориентированы на людей: например, выходы на ланч в определенный ресторан по четвергам или выпивка в любимом баре по пятницам. Какие-то элементы могут показаться глупыми или нелепыми внешнему наблюдателю: например, технический офис Google в Питтсбурге находился рядом с железнодорожными путями, по которым ходили товарные поезда, и каждый раз, когда поезд проходил мимо (а это, как вы знаете, сопровождается сильным шумом), все сотрудники вскакивали с мест и кидались друг в друга дротиками.[7] Все эти вещи образуют командную культуру и влияют на ее продуктивность и способность привлекать и удерживать хороших участников.
Посмотрите на любую компанию, достигшую больших успехов в разработке ПО – Google, Apple, Microsoft, Oracle, – и вы увидите, что у каждой из них есть особая культура с корнями, которые создали ее основатели и первые сотрудники. По мере роста и развития культуры этих компаний изменялись, но продолжали сохранять уникальность, которая воплощалась почти во всем, что касалось разработки продуктов, отношения к сотрудникам и конкуренции с другими компаниями.
Зачем заботиться о культуре?
Говоря кратко, вам следует заботиться о культуре потому, что если вы не станете прилагать усилия к ее формированию и поддержке, то вашей командой завладеет сильная личность, которая посеет в ней свою культуру. Возможно, эта культура окажется продуктивной, здоровой и приведет к созданию огромного количества отличного кода, но, скорее всего, вы в один прекрасный момент обнаружите, что значительное количество вашей энергии, которое раньше тратилось на проектирование и написание кода, будет уходить на споры и внутреннюю борьбу. Более того, важно иметь культуру, которую ваша команда будет ценить и защищать. Если команда не ценит культуру, то становится сложно формировать единство команды и коллективное чувство гордости за работу; кроме того, новичок сможет с легкостью превратить вашу культуру в нечто непотребное.
Первая ошибка, которую делает большинство инженеров, – считать, что руководитель команды курирует командную культуру. Это очень большое заблуждение: несмотря на то что основатели и лидеры обычно поддерживают культуру команды в здоровом виде, каждый ее участник интегрирован в культуру и несет ответственность за ее определение, поддержку и защиту. Когда в команду приходит новый участник, он перенимает культуру не только от руководителя команды, но и от всех ее участников, с которыми он взаимодействует. Например, если вы внимательно изучаете код, написанный новичком, и объясняете ему, почему ваша команда разрабатывает код определенными способами, то он быстро начинает понимать, что именно в базе кода представляет ценность для команды. Он также постигает вашу культуру, наблюдая за тем, как остальная часть команды работает, взаимодействует и разрешает конфликты.