Идеальная IT-компания. Как из гиков собрать команду программистов - Брайан Фитцпатрик
Шрифт:
Интервал:
Закладка:
Посмотрите на любую компанию, достигшую больших успехов в разработке ПО – Google, Apple, Microsoft, Oracle, – и вы увидите, что у каждой из них есть особая культура с корнями, которые создали ее основатели и первые сотрудники. По мере роста и развития культуры этих компаний изменялись, но продолжали сохранять уникальность, которая воплощалась почти во всем, что касалось разработки продуктов, отношения к сотрудникам и конкуренции с другими компаниями.
Зачем заботиться о культуре?
Говоря кратко, вам следует заботиться о культуре потому, что если вы не станете прилагать усилия к ее формированию и поддержке, то вашей командой завладеет сильная личность, которая посеет в ней свою культуру. Возможно, эта культура окажется продуктивной, здоровой и приведет к созданию огромного количества отличного кода, но, скорее всего, вы в один прекрасный момент обнаружите, что значительное количество вашей энергии, которое раньше тратилось на проектирование и написание кода, будет уходить на споры и внутреннюю борьбу. Более того, важно иметь культуру, которую ваша команда будет ценить и защищать. Если команда не ценит культуру, то становится сложно формировать единство команды и коллективное чувство гордости за работу; кроме того, новичок сможет с легкостью превратить вашу культуру в нечто непотребное.
Первая ошибка, которую делает большинство инженеров, – считать, что руководитель команды курирует командную культуру. Это очень большое заблуждение: несмотря на то что основатели и лидеры обычно поддерживают культуру команды в здоровом виде, каждый ее участник интегрирован в культуру и несет ответственность за ее определение, поддержку и защиту. Когда в команду приходит новый участник, он перенимает культуру не только от руководителя команды, но и от всех ее участников, с которыми он взаимодействует. Например, если вы внимательно изучаете код, написанный новичком, и объясняете ему, почему ваша команда разрабатывает код определенными способами, то он быстро начинает понимать, что именно в базе кода представляет ценность для команды. Он также постигает вашу культуру, наблюдая за тем, как остальная часть команды работает, взаимодействует и разрешает конфликты.
Сильная культура – это культура, открытая для изменений, улучшающих ее, но при этом устойчивая к радикальным изменениям, наносящим ей вред. В самых успешных культурах основные усилия команды сконцентрированы на создании высококлассного ПО. Если ваша команда сфокусирована на чем-либо другом (например, на вечеринках, посещении мероприятий или конкуренции), то ее участники, возможно, будут тесно сплочены, но в результате вы не достигнете успеха в разработке ПО. Если вам больше всего нравится создавать код и выпускать продукты, то, безусловно, в ваших интересах найти команду, которая ценит это, и работать над поддержанием такой среды. Конечно, нельзя утверждать, что вы не можете создать продукт без сильной и продуктивной культуры, но без такой культуры выпуск продукта будет стоить вам значительно больше времени и энергии. Сильная культура формирует концентрацию, эффективность и мощь – элементы, из которых состоит удовлетворенная команда.
Интересный аспект командной культуры в том, что сильная культура начинает сама осуществлять отбор людей. В области открытых исходных кодов проекты, основанные на скромности, уважении и доверии и сконцентрированные на написании понятного, элегантного и удобного в сопровождении кода, привлекают инженеров, заинтересованных в (сюрприз!) работе с теми, к кому они испытывают уважение и доверие, а также в написании понятного, элегантного и удобного в сопровождении кода. Если же ваша команда строится на культуре агрессии, дедовщины и личностных атак, то вы привлечете больше людей с соответствующими качествами.
Мы многократно наблюдали культуры с самоотбором в организации Apache Software Foundation. Множество команд разработчиков, работающих в ней, объединены в сообщества и сотрудничают на принципах консолидации. Множество новичков появлялись в списке рассылки и своим безразличным или агрессивным поведением нарушали правила, принятые в командной культуре. Участники сообщества обычно пытались обучить их (иногда деликатно, иногда не вполне), и если они не переставали игнорировать принципы работы ASF, то, как правило, отправлялись восвояси в поисках более подходящего проекта.
В корпоративной сфере команды осуществляют самоотбор во время найма: неявно – через наиболее ценные навыки и преимущества соискателей либо явно – через определение совместимости кандидата с командной культурой в процессе найма. Google при найме придерживается «явного» подхода и оценивает культурную совместимость с кандидатом во время собеседования. Если соискатель своим поведением напоминает рок-звезду, но неспособен работать с группой людей или требует крайне регламентированной рабочей среды, то интервьюеры поднимают красный флаг в процессе обратной связи.
Если вы не проявляете внимание к культурной совместимости при приеме сотрудников и берете на работу неподходящих людей, то вам придется потратить немало энергии на то, чтобы адаптировать новичка либо заставить его уйти. Каким бы ни был результат, цена настолько высока, что, безусловно, есть смысл позаботиться о том, чтобы новые участники эффективно срабатывались с существующей командой.
Единственный способ удостовериться в том, что новый участник подходит к вашей культуре, – это провести целенаправленное интервью. Во многих компаниях (таких как Google) культурная совместимость является одним из критериев, учитываемых интервьюерами при собеседовании с претендентом. Чтобы избежать ошибок при найме, некоторые компании идут в своих поисках еще дальше: они проводят отдельные интервью, посвященные культурной совместимости, раньше, чем технические интервью, поскольку не хотят даже рассматривать людей, которые соответствуют их техническим требованиям, но не разделяют их культуру. Этот способ вовлечения в процесс важен для формирования и сохранения сильной культуры и не происходит случайно; обычно основатели и первые сотрудники компании намеренно осуществляют его.
Культура и люди
Написание ПО отличается от штамповки деталей на конвейере. Некоторые виды работ можно выполнять после нескольких дней тренировки при помощи простых инструментов, и если ваш работник уходит из компании или не справляется с обязанностями, то вы просто нанимаете другого, и работа продолжается. Конвейерные рабочие выполняют элементарные задачи, часто механически, с минимумом творческого мышления и без необходимости применять навыки решения проблем. В сфере ПО от инженеров, работающих над программным продуктом, требуется творческое мышление,[8] и если вы хотите создать отличный продукт, то для этого требуются первоклассные инженеры. Для того чтобы эти инженеры отлично работали (и не уходили), создайте культуру, которая позволит им уверенно делиться своими идеями и иметь голос при принятии решений.
Конец ознакомительного фрагмента.
Примечания
1
Мы прочитали замечательную книгу Тома Де Марко (Tom DeMarco) «Человеческий фактор» (PeopleWare), но она адресована не столько инженерам, желающим научиться эффективнее взаимодействовать с людьми, сколько менеджерам, стремящимся сделать свои команды более успешными.
2
Тем не менее мы согласны с тем, что ярко выраженным интровертам, как правило, требуется проводить больше времени в тихой, спокойной и уединенной обстановке, чем большинству людей, и они чувствуют себя лучше если не в отдельной комнате, то хотя бы в более спокойном месте.
3
Это особенно трудно, если в прошлом вы имели негативный опыт передачи работы некомпетентным людям.
4
«Вы и ваши исследования» (You and Your Research), http://www.cs.virginia.edu/~robins/YouAndYourResearch.pdf
5
Дюжину вариантов этой легенды можно найти в Интернете применительно к различным известным менеджерам.
6
Разумеется, сильная культура всегда может и интегрировать в себя подходящие «дикие сорта», которые появляются вместе с новичком.
7
Это чертовски напугало Фитца, когда он впервые оказался в питтсбургском офисе Google.
8
Некоторые люди считают, что могут нанять суперархитектора, нескольких заурядных программистов и создать хороший продукт. Мы полагаем, что это возможно, но более скучно, чем работать с командой отличных людей, которые вдохновляют вас, спорят с вами и расширяют ваши знания.