Философия DevOps.
Глава 15. Масштабирование: заблуждения и устранение проблем.
В этой главе будут рассмотрены некоторые наиболее часто встречающиеся проблемы масштабирования и способы их устранения. Также будут рассмотрены вопросы, относящиеся как к обычным сотрудникам, так и к менеджерам. Советы, представленные в данной главе, помогут в разрешении проблем работникам, выполняющим разные роли на предприятии.
Заблуждения, связанные с масштабированием.
Как упоминалось в предыдущей главе, организации более заинтересованы в масштабировании, чем просто в сохранении статуса большой компании или во внедрении некоторых devops-практик уровня предприятия.
Некоторые команды никогда не смогут работать вместе.
Очень часто движение devops возникает как результат конфликта между командами разработчиков и эксплуатации из-за отсутствия взаимопонимания. Обычно команды попадают в состояние конфликта из-за повышенной напряженности и накопившихся недоразумений. Как упоминалось в части II, не следует рассматривать конфликты как негативные явления. Конфликт – это хороший признак здоровой организации, поэтому не стоит его бояться или избегать. Важно не допускать взаимных конфликтов между командами. Если межличностное урегулирование подразумевает примирение по принципу «один на одни», то групповое урегулирование конфликта – более сложный процесс. Следует научиться корректировать внутригрупповые связи и процессы, приведшие к сбоям.
На первых этапах бывает очень трудно урегулировать конфликты, поскольку команды заново учатся взаимодействовать друг с другом. Для восстановления доверительных отношений требуется много времени и усилий. Одно неловкое действие может свести на нет все предыдущие попытки.
Ниже приведены основные модели поведения, которые нужно отслеживать.
Критика.
Переход на личности, диктуемый особенностями характера.
Проявление неуважения.
Заявления или поведение, обусловленные позицией превосходства.
Защитное поведение.
Заявления или поведение, продиктованные соображениями самозащиты.
Замалчивание проблемы.
Эмоциональное отчуждение, мешающее общаться с людьми.
Огульные обвинения.
Заявления, содержащие упреки типа «они всегда», «они никогда» или «мы всегда/никогда».
В командах, постоянно противопоставляющих себя другим, зачастую возникают проблемы самоопределения. Команды должны иметь одно общее видение и определение успеха. Если одна группа почувствует, что ее цели недостижимы из-за дефицита информации и прозрачности, относящейся к другим группам, в этом случае вторая группа может оказывать эмоциональное давление. Это в свою очередь способствует усугублению и так напряженных отношений между командами.
В случае распределенных команд проблемы будут усугубляться. Если в противоречие вступают различные приоритеты и цели, связанные с достижением успеха, конфликт между распределенными группами будет усугубляться и для его разрешения потребуется больше усилий. Процесс принятия решений в таких группах должен быть прозрачен и понятен для всех членов команды.
Как показывают исследования, если сотрудники различных подразделений регулярно наносят визиты друг другу, между ними налаживаются дружеские связи, укрепляются договорные отношения и вырабатываются способы взаимодействия и сотрудничества[64]. Менеджеры по возможности должны содействовать проведению таких встреч, чтобы на основе прозрачности обеспечить совместную работу команд. Людям не нравится, когда их ставят перед фактом принятия решений, которые оказывают на них непосредственное влияние, даже если они удовлетворены результатами принятия таких решений.
Серьезный конфликт, отражающийся на результатах работы, обычно является следствием слияния двух компаний. Чтобы искоренить принцип противопоставления команд, в процесс продвижения к цели должны быть вовлечены влиятельные лица из обеих компаний.
Подобная ментальность присуща людям, использующим свою независимость и знания в целях засекречивания своей работы. Им нравится быть в роли единственной критической точки или уязвимого места в процессе передачи знаний. Эти люди считают себя настолько ценными, что компания, по их мнению, никогда от них не откажется. Такой подход может негативно отразиться на отношениях с аналогичными компаниями. В этих случаях рекомендуется принимать меры, направленные на передачу информации и корректировку взаимоотношений, включая устранение недоверия между отдельными сотрудниками и компанией.
Внедрение изменений невозможно без одобрения начальства.
Менеджер всегда оказывает достаточно большое влияние на своих непосредственных подчиненных и на эффективность их работы. Если со стороны высшего руководства отмечается сильное давление на сотрудников, менеджер выступает в роли «зонтика»,[65] то есть защищает своих подчиненных от грязи, которая выливается на них в процессе работы.
Если руководство ставит слишком высокие требования, менеджер может либо защитить свою команду от возможных неприятностей, либо просто слить на них все непомерные запросы начальства (то есть выступить в роли «сливной воронки для нечистот»).
Менеджер должен делать все от него зависящее, чтобы вдохновить свою команду, предоставив ей максимальную свободу действий по экспериментам с инструментами, рабочими потоками и практиками, применяемыми в команде. В зависимости от культуры организации менеджеру легче убедить своих подчиненных в том, что текущие результаты могут достигаться за счет использования новых, более эффективных инструментов или рабочих потоков. Менеджер обязан делать все возможное для защиты своей команды от скептиков и поиска оптимальных способов работы с ними.
Наш бюджет не предусматривает набор новых специалистов, в связи с чем внедрение devops-методик на данном этапе невозможно.
Процесс переориентирования культуры небольших или быстро развивающихся организаций в сторону использования devops-практик происходит проще в случае подбора персонала с соответствующим опытом и мировоззрением. Тем не менее не каждая компания решится на прием большого количества новых сотрудников, если вообще пойдет на такой шаг. К счастью, внедрение devops-методик возможно и без привлечения новых сотрудников, являющихся «10x devops-инженерами».
Выработайте единое понимание целей.
Чтобы каждый сотрудник компании проникся идеей devops, следует убедиться в том, что у всех работников сформировано одинаковое представление об этой методике. Менеджер должен уметь не только донести до коллектива предмет изменений, но и объяснить причину, вызвавшую необходимость этих изменений. Это особенно касается больших компаний, имеющих тенденцию к реорганизации. В таких компаниях люди зачастую с подозрением относятся к изменениям, для них это звучит как что-то несущественное или как пустые декларации. Менеджер должен убедить свою команду в том, что речь идет о конкретных изменениях, направленных на получение практических результатов.
Создайте условия и возможности для обучения.
Как уже упоминалось в главе 8, старого системного администратора можно обучить новым трюкам. Трансформация devops подразумевает освоение новых программных и технических навыков, таких как составление безупречного постмортема и работа с Docker. Убедитесь в том, что сотрудники организации могут получить все необходимые навыки. Также обеспечьте создание обучающей среды и личностный рост каждого сотрудника организации.
Сформируйте среду для успешного внедрения devops-принципов.
Для внедрения изменений следует создать условия, при которых людям будет интересно выполнять эту работу. Чтобы сотрудники больше общались между собой или занимались наставничеством, менеджер должен закрепить эти навыки в матрице навыков или внести в план служебного роста. В целях пресечения грубого поведения следует поощрять сотрудников, которые сообщают о таких поступках. Агрессивное и оскорбительное поведение недопустимо и должно наказываться менеджером. Невозможно создать такую среду, в которой совмещались бы хорошие и плохие работники. Если менеджер не борется с негодяями, то, скорее всего, он активно сопротивляется внедрению devops-среды, основанной на сотрудничестве.
Если нужно изменить существующую среду, привычки и поведение людей, следует действовать постепенно. Нужно быть уверенным в наличии четких целей, возможностей для обучения и атмосферы доверия, эмпатии и сотрудничества.
Устранение проблем, связанных с масштабированием.
Универсального решения по устранению проблем, возникших при выполнении масштабирования, не существует. В данном разделе представлены общие сценарии развития событий в организациях в процессе их роста и развития на протяжении жизненного цикла.
Менеджмент рекомендует придерживаться X, не видя пользы от devops.
При рассмотрении компании Target в предыдущей главе говорилось о том, что на определенном этапе развития компании менеджмент дает добро на внедрение изменений, которые имели бы более продолжительный эффект в рамках всей организации. Тем не менее не стоит ожидать одобрения этих действий с самого начала. Рекомендуется начать с одной команды, дать ей время на эксперименты и посмотреть, как будет продвигаться дело. Положительные результаты внедрения изменений будут служить ценным примером для других команд.
Если проблема связана с топ-менеджментом, попросите вашего непосредственного менеджера помочь в вопросе внедрения изменений. Эта помощь может заключаться в следующем:
• разобраться с ограничениями непосредственно на рабочем месте;
• вести переговоры с другими менеджерами от вашего имени;
• позволить вам проводить эксперименты в команде;
• защищать вас от любых негативных последствий.
Если ваш непосредственный менеджер не видит пользы от внедрения devops, вам будет сложнее влиять на ход изменений. В этом случае можно найти союзников в своей команде. Если менеджер настаивает на использовании инструмента Х, сможете ли вы применять его наравне с новым инструментом или методикой Y, чтобы через некоторое время сравнить результаты? Сможете ли вы влиять на вашего менеджера и обсуждать с ним темы эффективности изменений и их преимуществ?
Недостаточные ресурсы команд.
Если команды систематически не выполняют задания или не соблюдают нормативные сроки при достаточно реальных планах и требованиях, возможно, над поставленными задачами или проектами работает мало людей. В этом случае следует произвести переоценку рабочей загрузки и сроков выполнения работ. Вариантом выхода из создавшейся ситуации может быть перераспределение сотрудников между проектами или пересмотр календарного планирования, что реально позволит данной команде завершить работу в установленные сроки.
Возможно, придется нанять в команду больше людей, особенно на стадии роста. При этом следует учитывать, что на стадии спада, сопровождающейся сокращением количества штатных сотрудников, не всегда уменьшается объем работ или рабочая нагрузка. С целью сокращения расходов прежний объем работ выполняется меньшим количеством людей, что на определенном этапе может негативно отразиться на качестве работ и привести к выгоранию персонала. Поэтому нужно соизмерять свои ожидания с реальностью.
Чтобы при том же количестве сотрудников достигались более эффективные результаты труда, люди должны работать не интенсивнее, а интеллектуальнее. Вместо того чтобы тратить больше времени на выполнение большего объема работ, можно усовершенствовать оборудование и технологии. Следует обсудить с членами команды производственный процесс и инструменты, используемые в работе, продумать способы повышения их эффективности с целью экономии времени и усилий. Поиск оптимальных решений можно вести за пределами компании, учитывая вместе с тем мнения и предложения членов команды. Опрос сотрудников обычно занимает много времени и усилий, особенно если люди не привыкли высказывать свои идеи и мнения. Как бы там ни было, но благодаря таким исследованиям можно получить очень полезную информацию.
Принятие необоснованных решений.
Болевой точкой в процессе роста и развития организаций является осознание того, что процессы принятия решений отнимают много времени и усилий, а результаты не всегда соответствуют ожиданиям (руководство решило попробовать Х, но стало не лучше, а еще хуже). В небольшой организации, когда весь инженерный отдел помещался в одной комнате, решения принимались быстро и легко. Когда компания расширяется до нескольких подразделений, разбросанных по всему миру, процесс принятия решений превращается в затяжную рутину. Ниже описаны способы решения этой проблемы.
Исследование процессов.
По мере роста организации усиливается путаница в вопросах ответственности за те или иные проблемы. Если над проектом работает несколько команд, проблемы зачастую остаются незамеченными и никто не несет за них ответственности. Иногда оспаривание командами своей вины в появлении проблемы может привести к конфликтам. Последняя ситуация особенно отрицательно сказывается на эффективности процесса принятия решений. Многочисленные споры всегда затрудняют возможность что-либо решить. С другой точки зрения, любые спускаемые сверху решения, которые принимаются без особого оспаривания, как правило, не всегда устраивают сотрудников.
Идентификация проблем, связанных с прозрачностью.
Если менеджер недостаточно четко осознает необходимость принятия тех или иных решений, а также их возможные последствия, он склонен к аналитическому параличу.
Контроль оценки процесса.
Люди избегают принимать решения в том случае, если процедура их принятия сама по себе превращается в процесс достижения результатов в оптимальные сроки.
Соизмерение продуктивности с рисками.
Избегание принятия решений сказывается на производительности труда. Следует четко осознавать риски, связанные с принятием неправильных решений. Если такие действия приводят к незначительным последствиям, то постоянное игнорирование принятия решений оборачивается потерями времени, что может уменьшить полезность этих решений.
Внедрение постепенных изменений.
Осознание того, что многие решения не являются необратимыми, способствует переосмыслению рамок понимания. Если мы понимаем, что можем передумать после принятого решения, то уменьшаем аналитический паралич, возникающий из-за большого количества альтернатив.
Сохранение безопасного пространства для экспериментов.
На ошибках учатся анализировать риски и принимать правильные решения. Это еще одна сфера, в которой проявляются преимущества безупречной культуры. При такой модели сотрудники в основном сосредоточены на достижении наилучших результатов, а не просто заботятся о спасении своей шкуры.
Отслеживайте принимаемые решения. Последовательное выполнение одних и тех же действий с ожиданием других результатов – это зря потраченные усилия и проявление безрассудства. Отслеживая решения и результаты, можно скорректировать свой курс и достичь большей уверенности в принимаемых решениях.
Мы не можем привлечь талантливых сотрудников.
Знакомьте свой персонал с основными требованиями к работе, посещайте собрания отдельных групп, пересмотрите требования к работе и поддерживайте обратную связь с коллективом. Если история организации диктует требования к количеству и качеству кандидатов, претендующих на вакантные места, можно воспользоваться некоторыми рекомендациями, которые будут полезными.
Поинтересуйтесь историей и проблемами, характерными для этой среды. Будьте готовы ответить на возможные вопросы после изложения сути основных проблем. Если потенциальный кандидат ознакомился с деятельностью вашей компании, изучил отзывы в Glassdoor и пришел на собеседование, это хороший знак. Попросите нынешних сотрудников рассказать о работе в форме презентации или участия в конференциях. Процесс просмотра презентаций и участия в конференциях должен быть четким и доступным.
Выясните, в чем состоит проблема, – в процессе найма или в проведении собеседований с кандидатами. Разработайте программу по обучению сотрудников интервьюированию и разбейте их на пары, чтобы в организации было как можно больше людей, готовых проводить собеседования. Выявите методики, которые, по вашему мнению, могут отпугивать потенциальных кандидатов. Собеседования, затягивающиеся на целый день или даже на несколько дней, а также враждебно настроенные интервьюеры зачастую отпугивают кандидатов, тем самым пороча идею многообразия внутри организации.
Бывают случаи проблемного поведения отдельных сотрудников на рабочем месте. Если эти вопросы довольно долго игнорируются, люди поймут, что такого рода поведение допустимо. Как результат, сотрудники перестанут сообщать о подобных случаях и устранять проблемы, возникающие в связи с неподобающим поведением. Проблемных сотрудников следует обязательно увольнять из компании, тем самым давая возможность привлекать новых людей. Особенно жестко следует реагировать на проявления расизма, сексизма или дискриминации по другим признакам.
Благодаря таким действиям вы сможете выявить потенциальных кандидатов на вакантные места. Если большая организация медленно реагирует на изменения в отрасли, ей, скорее всего, не придется переманивать сотрудников стартапов. Обращайте особое внимание на организационные проблемы и ограничения, учитывая которые можно отнести поиски кандидатов с целевой аудиторией и не заработать плохую репутацию из-за несоблюдения методик подбора персонала.
Ослабление морального духа коллектива после реорганизации или сокращения.
Фаза сокращения в жизненном цикле организации – это естественный процесс, в ходе которого руководство сокращает линейки продуктов или штат сотрудников. Изменение культурных норм способствует повышению уровня прозрачности, когда работники могут публиковать отзывы о своей работе, информацию о зарплате и собеседовании. Существует сайт Glassdoor, представляющий собой площадку, на которой сотрудники могут размещать сведения на условиях анонимности. Потенциальные работники могут познакомиться с подобной информацией и оценить свои силы и возможности.
Процессы, происходящие после вхождения компании в эту фазу, отражают ее культуру. Стиль и методика изложения руководством информации о грядущих изменениях иногда вызывают когнитивный диссонанс у сотрудников (внутренний конфликт). Это имеет место в том случае, когда внутреннее восприятие культуры и возможных последствий такого сообщения не синхронизированы.
Непонимание разных способов оценивания людей может негативно отразиться на моральном состоянии коллектива. Если компания сокращает отстающих сотрудников и среди них оказывается ценный работник, оставшиеся члены команды должны восполнить недостающее звено для восстановления после когнитивного диссонанса.
Неумело проводимые и управляемые процессы изменений деморализуют оставшихся сотрудников компании. Это приводит к ухудшению сотрудничества и командной работы между отдельными сотрудниками и командами, а также способствует росту количества аварийных ситуаций и прогулов, вызванных стрессами или болезнями. В зависимости от причин реорганизации или сокращения все это может привести к обратному нежелательному эффекту.
Если предстоит сокращение персонала, не стоит это скрывать. Чем больше организация, тем больше вероятность утечки информации. В порыве чувств и эмоций некоторые люди могут просто «слить» служебную информацию. Если новости о реорганизации становятся известными прежде, чем руководство информирует об этом сотрудников, людей охватывает паника по поводу возможного сокращения или увольнения ценных сотрудников.
Если команда недостаточно корректно справилась с такими событиями в силу постоянно растущего уровня прозрачности, связанной с событиями, важно, чтобы сотрудники могли решать остальные внутренние вопросы при таких же условиях.
Пересмотрите и откорректируйте методики приема на работу. Убедитесь в том, что они позитивно оценены сообществом. Проявляйте индивидуальный подход в процессе найма персонала.
Старайтесь искать кандидатов младшего звена, имеющих небольшой опыт работы. Проводите обучение и наставническую работу. Несмотря на то что в скором времени им придется платить больше, их помощь еще долго будет представлять ценность для организации. Обладая большим потенциалом, они могут оживить процесс найма персонала.
И наконец, увольте всех нерадивых сотрудников. Изучите влияние отдельных работников на команду. Не прощайте плохое поведение даже ценным членам коллектива. Их поведение плохо влияет на остальных сотрудников, а также может негативно отразиться на кандидатах, проходящих собеседование.
Мы не знаем, нужна ли нам полноценная команда для выполнения Х.
Если проект или роль не предусматривают необходимости приема на работу более одного человека, можно воспользоваться готовым рецептом от выгорания в виде команды одного сотрудника. Существует такое понятие, как автобусный фактор, – предельное количество людей, которое может потерять команда или проект, чтобы утратить свои институционные знания или возможности роста. Иными словами – это количество людей, которое может сбить автобус, прежде чем проект/команду нельзя будет спасти. Чем меньше этот показатель, тем хуже для команды, поскольку сужаются границы для возможных ошибок или смягчающих обстоятельств.
Автобусный фактор для команды, состоящей из одного сотрудника, по определению равен единице. Что будет делать руководство, если этого сотрудника вдруг собьет автобус или, что менее драматично, он заболеет, захочет взять отпуск или уволиться? Постарайтесь найти способы передачи информации и опыта другим сотрудникам (даже не прибегая к большой рабочей загрузке) для создания полноценной команды. Начните с составления рабочих пар и старайтесь регулярно обновлять документацию.
Еще одной серьезной проблемой для команды, состоящей из одного сотрудника, является такое понятие, как выгорание. Если определенный вид работ выполняет единственный сотрудник, существует вероятность оказания на него внутреннего или внешнего давления (например, невозможность уйти в отпуск или взять больничный). Без должной подзарядки будет постоянно накапливаться стресс, и это, скорее всего, подтолкнет работника к решению уйти из компании. Такие люди предусмотрительно ищут новую работу, на которой не будут считаться «козлами отпущения» и, соответственно, будут работать без стресса и выгорания. Было бы неплохо, если бы несколько людей, несущих одинаковую ответственность и имеющих одинаковый опыт, работали бы по сменам. С точки зрения отдельного работника и организации в целом это было бы лучше и продуктивнее, чем работа одного человека на полной ставке.