Зачем заботиться о культуре?
Говоря кратко, вам следует заботиться о культуре потому, что если вы не станете прилагать усилия к ее формированию и поддержке, то вашей командой завладеет сильная личность, которая посеет в ней свою культуру. Возможно, эта культура окажется продуктивной, здоровой и приведет к созданию огромного количества отличного кода, но, скорее всего, вы в один прекрасный момент обнаружите, что значительное количество вашей энергии, которое раньше тратилось на проектирование и написание кода, будет уходить на споры и внутреннюю борьбу. Более того, важно иметь культуру, которую ваша команда будет ценить и защищать. Если команда не ценит культуру, то становится сложно формировать единство команды и коллективное чувство гордости за работу; кроме того, новичок сможет с легкостью превратить вашу культуру в нечто непотребное.
Первая ошибка, которую делает большинство инженеров, – считать, что руководитель команды курирует командную культуру. Это очень большое заблуждение: несмотря на то что основатели и лидеры обычно поддерживают культуру команды в здоровом виде, каждый ее участник интегрирован в культуру и несет ответственность за ее определение, поддержку и защиту. Когда в команду приходит новый участник, он перенимает культуру не только от руководителя команды, но и от всех ее участников, с которыми он взаимодействует. Например, если вы внимательно изучаете код, написанный новичком, и объясняете ему, почему ваша команда разрабатывает код определенными способами, то он быстро начинает понимать, что именно в базе кода представляет ценность для команды. Он также постигает вашу культуру, наблюдая за тем, как остальная часть команды работает, взаимодействует и разрешает конфликты.
Сильная культура – это культура, открытая для изменений, улучшающих ее, но при этом устойчивая к радикальным изменениям, наносящим ей вред. В самых успешных культурах основные усилия команды сконцентрированы на создании высококлассного ПО. Если ваша команда сфокусирована на чем-либо другом (например, на вечеринках, посещении мероприятий или конкуренции), то ее участники, возможно, будут тесно сплочены, но в результате вы не достигнете успеха в разработке ПО. Если вам больше всего нравится создавать код и выпускать продукты, то, безусловно, в ваших интересах найти команду, которая ценит это, и работать над поддержанием такой среды. Конечно, нельзя утверждать, что вы не можете создать продукт без сильной и продуктивной культуры, но без такой культуры выпуск продукта будет стоить вам значительно больше времени и энергии. Сильная культура формирует концентрацию, эффективность и мощь – элементы, из которых состоит удовлетворенная команда.
Интересный аспект командной культуры в том, что сильная культура начинает сама осуществлять отбор людей. В области открытых исходных кодов проекты, основанные на скромности, уважении и доверии и сконцентрированные на написании понятного, элегантного и удобного в сопровождении кода, привлекают инженеров, заинтересованных в (сюрприз!) работе с теми, к кому они испытывают уважение и доверие, а также в написании понятного, элегантного и удобного в сопровождении кода. Если же ваша команда строится на культуре агрессии, дедовщины и личностных атак, то вы привлечете больше людей с соответствующими качествами.
Мы многократно наблюдали культуры с самоотбором в организации Apache Software Foundation. Множество команд разработчиков, работающих в ней, объединены в сообщества и сотрудничают на принципах консолидации. Множество новичков появлялись в списке рассылки и своим безразличным или агрессивным поведением нарушали правила, принятые в командной культуре. Участники сообщества обычно пытались обучить их (иногда деликатно, иногда не вполне), и если они не переставали игнорировать принципы работы ASF, то, как правило, отправлялись восвояси в поисках более подходящего проекта.