Корпоративная культура

Корпоративная культура

Понятие «культура» в приложении к созданию программ включает ряд определённых черт и понятий, влияющих на процесс разработки ПО. Культура формируется прежде всего принципами и действиями руководящего звена организации. Со временем культура растёт или приходит в упадок в зависимости от прошлых успехов и неудач группы, реакции на возникающие проблемы и способности решать поставленные задачи. Эти факторы в конечном счёте определяют самооценку группы. Она может быть любой: участники группы могут считать себя специалистами высшего пилотажа, создающими замечательные продукты, или страдальцами, еле справляющимися со своей работой.

Почему культура так важна?

Как и у индивидуума, так и у команды должно быть представление о предназначении, важности, уровне мастерства и способности решить поставленную перед ней задачу. Если самооценка команды высока, её мотивация и работоспособность достаточны, чтобы с высокой производительностью труда создавать высококачественные продукты. И наоборот, если самооценка низка, команда будет работать ниже своих способностей, даже если она состоит из талантливых людей! В определённом смысле культура может как повышать, так и снижать общую работоспособность коллектива.

Высокая культура разработки ПО, в частности, имеет огромное значение при освоении новых возможностей или для выхода из затруднительной ситуации. Если в компании развита культура создания качественных продуктов, весьма вероятно, что внутреннее стремление и приверженность к этой практике не иссякнут и в будущем.

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

Как воспитать корпоративную культуру?

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

Из собственного опыта

Воспитывая корпоративную культуру NuMega, мы специально предпринимаем ряд конкретных действий.

Чётко определяем, кто мы и какие цели преследуем

Нам совершенно ясно, кто мы и что должны делать. Звучит довольно просто, да? Но на деле это не так просто, как кажется.

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

Культивируем элитарность

Строгий отбор при приёме на работу позволяет многим считать привилегией принадлежность к числу технических специалистов нашей компании. Культивирование окружения, построенного на привилегиях, позволяет поддерживать высокий боевой дух и снижать текучесть кадров. Элитарность позволяет воспитать такие черты культуры, как приверженность общему делу, стремление делать заметные вещи и участвовать в решении нестандартных задач.

Отмечаем успехи и помним свою историю

Со временем в компании сформировалась история выпуска замечательных продуктов, успешных как в техническом, так и в экономическом отношении. «Отцы-основатели» постоянно приводят эти успехи в качестве примеров на собраниях и неформальных встречах. Все следят за тем, чтобы каждый новичок знал историю и путь развития компании. Это стимулирует формирование культуры стремления к успеху, создания замечательных продуктов и заставляет быть экспертом в выбранной нами области.

Эти принципы имеют большое значение, ибо история компании влияет на формирование культуры. Обязательно отмечайте успехи и передавайте историю компании новым работникам.

Поддерживаем дух соперничества

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

У нас свои способы отдохнуть и весело провести время

У работников технических компаний есть два удовольствия: возможность от души повеселиться и разные способы отдохнуть от повседневных забот. У нас куча всяких вещиц: футболок, рекламных материалов с выставок, бесплатных обедов, кроме того, «NuMega specials» (пицца с поджаренным луком, чесноком и жгучим «чили»), самодельные площадки для гольфа и велосипедные дорожки прямо в помещениях компании. Всё это формирует атмосферу исключительности и веселья. Мы знаем, что это очень нетипично, но это нам и нравится!

Не прячем своих разработчиков от клиентов

В NuMega искренне убеждены, что разработчиков не следует прятать от клиентов. Проще всего попросить их присутствовать на стенде компании на какой-нибудь выставке. Там они смогут не только отдохнуть от работы, но и попадут на передний край общения с клиентами, смогут ответить на их вопросы, получить новые идеи и услышать о созданных ими продуктах как хорошее, так и плохое.

Такие выставки поднимают боевой дух разработчиков до небес, поскольку каждый из них получает сведения о потребностях клиентов из первых рук. Таким образом удаётся наладить живую связь между теми, кто создаёт программы, и теми, кто ими пользуется.

***

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

• ценит выполненную вовремя работу?

• ценит техническое превосходство?

• ценит высокое качество?

• ценит даже минимальный вклад?

• поощряет риск?

• поощряет исключительную производительность труда?

• проявляет благородство?

• небезразлична к социальным проблемам?

• считает, что каждый должен принимать участие в тестировании продукта?

• оперативно реагирует на внешние угрозы?

• считает, что тестирование практичности программы имеет решающее значение?

• считает сверхурочную работу обычным делом при отставании от графика?

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

Корпоративная культура и технологические приёмы

Другой аспект культуры состоит в использовании и освоении внутренних технологических приёмов. Характерной чертой некоторых культур является наличие множества технологических приёмов разработки, в то время как у других их почти нет. Молодые компании часто неохотно осваивают новые технологические приёмы, тогда как в более крупных организациях без них не обходится ни одно задание. По мере роста группы следует подумать о том, как вы собираетесь осваивать новые технологические приёмы. Какие типы приёмов необходимы, а без каких можно обойтись? Как не впасть в крайность, пустив всю работу на самотёк или изнурив себя разными правилами и положениями?

Вот некоторые правила, которых полезно придерживаться при росте организации:

Взвешивайте затраты на внедрение технологических приёмов и пользу от них

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

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

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

Прежде, чем внедрять новые приёмы, нужно извлечь максимум из имеющихся

Один из самых обескураживающих аспектов разработки ПО — внедрение новых приёмов, в то время как команда не полностью использует все возможности имеющихся. В вашей команде так быть не должно. За правильное использование имеющихся приёмов отвечают менеджеры и ведущие специалисты. Можно потерять доверие участников команды, санкционируя добавление новых технологических приёмов и игнорируя те, что уже есть. Если обнаружится, что ни один из имеющихся документированных приёмов не используется полностью, созовите собрание группы и решите, представляют ли они ценность. Да — оставьте их и используйте «на все сто». Нет — избавьтесь от лишних технологических приёмов. Что толку держать приёмы, развесив их по стенам, как картины? Они только портят интерьер.

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

Взвешивайте потребности отдельного специалиста и всей команды

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

Из собственного опыта

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

Представляет ли новый приём ценность для компании? Иногда — да, когда дополнительная точная информация позволит легче устранять ошибки, но число таких ошибок не превышает 5-10 в месяц. Однако затраты на ввод этой информации, который должны были выполнять 15 человек на протяжении всего внутреннего цикла разработки (особенно когда приходилось регистрировать до 10 ошибок в день), не стоили потенциальной пользы. Кроме того, большинство ошибок воспроизводилось на любой машине, в противном случае было нетрудно связаться с офисом, откуда поступило сообщение об ошибке, и выяснить необходимую информацию о конфигурации.

Отвергнув это предложение и множество ему подобных, нам удалось поддерживать накладные расходы низкими и в полной мере задействовать имеющийся арсенал технологических приёмов.