Философия DevOps. Искусство управления IT Дэвис Дженнифер
• Идентифицируйте сотрудников и команды, которые обладают критически важной информацией, и работайте с ними над дальнейшим уточнением проблемы. В данном случае цель заключается не в том, чтобы выяснить все возможности, а в том, чтобы определить, какие компоненты требуют изменений, а какие критически важны для решения текущих задач. Благодаря наличию разнородной команды, включающей людей с аналитическим, нешаблонным или творческим складом ума, создается потенциал для решения проблем, которые могут возникнуть в будущем.
В процессе выполнения вышеописанного процесса идентификации вы откроете для себя паттерны конкретных проблем. Как только в вашем распоряжении появится соответствующий паттерн, сравните его с имеющимися вариантами. Являются ли варианты нежизнеспособными? Что будет, если выбрать один из этих вариантов? Что будет, если создать что-то совершенно новое?
Примите решение о документировании процесса принятия решений таким образом, чтобы был понятен осознанный характер решения. Идентифицируйте факторы гибкости, которые рассматриваются в качестве потенциальных улучшений в будущем. Какие фундаментальные проблемы связаны с этими решениями? Также следует иметь в виду, что планирование является составной частью процесса использования инструментов или технологий, особенно когда предусматривается использование автоматизации. При всей пользе автоматизации без надлежащего планирования можно автоматизировать дефектный процесс. В результате ситуация станет еще хуже, чем раньше.
Убедитесь в том, что люди не только принимают решения и работают, но и документируют условия «что, если?». В результате ваша команда сможет идентифицировать используемое в данный момент решение, получить согласие руководства и быть готовой к изменениям по мере развития и роста технологий. Также нужно быть готовыми к сбоям в системе и к появлению непредвиденных проблем.
Мы не можем заставить людей согласиться на использование конкретного инструмента
В небольших организациях можно попытаться получить согласие у каждого человека на использование (или отказ от применения) какого-либо инструмента. Более того, в маленьких стартапах эта методика окажется успешной. Но по мере «разбухания» команды и организации это будет все труднее и труднее. После достижения определенного размера и уровня сложности вряд ли целесообразно налаживание обратной связи с каждым человеком, использующим тот или иной инструмент, не говоря уже о получении согласия на использование данного инструмента.
Как только вы поняли, что достичь единодушного согласия на использование инструмента не представляется возможным, можете переходить к поиску решения, имеющего смысл для большинства вариантов использования. Вполне возможно, что вы захотите идентифицировать людей, использующих инструменты ежедневно. Для таких людей есть смысл в оптимизации потребностей и вариантов использования. Не имеет смысла уделять особое внимание людям, которые используют инструмент эпизодически. Возможно, стоит сформировать группу из нескольких тестеров, которая вероятно представляет большинство общих вариантов использования инструмента. Можно также позволить людям стать бета-тестерами, чтобы помочь оценить возможные решения.
Многие инженеры и техники не хотят каких-либо перемен. Как правило, они выступают против внедрения новых инструментов не потому, что не испытывают каких-либо проблем, а потому, что просто к ним привыкли. Разработайте структурированный способ осуществления обратной связи, позволяющий высказать мнение об используемых инструментах. Благодаря такой связи вы сможете установить, как часто пользователи сталкиваются с проблемами, а также идентифицировать сами проблемы. И не забывайте о том, что те, кто громче всех жалуется на проблемы, не обязательно выражают мнение большинства.
В то время как гибкость, безусловно, важна, в некоторых областях имеет смысл располагать инструментами, которые не обговариваются в рамках команды или организации. Например, если имеются инструменты, которые позволяют поддерживать SOX, PCI либо другой уровень соответствия, имеет смысл настаивать на том, чтобы все, кто работает в этой области, использовали данные инструменты. Вероятно, есть смысл свести набор необходимых инструментов к минимуму, хотя, безусловно, есть области, в которых использование таких инструментов оправданно.
Мы решили принять технологию X (или отказаться от нее), но люди не хотят ее использовать (или отказаться от нее)
Степень открытости людей, использующих новый инструмент в работе, во многом зависит от процесса, в котором был выбран этот конкретный инструмент. Если у вас сложилась ситуация, когда было принято решение «сверху вниз», возможно, менеджером, который имеет меньший опыт работы с данным инструментом или рабочим потоком, чем обычные сотрудники, это может послужить весьма веской причиной для отказа от применения инструмента. Чтобы избежать появления подобных ситуаций, исследуйте проблемы, которые вы пытаетесь решить. Также поработайте с людьми, которые будут часто использовать этот инструмент, как описано ранее. Как отмечено выше, возможно, придется пройти длинный путь, прежде чем подобные ситуации перестанут возникать.
Обратите внимание на то, как изменяется стиль общения и как откатить эти изменения обратно. Представьте, что компьютеры сотрудников управляются централизованно, из точки, в которой изменения программного обеспечения могут выполняться ИТ-персоналом удаленно. В одно прекрасное утро люди приходят на работу и видят, что был установлен новый компонент программного обеспечения. Причем это было сделано без объяснения функций этого компонента и, что более важно, без сообщения о цели этого изменения. В подобной ситуации сотрудники, скорее всего, будут сопротивляться изменениям, даже если они полезны.
Проинформируйте людей заранее о предстоящих изменениях набора инструментов, которые повлияют на них. Дайте им возможность поучаствовать в процессе изменений. Вы можете обнаружить, что люди, которые, по вашему мнению, даже не знают, как работать с инструментом, имеют свое, и весьма неплохое, мнение об этом инструменте. Как только будут приняты решения, сообщайте об этом заранее, задолго до внедрения изменений. Дайте людям больше времени для перехода к использованию нового инструмента. Либо дайте им возможность привыкнуть обходиться без инструмента, от которого вы собираетесь отказаться. Объясните, что именно изменилось, как был сделан выбор. Дайте людям знать, как они смогут связаться с вами или сообщить о возникших проблемах.
Описанная в разделе методика относится как к добавлению новых инструментов, так и к отказу от существующих. Эти изменения приобретут необратимый характер и станут полезными при наличии достаточного уровня общения и эмпатии в организации.
Часть V. Масштабирование
Глава 14. Масштабирование: критические точки
Эта глава посвящена способам выявления и преодоления трудностей, возникающих на основных этапах жизненного цикла организаций. На первый взгляд может показаться, что проще все свести к идее «корпоративных devops-практик», как обычно поступают многие, когда идет речь о методологиях devops, которые не используются в стартапах и небольших компаниях. Но это было бы слишком просто, хотя подобные devops-практики и включают некоторые специфичные для корпораций моменты, которые будут рассмотрены в настоящей главе. Гораздо лучше было бы описать процесс изменения компании с течением времени, будь то рост и развитие стартапа или разделение крупной организации на две отдельные компании. С помощью масштабирования описываются эволюция, рост и продвижение организации как единого объекта на всех этапах ее жизненного цикла.
Довольно сложно предугадать тот момент, когда в команде, отделе или организации необходимо внедрять те или иные изменения. Поскольку эти изменения порой неочевидны, весьма полезными будут некоторые советы по их внедрению.
Если мы рассматриваем прогресс в качестве составной части разнородного ландшафта, который либо способствует, либо мешает будущим начинаниям, это поможет нам планировать, выполнять и корректировать текущее состояние с учетом предварительно поставленных целей. Эти цели могут достигаться как постепенными, но управляемыми действиями, так и динамическими скачками. Опыт обычно подсказывает, когда и как следует менять направление прогресса, а также то, какие стратегии нужно применять в тех или иных средах.
В этой главе освещаются причины возникновения проблем, возникающих в процессе масштабирования организаций. Кроме того, вниманию читателя предлагается детальное рассмотрение взаимодействия между тремя рассмотренными ранее столпами эффективных devops-практик и различными разновидностями проблем, возникающих в процессе масштабирования. В продолжение темы предыдущих глав будут рассмотрены некоторые неправильные представления и общие вопросы, возникающие в процессе устранения проблем.
Не существует «корпоративных devops-практик», предусматривающих использование уникальных инструментов и методик, которые применялись бы исключительно в компаниях, в которых работает большое количество сотрудников. Также не существует единого определения успеха, позволяющего получить однозначный результат, к которому стремятся все компании и организации. Чтобы успешно внедрять изменения, нужно превратить организацию в удобный для применения и сбалансированный инструмент, обладающий необходимой степенью гибкости.
Как в крупных компаниях, так и в небольших организациях необходимым условием для выработки силы, баланса и оперативности является devops-пакт. Культура сотрудничества и близости способствует укреплению «слабых связей» и более оперативному распространению информации внутри компании. Крупные организации отличаются друг от друга способами применения принципов, а не самими принципами.
Многие полагают, что devops-практики могут применяться только в новых проектах, выполняемых в небольших стартапах, и непригодны в крупных компаниях или наследственных системах, которым присущи технические и культурные долги. Тем не менее в отчете 2015 State of DevOps Report (отчет о состоянии devops за 2015 год), подготовленном компанией Puppet Labs, утверждается, что это далеко не так (https://puppet.com/resources/white-paper/2015-state-devops-report).
Высокая производительность достигается за счет контролируемости и развертываемости.
Исследователи, подготовившие этот отчет, обнаружили, что культурные принципы devops могут применяться в любых организациях, независимо от их размеров. Кроме того, такие технические принципы, как процесс непрерывной доставки и улучшенного развертывания, применимы для любого хорошо разработанного и спроектированного проекта по разработке ПО, включая унаследованный программный код, который выполняется на мэйнфреймах. Абсолютно новый проект, основанный на использовании микросервисов, не может быть успешным по причине своей новизны и тех же микросервисов. Он должен быть тщательно спроектированным, проверяемым и легко развертываемым. Эти принципы применяются по отношению ко всем программным проектам, как старым, так и новым.
Стратегическое расширение или сокращение организаций с помощью devops
Успешные организации должны знать способы масштабирования в тех случаях, когда возникает необходимость расширения или сокращения. В зависимости от ситуации и исполнителей изменяются трактовки масштабирования. Таким образом, масштабирование является еще одним примером народной модели, поэтому для эффективного обсуждения этого процесса в организации следует уточнить вид масштабирования. Например, масштабирование может подразумевать следующее:
• расширение клиентской базы;
• увеличение прибыли;
• расширение проекта или команды с целью достижения соответствия определенным требованиям;
• поддержка или улучшение соотношения количества сотрудников и систем либо денежных затрат;
• более быстрый рост по сравнению с конкурентами.
Дополнительные сложности возникают из-за модификаторов, которые придают дополнительный вес терминам. Пример использования модификатора – словосочетание «крупномасштабные» системы. Насколько «крупными» считаются системы, если с помощью управляемых служб один инженер может быстро развернуть и свернуть сотни систем буквально за считанные минуты, а не за месяцы, как это было ранее? Если рассматривать эту проблему через призму быстро развивающейся доступности систем, то возникает вопрос о том, существует ли набор принципов, методов и технологий, применимых в определенном поднаборе организаций?
Ответ на этот вопрос отрицательный. В дополнение к практикам, рассмотренным в части IV, в 2015 году компания Etsy насчитывала около 800 сотрудников, 1,5 млн активных продавцов и 22,6 млн активных продавцов с годовым объемом продаж 1,93 млрд долларов. Как показывает другой пример, компания Target в 2015 году насчитывала около 347 тыс. сотрудников и имела 72 млрд долларов годового дохода. Несмотря на различия в размерах, обе компании адаптировали принципы и методы, основанные на текущих культурах. В результате были выбраны стратегии, которые являются оптимальными в современных условиях.
Невозможно выработать единый механизм, который позволил бы решить все проблемы, особенно связанные с устранением человеческого фактора из систем. В реальном мире архитекторы разрабатывают проекты на основе своих знаний, опыта, интуиции и механического процесса. Проект здания зависит от ряда факторов, среди которых технические требования, особенности прилегающей территории, историческая обусловленность, а также влияние окружающей среды.
Дома возводятся на основе чертежей и 3D-моделирования. В основу внешнего и внутреннего проектов зданий архитекторы закладывают существующие культурные традиции и тенденции[54]. Универсального проекта здания, который удовлетворял бы всем требованиям, не существует. То же самое касается и программных проектов и организаций.
Не следует судить о системах в целом на основании отдельных компонентов или своего опыта. Благодаря построению, управлению и использованию систем формируется большой и сложный набор откликов. В сложных системах не бывает простых линейных случаев отказа, для которых может быть идентифицирована единая первопричина. В процессе проектирования и масштабирования систем следует учитывать все факторы, а особенно их взаимодействие.
Например, в зависимости от используемого программного обеспечения и его конфигурации один и тот же сервер базы данных будет различным образом отвечать на 50 операций считывания одинаковых и разных данных. Если база данных является распределенной и находится на нескольких серверах, ее характеристики и поведение снова изменятся. Далеко не всегда поведение, наблюдавшееся в прошлом, влияет на поведение в будущем.
Благодаря опыту управления подобным сервером базы данных вы сможете более эффективно работать с другими людьми. Подобный опыт облегчает формирование и рост команд, а также способствует устранению пробелов в знаниях. Более того, сведение способов управления системами к простым повторяющимся действиям критическо важно для снижения общего уровня сложности. К тому же процесс упрощения сам по себе непрост. То, что работает в одной среде, может оказаться совершенно непригодным для другой среды.
Планирование масштабирования
Идентификация поведения системы и основных факторов, влияющих на ее работу, позволит сформировать набор приоритетных систем для текущей среды. Для начала следует сформулировать свои цели. Ставите ли вы своей задачей получение определенного опыта? Как вы будете реагировать на перебои в работе? Будете ли вы стремиться к восстановлению доверительных отношений после устранения бреши в системе безопасности?
В настоящее время благодаря специальному программному обеспечению можно освоить искусство дизайна. Более того, специалисты, добившиеся значительных достижений в этой сфере, могут получить звание архитектора. Различные истории, посвященные архитектуре программного обеспечения, ограничивают наше понимание ПО, мешая рассмотреть его с других позиций. Не бывает плохих монолитных программных структур, также некорректно сравнивать их с микросервисами. Благодаря изучению технологий, процессов и стратегий действий в конфликтных ситуациях гарантированно принимаются продуманные решения в пользу гибкости или негибкости в определенной среде. Принятие осознанных решений по поводу гибкого подхода, применяемого в организации, позволит более целенаправленно подготовиться к будущим изменениям. Лучшей подготовке также способствует прочный фундамент, которому присуща необходимая степень гибкости, а также возможность статического или динамического отклика в ответ на изменения.
Процесс масштабирования упрощается в случае пересмотра способов организации команд. Небольшие многофункциональные команды, члены которых обладают определенными навыками (например, разработка внешнего и внутреннего интерфейса, дизайн, взаимодействие с пользователем и выполнение операций), применяемые для создания того или иного проекта, более успешны в продвижении своего продукта.
Несмотря на вышесказанное, монофункциональным командам также свойственны определенные преимущества. Среди них – более широкие возможности по обмену знаниями и узкая специализация внутри определенной команды или отдела. Если выявляется, что монофункциональные команды прекрасно взаимодействуют с остальными сотрудниками организации, не стоит их переформатировать ради самой идеи переорганизации. Важна не сама структура организации, а налаживание взаимодействия между командами с целью повышения общей эффективности организации в целом.
В иерархических организациях пресекаются на корню любые начинания, в результате чего сотрудники начинают чувствовать беспомощность. С другой стороны, в подобных организациях повышению эффективности способствует разница в расстановке сил и в статусе сотрудников. Если же в организации осуществляется массовая реорганизация, направленная на устранение иерархической структуры, это может привести к появлению определенных проблем. В таких организациях необходимо контролировать соблюдение баланса между пользой для организации в целом и ущербом для морального состояния сотрудников.
Местонахождение
Распределение организаций и команд в разных местах может привести к серьезным проблемам с эффективностью применения коммуникативных навыков компании в целом.
Если организация размещена в нескольких местах, очень быстро выявляется, что процессы общения и принятия решений (если таковые вообще наблюдаются) зависят от возможности личного общения с каждым сотрудником. Если в ближайшем будущем планируется масштабирование отдельно расположенных подразделений, следует убедиться в возможности письменного общения с каждым сотрудником.
С точки зрения логистики многочисленные местоположения порождают новые идеи, связанные с ИТ-технологиями и инфраструктурой. Если, например, у одного офиса или подразделения имеется доступ к какому-либо жизненно важному ресурсу (современные принтеры, служба поддержки, более скоростное подключение к Интернету и т. п.), сотрудники других офисов могут почувствовать себя людьми второго сорта. Подобная ситуация негативно сказывается как на моральном климате коллектива, так и на общей производительности. Поэтому следует удостовериться в том, что различная инфраструктура, применяемая в разных подразделениях, не будет мешать нормальной рабочей загрузке и схеме организации работ.
Глобальное понимание культурных аспектов и ожиданий клиентов также задает способы управления локальными службами поддержки. В условиях технологического прогресса и глобальной конкуренции компания должна правильно определить тот момент, когда нужно приложить максимум усилий, чтобы выделиться на фоне других компаний. Для выполнения этой задачи может понадобиться более разнообразное распределение рабочей силы.
Чтобы компания прошла определенный этап своего развития, нужно продумать порядок работы удаленных команд. Если этого не делать, скорость реагирования на изменения внутри организации будет падать. Все это может привести к дублированию усилий и уменьшению степени удовлетворения отдельных сотрудников и команд, поскольку сотрудники будут стремиться наладить контакты.
На данный момент было выполнено немало исследований оптимального размера команд. Небольшим командам обычно не хватает ресурсов для выполнения всех работ, особенно с учетом необходимого количества человеко-часов или знаний. В более крупных командах (9–10 человек), в которых выстраиваются определенные взаимоотношения и осуществляется взаимодействие между сотрудниками, труднее принимать своевременные и наиболее эффективные решения. Большие команды склонны к принятию групповых решений. Индивидуальные предложения зачастую отклоняются в интересах группы, что негативно сказывается на креативных способностях сотрудников и их умении решать проблемы.
Если размер группы ограничить количеством 5–7 человек, то прием на работу новых сотрудников приведет к созданию новых команд. Множество команд порождает большее количество менеджеров и руководителей. Менеджмент подразумевает изменение карьеры, но никак не продвижение вперед. Продвижение внутри организации способствует поддержанию культуры и карьерному росту сотрудников, заинтересованных в этом.
СЛИШКОМ МНОГО БЮРОКРАТИИ?
Одним из наиболее существенных недостатков крупных организаций является засилье бюрократии. Под бюрократией подразумеваются административные системы, которые управляют крупными организациями и характеризуются сложными, неэффективными и негибкими схемами. Эти факторы, особенно негибкость, препятствуют внедрению devops-практик в больших организациях. За последние годы проведено много исследований в области теорий управления, касающихся устранения избыточной бюрократии.
Некоторые организации нашли экстремальные способы борьбы с бюрократией (http://www.nytimes.com/2015/07/19/business/at-zappos-selling-shoes-and-a-vision.html). Например, компания Zappos выбрала для себя модель «холакраси» (holacracy). В рамках этой модели все решения принимаются самоорганизованными командами, а не посредством традиционных управленческих иерархий (https://www.fastcompany.com/3044417/zappos-ceo-tony-hsieh-adopt-holacracy-or-leave). После внедрения «холакраси» перед сотрудниками встал выбор – либо принять изменения, либо получить выходное пособие и уволиться.
Спустя два года после внедрения новой системы 18 % сотрудников компании Zappos были вынуждены покинуть компанию. Несколько компаний с аналогичной бюрократической структурой предложили своим сотрудникам уволиться, но пока неясно, помогло ли это устранить избыточную бюрократию.
Многие сотрудники компании Zappos отметили, что в условиях модели «холакраси» карьерное продвижение стало менее понятным и четким, а отсутствующую власть заменяют люди без управленческого образования или опыта. Отсутствие официальных управленческих структур не означает равноправие. Неравноправие будет существовать всегда, но только в скрытой форме.
Ненужная бюрократическая волокита решается и другими способами, отличными от «холакраси». Как говорил Макс Вебер, бюрократия возникла как следствие функционирования таких ранних административных систем, как монархии и диктатуры. В этих системах амбиции одного человека обеспечивали практически полный контроль над другими людьми, а в системе «сдерживания и противовесов» этих людей практически ничто не сдерживало. Вебер считал бюрократию самым эффективным и рациональным способом организации и управления человеческой деятельностью. Последние исследования о ценностно-ориентированном руководстве выявляют преимущества бюрократии без целого ряда бесполезных управленческих уровней, тормозящих работу.
При изучении жизненного цикла организации воспользуемся следующими основными инструментами:
• внутреннее и внешнее давление;
• рост и спад организаций.
Жизненные циклы организаций отличаются большим разнообразием. Это стало возможным в результате постоянного появления новых бизнес-моделей и способов финансирования, которые предлагают компаниям возможности по изменению, росту и достижению успеха.
Внутреннее давление на фазе подъема принимает форму естественного роста организации. Чтобы выпускать больше продуктов, разрабатывать дополнительные средства, ускорять выполнение работ и обслуживать больше клиентов, нанимают новых сотрудников. Этот процесс может быть как упреждающим (в ожидании будущего роста), так и реактивным. В последнем случае прием на работу новых людей происходит только тогда, когда прежний персонал не справляется с работой.
На фазе спада внутреннее давление может возникать в тех случаях, когда руководство компании понимает, что дела идут не слишком хорошо, и принимает волюнтаристское решение в пользу сокращения или консолидации компании. Степень эффективности этого подхода оказывает большое влияние на перспективы компании в будущем.
Внешнее давление на фазе спада может возникать из-за национальной или глобальной экономики, изменений конкурентных преимуществ либо в силу других причин. В качестве таких причин может выступать приобретение товаров или наборов патентов, выпускаемых компанией, либо разделение организации на части, которые покупаются другими компаниями. И снова, от степени эффективности и скорости реагирования организации на подобные события зависит ее будущее и возможность восстановиться после спада.
Исключение проектов-вампиров и проектов-зомби
На протяжении всего жизненного цикла организации постоянно следует решать, продолжают ли текущие проекты приносить пользу организации. Независимо от стадии жизненного цикла (рост или спад) идентификация проектов-вампиров или проектов-зомби может помочь организации успешно пережить период изменений. Подобные проекты сдерживают рост организации или ускоряют спад. Так или иначе, период изменений в организации – прекрасное время для наведения порядка в доме.
Проекты-зомби – это проекты, которые отнимают время и ресурсы. О таких проектах знают многие, но далеко не каждый решается на закрытие подобных проектов. Это может быть связано с опасениями по поводу своей дальнейшей занятости или негативного влияния закрытия проектов на сотрудников.
Проекты-вампиры – это проекты, которые «высасывают» ресурсы и энергию из других проектов. Подобный проект довольно сложно распознать, а еще труднее от него отказаться, поскольку тем самым вы поставите под угрозу благополучие многих людей. Иногда подобные проекты возникают вследствие технического долга, а порой причина их появления связана с недостатком информации.
Если вы имеете дело с проектами-вампирами или проектами-зомби, начните с разговора со всеми заинтересованными лицами, чтобы получить лучшее представление о ситуации. Обычно это помогает в разрядке первоначальных эмоциональных реакций, которые приводят к затягиванию выполнения проекта. Как правило, люди хотят работать над значимыми проектами. Участие в «мертвых» проектах лишено смысла.
Отказаться от проектов-вампиров и проектов-зомби может быть невероятно сложно, поскольку существуют основные исполнители, которые, по сути, держат такой проект на плаву. Причем они могут даже не подозревать, насколько затратным подобный проект является для организации. Если такому проекту будет угрожать опасность, эти люди воспринимают подобную опасность как личную угрозу. Убедить такого человека отказаться от «драгоценного» проекта, в который он вложил много сил и времени, будет невероятно сложно, но в данном случае игра стоит свеч. Люди, участвующие в каком-либо проекте, – люди увлеченные. Не пытайтесь погасить эту страсть, лучше перенаправьте ее на проекты, выгодные вашей компании.
Влияние циклов выпуска ПО
Чтобы ускорить цикл выпуска ПО, организации отказываются от процессов в стиле водопада, требующих недель и месяцев на внесение изменений, в пользу меньших по масштабу более частых выпусков. Чем быстрее можно внести изменения, тем оперативнее могут реагировать команды на внутреннее и внешнее давление, например быстрее устранять ошибки и возникающие проблемы.
Обратите внимание, что в некоторых областях ускорение лишено особого смысла. Что же касается циклов выпуска ПО, то здесь нужно принимать во внимание следующие соображения.
• Насколько легко создавать выпуск программного обеспечения в целом?
• Насколько критичными являются выпуски ПО?
Несмотря на повсеместную распространенность Интернета в наши дни, далеко не каждая программа становится доступной сразу же после разработки либо имеет постоянно обновляющийся контент. Следует понять и оценить важность и степень сложности проектов и циклов выпуска, чтобы идентифицировать наиболее значимые выпуски. Различные проекты, выполняемые в организации, могут по-разному работать с различными выпусками ПО.
Выпуски мобильных приложений в большинстве случаев предназначены для соответствующих мобильных платформ, таких как Google Play, App Store от Apple или другие. Каждый магазин приложений и платформа имеют собственные правила, ограничения и график, поэтому, как правило, обновление приложений возможно не чаще одного раза в неделю. К тому же слишком частое обновление принесет больше хлопот, чем пользы, особенно если каждое обновление нужно регистрировать в окне приложения.
Встроенное программное обеспечение является наиболее сложным, а его разработка требует больших затрат времени. Например, зачастую весьма трудно обновить ПО, встроенное в автомобили. Это связано с тем, что в случае возникновения каких-либо проблем придется выполнять громоздкую, дорогую и неудобную процедуру возврата автомобиля производителю. Программное обеспечение, встраиваемое в такие устройства, как цифровые телевизоры или микроволновые печи, может быть не столь критичным с точки зрения безопасности, но его обновление может быть также проблематичным. Чем больше устройств могут подключаться к Интернету, чем проще обновлять встроенное ПО. Но в процессе подобного обновления могут возникать проблемы с безопасностью, которые следует учитывать и своевременно устранять.
Помимо всего прочего, следует учитывать потенциальное влияние программного обеспечения на жизнь людей, которые его используют. Если вы будете уделять внимание этому вопросу, то сможете не только быстрее запланировать циклы выпуска ПО, но и уделить внимание другим аспектам работы, таким как окна поддержки либо дежурства, выполняемые в соответствии со степенью важности проектов.
«Падение» сайта социальной сети, возникшее из-за неожиданного сбоя или по причине запланированного технического обслуживания, менее болезненно, чем отключение банковского сайта. Хотя некоторые люди звонят в аварийную службу, если не могут войти в свою учетную запись Facebook!
Если вследствие ошибки пользователь обнаруживает, что у него отсутствуют фолловеры в Twitter, это не столь страшно, как если бы инвестиционный сайт по ошибке сообщил вам о нулевом балансе инвестиционного и пенсионного счета.
И хотя утечка персональной информации не столь заметна, как разглашение информации об идентификационных кодах, номерах кредитных карт и сведений о состоянии здоровья, не следует недооценивать ее серьезность.
На выбор программного обеспечения оказывают влияние скорость осуществления изменений, необходимость в быстром внесении изменений и потенциальные последствия ошибок, которые имеют место при реализации изменений.
Казалось бы, проще работать с автономным программным обеспечением, которое обновляется не столь часто, как веб-приложения, но в этом случае сложнее исправлять возникающие ошибки. Чем больше выполняется масштабирование в отношении заказчиков или предложений продукта, тем больше опасность потенциальных отключений или технических проблем.
Акционерные компании открытого типа оказывают более существенное влияние на биржевую стоимость акций, чем частные фирмы. Поэтому деятельность подобных компаний может находиться под контролем дополнительных норм и ограничений, например закона Сарбейнза – Оксли в США (Sarbanes – Oxley, SOX). Соблюдение норм этого закона требует дополнительного контроля финансовых данных, а также влияет на разработку и создание кода, взаимодействующего с этими данными.
Размеры, сложность или точки перегиба, достигаемые в процессе роста организации, могут по-разному влиять на внедрение devops-практик. Больший размер или более сложная структура организаций, дополнительные ограничения, оказывающие влияние на работу внутри организаций или на сотрудничество с ними, – все это влияет на devops-практики как в корпоративной среде, так и в государственном секторе. В подобных ситуациях бюрократия ограничивает степень сотрудничества и близости между командами.
В правительственных учреждениях также действуют более жесткие законы, которые следует учитывать в случае использования подрывных технологий и практик. Нарушение этих правил в организации может привести к негативным последствиям. К тому же нарушение закона плохо само по себе, независимо от результатов деятельности организации.
К тому же в зависимости от правительственной организации контракты и стимулы могут приводить к изоляции команд разработчиков, эксплуатации и других важных команд. Если команды не заинтересованы в успехе друг друга, придется выполнить довольно сложную работу по налаживанию сотрудничества и совместной работы.
Большое значение имеет оказание помощи правительственным организациям в уменьшении рисков, а корпорациям – в концентрации на получаемых результатах. В следующих историях мы поделимся с вами способами ускорения изменений и снижения издержек налогоплательщиков; обсудим возможные юридические последствия от выпуска плохого ПО и проблемы, вызванные сотрудничеством и кооперацией между командами.
Эффективное сотрудничество в команде возможно при наличии у членов команды понимания цели, взаимозависимости и ответственности за успех. В этом разделе будут рассмотрены различные факторы, которые помогут командам быть лучшими на протяжении всего жизненного цикла организации.
Лидеры, которые работают наиболее эффективным образом, как мне кажется, никогда не говорят «я». Они не думают о себе. Они говорят «мы»; они думают в терминах «команды». Они понимают суть своей работы по выполнению командных функций. Они принимают на себя ответственность и не избегают ее, но слово «мы» вызывает доверие. Это то, что создает доверие, то, что позволяет выполнить задание.
– Питер Ф. Друкер
Организационные структуры, ограничивающие людей узкими рамками исполняемых ролей или блокирующие любое проявление инициативы, могут привести к тому, что люди начинают оптимизировать работу для себя. Выбор процессов и инструментов, которые оптимальны для отдельных сотрудников, могут способствовать получению краткосрочной прибыли, которая не будет устойчивой на уровне команды или организации в целом.
В больших организациях упомянутые выше факторы иногда распределены по определенным ролям, даже если отдельные сотрудники владеют пересекающимися навыками и интересами. Таким образом уходит время, нужное для приобретения необходимых знаний. Это может привести к разладу. Хуже всего, что начинает формироваться так называемая лестница престижа, когда одна роль воспринимается как более важная или нужная, чем другая. В результате блокируется фактическая передача информации.
А теперь рассмотрим распространение информации в крупных организациях в целях отслеживания принятых решений.
Рост команд: масштабирование с помощью найма
Один из ключевых элементов масштабирования для команд заключается в росте этих команд. Организациям приходится рассматривать вопросы найма персонала на протяжении всего жизненного цикла. В этом разделе будут рассмотрены различные соображения, связанные с эффективным ростом команд в devops-среде.
Важно отметить, что в то время как в этом разделе будут рассмотрены аспекты найма и удержания команд, которые являются специфическими для devops-сред, не рассматривайте его в качестве руководства по найму какого-то мифического «10-кратного devops-инженера». Как отмечалось в главе 13, devops не всегда является названием определенной работы.
Помимо найма людей, которые знают об автоматизации инфраструктуры, облачном хранилище или контейнерах, в организациях и командах следует сосредоточиваться на оценке своих конкретных потребностей, а также на решении межличностных и культурных аспектов найма. Все это является ключевым для создания и поддержания devops-культуры.
Одна из проблем, которая часто возникает в процессе роста команд, – стоимость обучения сотрудников. Эта проблема рассматривается в разрезе повышения квалификации новичков или выпускников колледжа до уровня, позволяющего им вносить вклад в общее дело независимо друг от друга. Также рассматривается предоставление возможностей непрерывного роста и поддержки для штатных сотрудников. Если не тратить время и деньги на создание возможностей по обучению и развитию, низкоквалифицированным членам команды придется делать только тяжелую работу. Им придется выполнять только те задачи, на которые нет ни времени, ни желания у других членов команды. Также они не смогут подниматься по карьерной лестнице.
Если в организациях такие сферы, как ИТ, рассматриваются просто как центры затрат, а не области создания ценностей, вряд ли будет выделяться бюджет для найма сотрудников в ИТ-отдел. Руководство этих организаций заявляет, что вместо найма людей на работу нужно просто автоматизировать соответствующие области. В этом высказывании присутствует лишь доля истины, поскольку в ближайшее время автоматизация не в состоянии полностью заменить человека. Далеко не всю работу можно или нужно автоматизировать, и зачастую более сложная автоматизация приводит к росту масштаба вмешательства человека в случае возникновения каких-либо проблем. Как упоминалось в части IV, ни одна из методик автоматизации либо автоматизированных технологий не может заменить человеческие компоненты разработки. Также не следует рассматривать автоматизацию в качестве еще одного способа уменьшения затрат.
Во многих организациях избегают приема на работу большого числа новичков, поскольку беспокоятся, что пройдет слишком много времени, прежде чем они начнут выполнять «реальную» работу. Также опасения связаны с тем, что более опытным членам команды придется тратить слишком много времени на обучение и наставничество новичков. Но нежелание инвестировать средства в обучение и рост новичков, вероятно, приведет к формированию более однородной команды, а также к созданию условий, менее способствующих росту и развитию в целом. Также не забывайте о законе Брукса: «Если проект не укладывается в сроки, то привлечение дополнительной рабочей силы задержит его еще больше» (Adding manpower to a late software project makes it later). Этот закон сформулировал инженер-программист Фред Брукс в своей книге «Мифический человеко-месяц» (Mythical Man-Month). Эта идея, которую сам Брукс признает упрощением[55], аккуратно подводит нас к мысли о том, что затраты и накладные расходы, связанные с наймом дополнительного персонала, следует рассматривать на ранних стадиях проекта.
Новым членам команды понадобится дополнительное время, чтобы «влиться» в коллектив. Даже самому опытному либо знающему инженеру потребуется некоторое время, чтобы привыкнуть к новому проекту и к новой кодовой базе. Также опытным членам команды понадобится потратить рабочее время, чтобы помочь новичкам выйти на рабочий режим. Это время будет потрачено в ущерб основным обязанностям. По мере роста размера команды быстро возрастают накладные расходы на общение между членами этой команды. Далеко не каждая задача может быть разделена между различными людьми, которые будут одновременно работать над ней. Учитывайте эти ограничения, когда соберетесь привлечь дополнительные человеческие ресурсы на выполнение существующего проекта. Также рассмотрите вопросы о необходимости и полезности привлечения дополнительного персонала.
Работа с подрядчиками
Обычно в крупных организациях часть работы отдают на субподряд (так называемый аутсорсинг). Исторически сложилось так, что организации, стремящиеся сократить расходы, отдают на аутсорсинг такие затратные области, как ИТ или техобслуживание.
Следует иметь в виду, что даже если вы сэкономите по какой-либо статье расходов, эта экономия может обернуться ростом затрат, связанных с ухудшением сотрудничества или уменьшением степени близости между отдельными сотрудниками и командами. Если некоторые команды или отделы работают на условиях аутсорсинга, а другие выполняют работу в качестве штатных сотрудников, это может привести к конфликту в организации (прямому или косвенному).
Аутсорсинг приводит к формированию функциональных бункеров
Одна из наибольших проблем, связанных с наличием бункеров, заключается в недостатке общения и сотрудничества между ними. Люди, находящиеся в бункерах, склонны накапливать знания и информацию, а также перекладывать ответственность за промахи на другие группы. Если участники одной группы работают на условиях аутсорсинга, они могут испытывать нехватку информации, относящейся к разным аспектам работы организации. Поэтому следует поддерживать равноправное общение как со штатными, так и с нештатными сотрудниками, работающими на условиях аутсорсинга. Чтобы обеспечить паритетный доступ к информации для всех, используйте общедоступные средства общения, например групповой чат или почтовую рассылку, охватывающую всех сотрудников. Также поощряйте регулярное обновление статуса, чтобы узнать о факте получения информации.
Команды, работающие на внешнем подряде, имеют более «низкий» статус
В условиях социальной иерархии на рабочем месте, формальной либо неформальной, команды, работающие на субподряде, часто ощущают более низкий статус, чем штатные команды. Чтобы преодолеть подобную отчужденность, привлекайте команды-субподрядчики для участия в праздниках организации и прочих групповых мероприятиях. Люди, которые получают признание и ощущают себя частью группы, более мотивированы в работе. На уровне отдельных сотрудников и команд отслеживайте непочтительное отношение к субподрядчикам и осуждайте подобное поведение.
Конфликты ответственности, возникающие между штатными и аутсорсинговыми командами
Зачастую предметом спора могут быть обязанности команд. Штатные команды могут принимать ответственность на себя, оставляя субподрядчикам черновую или утомительную работу. Они могут также спихивать ответственность и зачастую подвергать обвинениям команды, работающие на субподряд. Благодаря четко определенным обязанностям, уточняемым на регулярной основе, облегчается устранение путаницы либо напряжения (при условии регулярной связи). Также осуществляется поиск способов распределения обязанностей либо проектов между штатными сотрудниками и субподрядчиками, если это поможет сформировать среду совместной работы.
Если в какой-либо компании аутсорсинг рассматривается лишь в качестве средства уменьшения затрат, отдельные сотрудники и команды не смогут изменить эту политику. Но благодаря привлечению внимания к этим областям они смогут повысить степень эффективности команд, работающих на субподряде, и наладить сотрудничество с ними.
Людям присущи как достоинства, так и недостатки. При общении с другими людьми сильные и слабые стороны могут проявляться как сильнее, так и слабее. В процессе оценки личности важно рассматривать сильные и слабые стороны в контексте команды. Иногда один человек не подходит для какой-либо команды, но для организации в целом он является неплохой кандидатурой.
Существует любопытная динамика, которую нужно сбалансировать. Суть этой динамики заключается в том, что нужно найти разумный компромисс между ростом и развитием организации и поддержанием равновесия и комфорта для людей, с которыми вы каждый день работаете. По мере того как организация переживает взлеты и падения, возникает необходимость в изменениях. В маленьких стартапах все друг друга знают и могут поддерживать близкие отношения. По мере роста организации и увеличения численности персонала до 50–100 человек и более связи между людьми, работающими в такой организации, ослабевают.
Удержание сотрудников
В компаниях, относящихся к конкурентной технической отрасли, все большее значение для работодателей приобретает удержание сотрудников на рабочих местах. Благодаря этому предотвращается падение производительности и ухудшение морального климата. Зачастую увольнение сотрудников приводит к росту нагрузки для оставшихся, а также является признаком больших проблем, появившихся в организации. Если сотрудники компании увольняются из-за низкого уровня оплаты труда или по причине несогласия с курсом компании, вряд ли это прибавит оптимизма тем, кто пока остается на рабочем месте.
Даже если сотрудник собирается уволиться, приложите все силы, чтобы удержать его. Существует множество способов удержания сотрудников, которые будут рассмотрены в этом разделе. А если учесть, что многие организации приложили немало усилий, чтобы принять сотрудника в штат или на условиях аутсорсинга, вряд ли они захотят легко расстаться с ним.
Компенсации
Деньги – это далеко не все, что нам нужно в этой жизни, и поэтому многие выбирают здоровую рабочую среду и компании, которые могут создать такую среду. Но даже в этом случае люди хотят получать конкурентоспособную зарплату. Согласно результатам недавно проведенных исследований, сотрудники с опытом работы в компании более 2 лет за 10 лет получат на 50 % меньше, чем если бы они уволились раньше[56]. Бытует мнение, особенно распространенное среди линейных сотрудников, что лучший способ получить существенную прибавку к жалованью – поменять работу. Естественно, нужно договориться о более высокой стартовой зарплате на новом месте. Сотрудники, которые длительное время работают в компании, ежегодно получают прибавку к жалованью, равную 3 % (в среднем). Но если учесть ежегодную инфляцию, равную 2 % (естественно, в США), то реальный ежегодный рост зарплаты составляет всего лишь 1 %. В случае же перехода в новую компанию можно рассчитывать на рост зарплаты от 10 до 30 %. Даже если вы очень любите свою родную компанию, вряд ли стоит игнорировать эти цифры.
Чтобы бороться с несправедливо заниженной зарплатой, изначально добейтесь конкурентосопособной зарплаты. Работодатели часто пытаются предложить минимальную стартовую зарплату, чтобы сэкономить бюджет. Этому также способствуют представители афроамериканской общины, которые согласны работать за меньшую зарплату, чем белые мужчины. Они согласны получать средние зарплаты и льготы, значительно превышающие выплаты, которые они получали на прежнем рабочем месте. Способствовать удержанию сотрудников может атмосфера прозрачности, в которой проходят переговоры о размере зарплаты, о диапазоне «плавающей» зарплаты и о других денежных выплатах. Люди должны получать конкурентную компенсацию и ощущать, что с ними обращаются справедливо.
Ключевую роль в удержании сотрудников на рабочем месте может сыграть открытый процесс повышения в должности, реализованный в организации. Этот процесс должен быть четко определен и задокументирован. Если же процесс повышения в должности осуществляется в ответ на запросы людей, он будет находиться под влиянием бессознательных предупреждений в большей степени, чем процесс, происходящий на регулярной основе в соответствии с четко определенными параметрами. Уменьшению степени предубеждений также способствует «плавающая» зарплата, которая в меньшей степени зависит от субъективного суждения менеджера. Убедитесь в том, что менеджеры и сотрудники знакомы с процессом повышения зарплаты и начисления ежегодных бонусов, а также знают, к кому следует обращаться в случае возникновения каких-либо вопросов.
Преимущества, не связанные с денежными доходами
Получать конкурентную и справедливую зарплату весьма важно, особенно в том случае, когда человек живет «от зарплаты до зарплаты». Если же он живет в соответствии с высокими стандартами жизни, имеет возможность откладывать на черный день с каждой зарплаты и обладает «финансовой подушкой», позволяющей пережить инфляционные скачки цен, то на первый план выходят разные способы нематериальной компенсации. Эти нематериальные стимулы неплохо бы взять на вооружение молодым или небольшим фирмам, которые не могут платить такие же зарплаты, как более прибыльные и лучше финансируемые компании. Благодаря системе льгот и нематериальных поощрений можно привлечь и удерживать талантливых сотрудников.
Когда идет речь о привилегиях, мы не подразумеваем такие вещи, как холодильники для пива и столы для пинг-понга, установленные в офисе. Подобные «привилегии» формируют расслабленную атмосферу, которая больше напоминает общежитие, а не офис. К тому же эта атмосфера может стать сдерживающим фактором для категорий людей, которые чувствуют себя неуютно в подобной среде, – для женщин, трезвенников либо для тех, кто не привык играть в настольные игры на рабочем месте. В качестве привилегии может также рассматриваться питание, особенно диетическое. Но будьте осторожны, предлагая сотрудникам ранние завтраки и поздние ужины. Вряд ли их вдохновит перспектива приходить на работу в восемь утра и уходить в восемь вечера только ради того, чтобы воспользоваться таким предложением.
Нематериальные преимущества могут принимать следующие формы.
Возможности для удаленной работы
Возможность работы в удаленном режиме поистине бесценна. Эта возможность пригодится независимо от того, хотите вы привлечь к работе более широкий круг людей или удержать в компании сотрудников, которые в силу каких-либо причин не могут работать в офисе.
Возможности по обучению
Можно приглашать инструкторов или отправлять сотрудников на конференции и учебные семинары. Это позволит сотрудникам получить новые или усовершенствовать имеющиеся навыки. Можно также отправлять сотрудников на различные курсы или предоставить средства на обучение. Благодаря этому сотрудники получат доступ к непрерывному образованию в областях, которые имеют отношение к исполняемым ими обязанностям. Поскольку личностный и профессиональный рост имеет большое значение для людей, обеспечьте им соответствующие возможности, а также предоставьте время для обучения.
Гибкий рабочий график
Если от сотрудников не требуется присутствие на рабочем месте в строго определенные часы и дни, предоставьте им возможность работать по гибкому графику. Возможность работать по гибкому графику, как и удаленная работа, свидетельствует о наличии доверия к сотрудникам и командам, а также об уважении к личной жизни и обязанностям, исполняемым вне рабочего места. Благодаря гибкому рабочему графику сотрудники смогут уделять больше времени своим хобби, им не придется добираться в офис в час пик, они смогут выполнять семейные и домашние обязанности. К тому же они смогут выполнять работу в удобное для себя и других членов команды время.
Соблюдение баланса между жизнью и работой
Непрерывная работа в течение 50–80 часов в неделю оказывает негативное влияние на производительность труда в целом. Поэтому предоставьте сотрудникам возможность приходить на работу и уходить с работы в приемлемое время. Не тратьте драгоценное рабочее время на постоянную проверку почты и не работайте дома. Выработайте у сотрудников привычку проверять почту в одно и то же время. Например, отправляйте им письма в 9 утра или в конце рабочего дня. Если сотрудники выполняют работу на выезде, предоставьте им время на дорогу.
Оплачиваемый отпуск
Убедитесь в том, что в компании предоставляются отпуска и что сотрудники их используют. В процессе предоставления отпуска нужно учитывать действующий закон. Например, в некоторых штатах США действует закон, в соответствии с которым из десяти дней краткосрочного отпуска восемь должны предоставляться на новогодних и рождественских праздниках. Оставшиеся два дня могут предоставляться на протяжении остальных пятидесяти недель года. Вряд ли подобная схема предоставления отпуска может расцениваться как идеальная, особенно в том случае, когда отпускник не празднует Рождество. Если же компания проводит политику предоставления неограниченных отпусков, это также может привести к проблемам. Эти проблемы рассматриваются в статье Матиаса Майера (Mathias Meyer), занимающего должность генерального директора компании TravisCI (http://www.paperplanes.de/2014/12/10/from-open-to-minimum-vacation-policy.html). Эта компания занимается вопросами непрерывной интеграции.
Пенсионная программа
Как минимум следует предоставить сотрудникам возможность участвовать в пенсионной программе, такой как IRA или 401(k). Также рассмотрите возможность получения определенного процента сотрудниками, участвующими в пенсионной программе. Обычно работодатели не склонны к проявлению подобной благотворительности, но в случае ее наличия обеспечивается ценное конкурентное преимущество. Если же вы не можете гарантировать получение определенных процентных выплат, пригласите финансового консультанта, который несколько раз в год будет предоставлять сотрудникам бесплатные консультации.
Медицинское страхование
В то время как некоторые формы медицинского страхования являются стандартными для большинства штатных сотрудников, страховые возмещения могут варьироваться в очень широких пределах. Дополнительные конкурентные преимущества обеспечиваются благодаря разнообразию форм медицинского страхования, которые могут включать страхование иждивенцев, предоставление бонусов гражданским супругам и страхование трансгендеров. Гораздо лучше, если организация оплатит все ежемесячные расходы на страховку, чем будет компенсировать платежные чеки, предоставляемые сотрудниками. Также может предоставляться доступ к консьерж-службе медицинского страхования, которая уполномочена отвечать на вопросы, относящиеся к медицине и страхованию.
Повседневный дресс-код
Работодатели, практикующие либеральную политику в отношении офисного дресс-кода, позволяют сокращать авансовые и долгосрочные расходы сотрудников без каких-либо дополнительных инвестиций со стороны организации. Хотя деловой костюм выглядит более профессионально, его можно запачкать или даже порвать, если выполнять работу на свежем воздухе или заниматься физическим трудом. А для некоторых людей свобода выбора одежды определяет степень личной свободы. В среде с жесткой иерархией наличие более свободного дресс-кода является дополнительным фактором внедрения изменений в организации. Если сотрудники, занимающие разные должности, одеваются более свободно, им будет проще общаться друг с другом. В результате укрепляются взаимоотношения между сотрудниками организации.
Транспортные льготы
Транспортные льготы могут включать предоплаченные проездные билеты, служебный автобус, бесплатные велопарковки и даже парковочные места. Благодаря выработке механизмов, уменьшающих транспортные заторы в районе офиса и «перенаселенность» парковочных мест, снижается степень напряженности в отношениях между сотрудниками, а также уменьшаются ежедневные транспортные расходы. В некоторых странах, например в США, действуют законы, в соответствии с которыми транспортные льготы до определенного предела не облагаются налогами. Под действие этого закона попадают такие транспортные услуги, как комбинированные билеты, ванпулинг и паркинг. Проверьте наличие подобных налоговых льгот в вашей стране.
Поддержка равноправия полов
Отказ от пресловутых табличек «М» и «Ж», которые традиционно закрепляются на дверях санузлов, позволяет создать более комфортную среду для людей, не придерживающихся традиционных гендерных взглядов. Также это позволит улучшить санитарные условия для людей с особыми потребностями. Учтите, что в некоторых странах действуют законы, обязывающие выделение отдельных санузлов для мужчин и женщин. Поэтому прежде, чем принять решение о снятии табличек, проверьте наличие соответствующих законов. По мере возможности организовывайте гендерно нейтральные санузлы (а также раздевалки и уборные, если таковые имеются в вашей организации), чтобы создавать комфортные и безопасные условия для максимального количества сотрудников.
Наличие детских дошкольных учреждений
Наличие детских дошкольных учреждений на рабочем месте позволит повысить степень удовлетворенности работой и привлечь сотрудников, имеющих маленьких детей. Благодаря этому уменьшается количество прогулов, связанных с необходимостью ухода за детьми, а бездетным сотрудникам не придется делать работу за сотрудников, вынужденных ухаживать за детьми.
В общем случае сотрудники не должны чувствовать себя обделенными при начислении денежных и нематериальных льгот. Если сотрудники будут чувствовать, что с ними обращаются справедливо, заботятся о них и работают над устранением личных проблем, они будут чувствовать себя счастливыми.
Возможности роста
Помимо недостаточной зарплаты и нарушения баланса между жизнью и работой, одна из распространенных причин, в силу которых люди увольняются с работы, – отсутствие возможностей для роста[57]. Вряд ли кто-то будет мечтать о работе, которая не позволит делать карьеру. Люди хотят развивать свои навыки и демонстрировать рост окружающим, что позволит им стать более независимыми, иметь больше возможностей для выбора проектов. Они также хотят, чтобы им доверяли крупные проекты и предоставляли возможности для проявления лидерских качеств.
Имейте в виду, что лидерство не всегда эквивалентно менеджменту. В некоторых компаниях четко определены уровни работы только для компонента управления. Именно при выполнении функций менеджера сотрудники могут расти, но далеко не каждый технический специалист хочет заниматься менеджментом. Лидерство для этих людей может означать участие в ведущих проектах и расширение степени участия в делах организации. Убедитесь в том, что в вашей организации могут расти не только менеджеры. В идеале в организации должен существовать технический компонент, четко определяющий уровни индивидуального роста сотрудников, не выполняющих обязанности менеджера.
Четко определенный процесс роста и продвижения по службе является критически важным для руководства и отдельного сотрудника. Убедитесь в том, что сотрудники имеют доступ к определениям уровней работы, которые являются достаточно подробными, чтобы они понимали, что нужно сделать для перехода с одного уровня на другой. Процесс карьерного роста должен быть четко определен и доступен для всех. «Процесс», который состоит только из метафорического похлопывания по плечу, может невероятно расстраивать сотрудников, не имеющих возможности для выбора. Подобный «процесс» может также предоставлять множество возможностей для неосознанных отклонений. Любой сотрудник достоин карьерного роста, а не только тот, который дружит со своим боссом или техническим директором.
В соответствии с вышеизложенным удостоверьтесь в том, что сотрудники имеют возможность исследовать разные аспекты деятельности компании. Если после нескольких лет разработчик ПО, например, захочет изучить особенности деятельности эксплуатационного отдела или отдела обеспечения безопасности, он скорее перейдет в другую компанию (если «родная» компания не создаст соответствующие условия). В то время как менеджеры обычно не должны переманивать сотрудников других команд, они должны быть открыты для изменения интересов и целей и пытаться работать с ними в любой ситуации. Некоторые компании выполняют действия, которые они называют «ротации опытных сотрудников». Суть этого действия заключается в том, что достаточно опытные сотрудники на несколько недель переводятся в другую команду. Если вы хотите удержать людей в компании, предоставьте им возможности карьерного роста независимо от занимаемой должности и выполняемой работы.
Рабочая нагрузка
Как правило, люди ищут рабочую нагрузку, которая была бы сложной, но выполнимой. В продолжение нашей дискуссии о возможностях роста отметим, что помимо сложной работы, которая позволит людям испытать себя и развить собственные навыки, важно наличие чувства удовлетворенности проделанной работой. В части II были рассмотрены несколько различных рабочих, или коллективных, стилей, включая стили работы стартеров и финишеров, пуристов и прагматиков. Если регулярно выполняемая людьми работа не соответствует их ожиданиям, она будет восприниматься обременительной. Если же сотрудники не болеют душой за работу, они будут чувствовать себя несчастливыми, а производительность труда резко упадет.
Слишком большая рабочая нагрузка приводит к появлению проблем. В этом случае у сотрудников может возникать ощущение, что компания или менеджер предъявляют к ним слишком высокие требования, но при этом не предоставляют достаточно времени, поддержки и ресурсов, необходимых для оправдания надежд. Также может создаваться впечатление, что менеджер оторвался от реальности и просто не понимает, на что способны сотрудники. Все эти признаки могут указывать на то, что команда взяла на себя слишком много обязанностей либо имеет место неравномерное распределение работы, когда одни сотрудники бездельничают, а другие просто перегружены работой. Как бы там ни было, но долговременная перегрузка персонала может привести к весьма негативным последствиям (в отличие от кратковременной штурмовщины).
Сотрудники, перегруженные работой, в конце концов могут уволиться и найти более легкую работу в другой компании. Возможно, еще хуже, если они останутся работать в компании, но будут страдать от выгорания. Поэтому менеджеры просто обязаны регулярно проверять команду в целом и отдельных сотрудников, чтобы выявить чрезмерную загруженность, которую они взяли на себя. Также убедитесь в том, что по мере необходимости сотрудники берут отпуска. Если же команда или сотрудник завершили период дополнительной работы, например, ближе к концу проекта, поощрите их хотя бы раз в год взять передышку или отпуск (либо просто отдохнуть дома), чтобы избежать выгорания.
ВЫГОРАНИЕ
Термин выгорание обозначает долговременное истощение и отсутствие какого-либо интереса к работе и к любой деятельности вне работы. Симптомы выгорания весьма напоминают клинические симптомы депрессии, более того, согласно результатам недавних исследований, выгорание – это одна из форм депрессии. Страдающие от выгорания начинают отдаляться от других людей, меньше обращают внимание на свои личные потребности. Им присущи бессонница, а также ощущения безразличия, беспомощности и безнадежности. Чаще всего к выгоранию приводит длительный стресс и переутомление, которые весьма распространены в высокотехнологичной индустрии. Это особенно справедливо для стартапов Силиконовой долины, в которых идеализируются образы «героического» хакера и «звездного» разработчика. Не забывайте о том, что психическое здоровье важно не менее (а может, и более) физического здоровья, поэтому профилактика выгорания должна стать приоритетом для каждой команды и компании.
Во многих высокотехнологичных компаниях предусмотрены вакансии для специалистов по вызову. В обязанности этих людей входит прием вызовов, поступающих по телефону или пейджеру, и реагирование на инциденты, которые происходят во внерабочее время. Очень важно не создавать чрезмерных нагрузок для этих людей. По возможности распределите обязанности специалиста по вызову, как минимум, среди двух человек. Если эти обязанности выполняет один человек, который работает днем и ночью, все это может закончиться выгоранием. Ни один человек не сможет обойтись без отдыха на протяжении длительного времени. В идеале обязанности специалиста по вызову должны выполняться всеми сотрудниками компании, по очереди. Это даст возможность передышки каждому из них в промежутках между сменами.
Если сотрудники периодически выполняют обязанности специалистов по вызову, предусмотрите возможность компенсации за дополнительную выполняемую работу. Некоторые компании увеличивают зарплату сотрудникам, выполняющим обязанности специалистов по вызову, другие доплачивают за каждый вызов или инцидент, случившийся в нерабочее время, третьи предлагают дополнительный день отпуска за обслуживание каждого вызова. Если выполнение обязанностей по вызову изначально является частью рабочих обязанностей, четко пропишите объем выполняемой работы. Благодаря этому сотрудники изначально будут владеть необходимой информацией и смогут договориться с руководством о размере компенсации. Если же эти обязанности появились позже, дайте сотруднику возможность обсудить подробности с менеджером и договориться с ним о сумме возможной компенсации.
Корпоративная культура и «соответствие корпоративной культуре»
Термины корпоративная культура и соответствие корпоративной культуре довольно расплывчаты и не могут быть точно сформулированы. Зачастую эти термины используются людьми, принимающими решения, в процессе найма персонала. Как правило, эти люди стремятся (осознанно или нет) сохранить определенную однородность команды. Поэтому они стремятся принимать на работу тех, кто ходил вместе с ними в одну и ту же школу, занимался тем же видом спорта или является членом того же сообщества.
Не стоит злоупотреблять идеями о соответствии корпоративной культуре, поскольку они дают весьма поверхностное представление о культуре. Основное предназначение подобных идей – формирование атмосферы исключительности в компании.
Поскольку большая часть devops включает культуру, описание совместной работы и взаимоотношений между людьми, важно определять эти термины в продуктивной, а не в эксклюзивной манере. Культура – это совокупность идей, обычаев и социального поведения людей или общества. И если погрузиться глубже в суть этого определения, то можно увидеть, как оно может стимулировать людей остаться или уволиться из компании.
Идеи могут иметь разное значение в контексте компании или отдельной команды. В более широком смысле идея для компании оценивается в соответствии с предлагаемой стоимостью. Например, что продается или какой выбран способ для зарабатывания денег. Для некоторых компаний стоимость фактически эквивалентна рекламе или данным, продаваемым рекламодателям. Если сотрудник компании ощущает, что корпоративные ценности вступают в конфликт с его личными ценностями, либо ему просто неинтересна область деятельности компании, то, независимо от успешности компании, рано или поздно он уволится.
Идеи также могут интерпретироваться в соответствии с их ценностью для данной организации или команды. Приведем типичный пример идеи, которая господствовала во многих организациях до массового внедрения devops-практики. Суть этой идеи заключалась в недооценке важности работы в ИТ-сфере и в эксплуатационной сфере. В рамках этой идеи ИТ-сфера рассматривалась как бесполезное и затратное дело. Поэтому проводилась политика минимизации инвестиций в ИТ.
Еще один пример подобной идеи – недооценка сотрудников команды руководителем. Если несколько членов команды являются близкими друзьями руководителя команды, он будет постоянно с ними советоваться. В результате остальные члены команды почувствуют себя обделенными, а вносимый ими вклад в общее дело окажется недооцененным.
Любой человек, чьи идеи отличаются от идей большинства, ощущает «особое отношение» со стороны других членов команды. Ранее уже рассматривались соображения по выбору средств, способствующих увеличению степени разнообразия команды либо организации. Обратите внимание, что крайне важно учитывать влияние разнообразия на людей, которые не относятся к категории «нормы». В роли таких людей может выступать одинокая женщина в компании мужчин или африканец, работающий в компании людей белой расы. Если все разногласия в команде принято решать в соответствии с принципом «кто кого перекричит», «нестандартные» люди будут чувствовать, что их не слышат и не ценят.
Обычаи – это традиционные или широко распространенные способы поведения, бесед или выполнения каких-либо действий. Многие аспекты рабочей обстановки могут быть расценены как обычай.
Например:
• порядок распределения работы и ответственные за этот процесс;
• каким образом члены команды либо сотрудники, находящиеся на одном и том же уровне внутри компании, общаются между собой;
• каким образом менеджеры распространяют новости с помощью отчетов;
• когда люди приходят на работу и уходят домой;
• какие технические процессы задействованы в рамках выполнения работы;
• каким образом производятся продвижения, повышения по службе и начисляются бонусы.
Одна из проблем, связанных с обычаями, заключается в том, что их бывает трудно распознать в качестве способа выполнения каких-либо действий. Но этот способ вряд ли будет единственным, поскольку как только люди привыкнут ими пользоваться, они просто перестанут их замечать. Зачастую пара свежих глаз и нестандартный взгляд обеспечат лучший способ решения проблем.
Важно понять, что утверждение «мы всегда делали это таким образом» не является серьезным обоснованием для использования прежних методов. Отказ от изменений или даже от рассмотрения новых идей приведет к стагнации команд и компаний, а также к перехвату этих идей конкурентами. Человеческой натуре присуща боязнь перемен и ксенофобия. Мы должны распознать эту тенденцию и активно ей противодействовать. В результате мы сможем слышать, рассматривать и выбирать лучшие идеи, а не те, с которыми нам комфортно.
Корпоративные обычаи, связанные с повышением по службе, продвижением и бонусами, заслуживают особого внимания в случае, когда вы пытаетесь повысить степень разнообразия. Следует еще раз подчеркнуть, что даже если вы что-то не хотите делать либо не замечаете каких-либо нарушений, это не означает отсутствия таковых. Особенно часто эти нарушения появляются в тех случаях, когда решения принимает сам менеджер либо когда каким-либо образом награждается группа людей, исполняющих определенную роль или занимающих ту или иную должность.
Последний крупный компонент культуры – это совокупность социальных форм поведения, охватывающая широкий набор факторов, которые влияют на взаимодействие между людьми. Уделяйте внимание стилю общения людей между собой. Поощряйте общение более «старших» сотрудников с теми, кто занимает более низкие должности. Относятся ли в вашей компании с должным вниманием ко всем высказанным идеям, независимо от того, кому они принадлежат. Перебивают ли друг друга участники собраний или вежливо ждут завершения выступления? Если ответы на эти вопросы положительны, то относятся ли они только к рядовым сотрудникам или включают менеджмент? Каким образом устраняются разногласия, возникающие между людьми? Путем спокойного обсуждения, на основе консенсуса либо методом перекрикивания друг друга? Каким образом принимаются решения?
Социальные формы поведения также включают те разновидности, о которых мы чаще всего думаем, когда слышим слово социальный. Каким образом команды узнают друг друга или связываются между собой? Более близкое знакомство с коллегами обеспечивает массу преимуществ, включая большую эмпатию и более эффективное общение. При налаживании отношений между членами команды используются разные способы. Более крупные корпорации могут организовать для своих сотрудников круиз на теплоходе, тогда как стартапы обычно ограничиваются походом в ближайший бар. Наиболее эффективный способ налаживания отношений заключается в использовании общих склонностей и привязанностей. Также желательно добиться вклада каждого сотрудника в общее дело и попытаться найти что-то, что будет приемлемым для всех. Но в процессе решения этих вопросов имейте в виду, что далеко не все люди склонны к публичному высказыванию мнения. Те, кто боролся с алкогольной зависимостью, вряд ли захотят рассказать коллегам о причинах, в силу которых они не хотят посещать вечеринку в баре, оплаченную руководством. Поэтому предоставьте людям возможность высказать свое мнение в частной и безопасной обстановке.
Обращайте внимание на способы общения между собой сотрудников в офисе. Эти способы ярко демонстрируют присущие этим людям формы социального поведения. Например, в некоторых компаниях формируется группа людей, которые ходят на ланч или кофе вместе с менеджером команды. Остальные же члены команды не удостаиваются подобной чести. Чаще всего это наблюдается в стартапах, которые обычно основывают люди, хорошо знающие друг друга. Хотя подобные дружеские отношения могут сформироваться в любой группе людей. Как бы там ни было, избегайте демонстративного фаворитизма и старайтесь одинаково относиться ко всем коллегам.
Во многих офисах, особенно небольших, планируются общие мероприятия, которые часто происходят в нерабочее время или во время перерывов. На таких мероприятиях сотрудники могут попивать прохладительные напитки или холодное пиво (в летнюю пору, разумеется). В офисах также могут устанавливаться столы для пинг-понга или настольного футбола, которые могут использоваться в конце рабочего дня или для снятия напряжения в перерывах между совещаниями. В коллективах, состоящих из молодых сотрудников мужского пола, все более популярными становятся игрушки, такие как радиоуправляемые вертолеты или игрушечное оружие. Это не так уж плохо, но будет способствовать изоляции тех, кому подобные игрушки не нравятся.
Имейте в виду, что люди не любят выступать против явлений, описываемых словом «развлечение», дабы не прослыть мрачными субъектами, озабоченными только работой. Довольно сложно выступать против того, что издавна составляло часть корпоративной культуры, особенно если противники этой части культуры представляют меньшинство команды. Убедитесь в том, что люди могут открыто говорить о своих мыслях и взглядах. Также уделяйте внимание видам деятельности, приемлемым для всех сотрудников, формируйте культуру, частью которой будет ощущать себя каждый сотрудник.
В общем случае удержание сотрудников сводится к соблюдению условий пакта, заключенного между сотрудниками и организацией. Убедитесь в наличии взаимопонимания, в удовлетворении общих целей и потребностей. Обеспечьте непрерывное развитие отношений в организации в соответствии с ранее рассмотренным devops-пактом. Ожидания, связанные с корпоративной культурой, должны быть четко определены везде, где это возможно, в процессе поиска, опроса и удержания сотрудников. После завершения рассмотрения теории попробуем применить все это на практике.
При составлении примеров для этой главы мы общались с людьми, которые в той или иной степени вовлечены в процесс найма персонала. Первый наш собеседник – директор по внедрению devops-практик в компании, работающей на онлайн-рынке с 2007 года. Второй наш собеседник – Федра Маршалл (Phaedra Marshall), директор по технологиям компании Critical Mass. Эта глобальная компания, специализирующаяся в области цифрового маркетинга и дизайна, была основана в 1996 году в Калгари (Альберта). Эти люди тесно связаны с процессом принятия решений в технологических компаниях, правда, подходы к принятию этих решений были различными. Мы рассмотрим рассуждения, находящиеся в основе этих разных подходов, а также узнаем, почему каждый из них имеет смысл с учетом набора конкретных обстоятельств.
Формирование и рост эксплуатационных команд
Директор по внедрению devops-практик изначально начинал свою карьеру в качестве разработчика, а позднее присоединился к крупной компании электронной коммерции. Эта компания занимается разработкой программного обеспечения для интернет-магазинов и POS-терминалов. Позднее он создал «с нуля» эксплуатационную команду в компании, специализирующейся на публикациях и цифровых медиа. В этой компании он осуществляет общий надзор над производственной деятельностью и корпоративным ИТ-отделом, а также стимулирует рост обоих отделов.
В связи с тем что в компании была вакансия на должность директора, а также требовалось сформировать среду, которая позволяла бы сотрудникам продвигаться по карьерной лестнице и обучаться, на работу был принят соответствующий специалист. Эта компания являлась более разнообразной, чем большинство технологических компаний из Силиконовой долины, поскольку более половины штата топ-менеджеров составляли женщины, включая технического директора и главного технического директора. В настоящее время штат этой компании насчитывает 125 человек, среди которых 30 человек занимают должность инженера.
Техническая платформа компании состоит примерно из 50 серверов, работающих совместно с физической и облачной инфраструктурой. Эта платформа может автоматически масштабироваться. Суть этого процесса заключается в автоматическом увеличении или уменьшении количества серверов, которые работают в сочетании с облачной инфраструктурой. В качестве критериев масштабирования используются определенные показатели, например степень загрузки серверных процессоров. Критерий эффективности внедрения devops-практик в этой компании заключается в обеспечении совместной работы инженеров эксплуатации с разработчиками для создания «красивых автоматизированных» систем, которые помогают бизнесу достичь своих целей. Эта деятельность подразумевает освоение разработчиками принципов технической эксплуатации и автоматизации, а затем тесную работу со специалистами в области эксплуатации на протяжении жизненного цикла создаваемых систем.
Поиск и интервьюирование кандидатов
Чтобы принимать решения по найму персонала, разделяющего вышеупомянутое представление о devops, директор должен уделить достаточное внимание обдумыванию и внедрению стратегии роста для своей новой команды. Команда по внедрению devops в компании состоит из четырех инженеров, включая самого директора. Опыт работы членов команды варьируется от младшего инженера, исполняющего свою первую devops-роль, до бывшего директора, исполняющего роль рядового сотрудника. Все они были наняты на работу директором. Процесс найма включал получение одобрения от вице-президента по выполнению инженерных работ, за которым следовало размещение объявлений о приеме на работу в Twitter и на досках объявлений GitHub и StackOverflow. Как и в случае со многими другими компаниями, обращение к услугам рекрутеров оказалось бесполезным. Гораздо более эффективными в плане поиска нужных кандидатов оказались специализированные доски объявлений и социальные сети.
Процесс собеседования с соискателями вакансий начинался в форме двух телефонных интервью – одно с текущим членом команды, второе – с самим директором. Кандидаты, которые прошли «телефонный» этап интервью, переходили к следующему этапу – полноценному очному собеседованию. В собеседовании с кандидатом участвовали два инженера, технический директор, менеджер, ответственный за деловые связи организации, и главный технический директор. Некоторые собеседования носили более технический характер, другие же концентрировались на получении сведений о кандидате и оценке возможностей его работы в растущей команде. В процессе подбора персонала выяснялись преимущества и недостатки прежних мест работы кандидатов, их пожелания по отношению к будущей работе, а также позитивные и негативные факторы рабочей среды.
Директор отметил, что он пытался выяснить, имеют ли кандидаты твердые мнения (по поводу текстовых редакторов, сравнения SQL и NoSQL либо любимых дистрибутивов Linux) и могут ли эти мнения измениться в будущем. В процессе работы с персоналом компании выяснилось, что люди, которые отказываются изменять мнение по поводу чего-либо, обычно плохо вписываются в командную среду. Неплохо бы провести собеседование с людьми, находящимися за пределами непосредственной команды, например с коммерческим директором. Это полезно для выяснения возможности работы кандидатов с другими командами, особенно со вспомогательными командами.
ТВЕРДЫЕ УБЕЖДЕНИЯ ЛИБО ЛЕГКОСТЬ ИЗМЕНЕНИЯ МНЕНИЯ
В 2008 году Пол Саффо (Paul Saffo), специалист в области технологического прогнозирования из Силиконовой долины, отмечал, что лучшие перспективы имеют рабочие среды, которым присуща умеренная степень неопределенности (http://www.saffo.com/02008/07/26/strong-opinions-weakly-held/). К сожалению, ситуация в большинстве технологических компаний характеризуется фразой «твердые убеждения либо легкость изменения мнения». Наличие твердых убеждений в какой-то степени продиктовано тем, что люди пришли к ним на основе интуитивных соображений, а не осознанного стремления или формулирования своего мнения по всем вопросам.
Легкость изменения мнения означает постоянную ревизию взглядов и представлений в соответствии с новыми сведениями и фактами. Согласно распространенному мнению, это качество является позитивным для соискателей вакансий. Конечно, неспособность придерживаться твердых убеждений означает отсутствие лидерских качеств либо невозможность принятия жестких решений. Но с другой стороны, люди, легко меняющие свое мнение, легче приспосабливаются к изменяющейся ситуации и быстрее корректируют ошибочные действия.