10 способов построения эффективной DevOps-команды

Во многих статьях даются только общие советы по DevOps: «создайте хорошую команду», «сформируйте благоприятную культуру для командной работы». Мало, кто говорит о том, как именно это делается. В этой статье даются некоторые рекомендации от специалистов по DevOps. Они расскажут, как привлечь талантливых сотрудников и добиться от них максимально эффективной работы. Ниже будут рассмотрены вопросы организации команды и руководства.

Недавно в TechBeacon решили разобраться во всех тонкостях этой темы и побеседовали с несколькими DevOps-менеджерами. Как правильно подобрать людей в команду? Как привлечь хороших кандидатов? Как организовать работу команды? Как надолго сохранить лучших работников? Полученные ответы можно найти в этой статье.

1. Удержание сотрудников не менее важно, чем набор нового персонала

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

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

Технический директор Denim Group Дэн Корнел объясняет это так: «Самые успешные инициативы по DevOps реализуются коллективами, состоящими из старых и новых сотрудников».

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

2. Команда должна иметь кроссфункциональную структуру

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

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

«Не столько важна организационная структура коллектива, сколько кроссфункциональное взаимодействие сотрудников при работе над проектами». – утверждает Данн.

«Не путайте руководство и функциональное управление», — Джулиан Данн.

Также, по мнению Данна, хороший менеджер по продукту будет хорошим руководителем, даже если члены команды не отчитываются перед ним напрямую. «Нужно обязательно давать руководителям полномочия принимать решения в отношении своих коллективов. Пусть даже их должность официально не называется «менеджер», «директор» или «топ-менеджер». Нужно четко давать им понять, на каком уровне они могут принимать решения».

3. Создание команд «на две пиццы» с портфельным управлением

Компания Amazon наделала шуму в мире DevOps, предложив концепцию команд «на две пиццы». Самые эффективные команды — это те, которым хватает двух пицц, чтобы накормить всех сотрудников. Использование маленьких коллективов отлично подходят, чтобы организовать слабо связанный процесс поставки программных продуктов по типу микросервисов. Это очень ценится в организациях с DevOps.

Алан Цукер, основатель фирмы Project Management Essentials, считает, что реорганизация IT в маленькие команды сотрудников может показаться непосильной задачей для предприятия. Активизировать и объединить собственные ресурсы не так уж легко.

По его словам, начать можно с создания портфельных организаций.
«Портфельная команда состоит из множества элементов. Это разработчики, ответственных за обеспечение производства, тестировщики, инженеры по DevOps, менеджеры проектов. Такие команды могут выполнять разные функции и роли, но иметь общее руководство, которое участвует в работе. Такие лидеры заинтересованы, чтобы организация училась делать все более выгодные предложения клиентам» — продолжает Цукер.

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

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

«Если организовать функциональные команды отдельно, то они смогут сохранять свою эффективность, занимаясь поддержкой команд разработчиков. Если их сплотить в рамках процесса организации поставки, то они смогут увидеть свою общую миссию служения конкретной сфере бизнеса», — Алан Цукер.

Цукер считает, что построить организацию такого типа непросто. «Здесь нужны лидерские качества. Директора и менеджеры должны стремиться построить культуру сотрудничества и доверия для своих подчиненных».

4. Необходимые качества сотрудников

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

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

Корпоративный архитектор Mendix Яспер ван дер Хук отметил, что руководители должны соблюсти в команде баланс опыта и профессионализма. Нужно искать людей, у которых есть и опыт, и знания.

«DevOps делает необходимым построение самодостаточных команд. Нужно избегать ошибки создания миниатюрных IT-организаций с узконаправленной специализацией. Впоследствии это может привести к еще большим проблемам, чем на начальном этапе», — Яспер ван дер Хук.

То есть искать нужно не только специалистов с глубокими познаниями в отдельной области, которые требуются для данной должности (классический I-образный профиль компетенций, когда люди мыслят узконаправленно). Кроме специализации, стоит обращать внимание на широту знаний (более широкий T-образный профиль компетенций, оптимизированный под DevOps). Такие работники будут работать энергичнее и сотрудничать с коллегами во многих вопросах. Если придерживаться T-образного профиля компетенций, то каждый член команды сможет взять ответственность за любой аспект миссии команды.

«Очень много узконаправленных специалистов. Однако каждый человек должен стремиться расширить набор подходящих для него компетенций» — ван дер Хук.

Ван дер Хук приводит пример, что UX-специалист может предлагать оптимальные идеи и процессы, а несколько человек в команде должны суметь воплотить их.

5. Интересные инструментальные средства помогают сохранить персонал и привлечь новых работников

Реальность такова, что лучшим кандидатам на попадание в DevOps-команду нравится работать с новыми технологиями «в красивой обертке». Если организация полагается на старые медленные инструментальные средства разработки, привлекать талантливых специалистов и удерживать их намного тяжелее.

Дерек Чой, ИТ-директор в Rainforest QA, полагает, что лучше потратиться на специальные DevOps-инструменты. Это повысит эффективность сотрудников, и они не захотят уходить.

«Чтобы привлечь талантливых специалистов по DevOps в компанию, важно вывести на первый план создание продвинутого и интересного DevOps-инструментария», —Дерек Чой.

Чой утверждает, что DevOps-инженеры стремятся делать выдающиеся проекты, чтобы добиться успеха в столь быстро меняющейся сфере новых технологий. «Чем убедительнее компания демонстрирует, что идет в ногу с развитием технологий, тем сильнее потенциальные сотрудники захотят в ней работать».

6. Новым сотрудникам нужны наставники

По словам Дерека Чоя, новичкам нужно не только продвинутое ПО для работы. Кроме этого, они хотят быть уверены, что их коллеги, особенно вышестоящие, – настоящие профессионалы. Дело не только в работе под началом компетентных управленцев. Они хотят работать под руководством тех, кто готов быть их наставниками.

«Сильные руководители команд DevOps – учителя, стоящие в первых рядах сообщества DevOps. Они зарабатывают себе имя, выступая на знаковых конференциях, проводя инновационные исследования и публикуясь в изданиях. Кандидаты часто равняются на таких лидеров. Иногда они присоединяются к команде, как раз надеясь поработать со своими ролевыми моделями», — Дерек Чой.

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

7. Преподавание в университетах

Чтобы стать учителем на работе, стоит попробовать заняться преподавательской деятельностью в учебном заведении. Технический директор и сооснователь южноамериканского сайта oMelhorTrato.com Кристиан Реннелла заверяет, что одна из самых эффективных стратегий поиска лучших специалистов по DevOps – преподавать в местных университетах. По его словам, преподавательская деятельность помогла ему привлечь более 60% от всех новых DevOps-сотрудников его организации. Его компания одобрительно отзывается о результатах работы этих людей.

«Даже не нужно быть учителем, чтобы использовать этот источник новой рабочей силы. Для начала нужно обзавестись знакомствами в местном университете. На начальных этапах можно организовывать и продвигать научно-технические конкурсы, соревнования или мероприятия среди студентов инженерных специальностей», — Кристиан Реннелла.

8. Команды способны сами отвечать за набор персонала

Коллектив компании New Relic, занимающейся аналитикой ПО, пережил период DevOps-трансформации. В ходе комплектования своих команд разработчиков, компания прислушивалась к собственным служащим. Самостоятельный выбор кандидатов облегчает задачу построить команду, в которой между сотрудниками способно возникнуть взаимопонимание на профессиональном и межличностном уровне.
Директор отдела контроля производства в New Relic Джим Гочи утверждает, что менеджерам и руководителям трудно следить за развитием взаимоотношений в коллективе. Когда команды сами набирают персонал, им понятнее, кого они хотят видеть в своих рядах. Люди, которым нравится работать друг с другом, могут работать практически над чем угодно.

«Если специалисты, работающие вместе, хорошо относятся друг к другу, между ними возникает доверие. За счет этого улучшаются результаты работы и производительность. Люди гораздо сильнее переживают за результат», — Джим Гочи.

9. Команды должны работать автономно

По мнению Гочи, в наши дни на рынке труда все вертится вокруг соискателя. Финансовые стимулы, такие как бонусы, высокие зарплаты, различные привилегии – не всегда самый важный фактор привлечения талантливых специалистов. Возможно самый заманчивый бонус, который может предложить кандидату организация — возможность работать автономно.

«Я видел, что происходит, когда команда разработчиков полностью берет ответственность за свою работу. Инженеры больше интересуются, как клиенты используют созданную ими часть системы», — Гочи.

По словам Гочи, руководителю радостно видеть, как команды разработчиков «стремятся приносить пользу компании и с энтузиазмом решают новые проблемы».

10. У команды должно быть время на совершенствование процессов

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

«Они могут выбрать себе определенные часы на неделе или во время спринта – 10-20% от всего времени. Это время они посвятят совершенствованию процессов. За свой объем работы они будут получать соответствующее поощрение», — ванн дер Хук.

Таким образом, он предлагает поощрение команд бонусами за успешные эксперименты и ощутимые улучшения, которые будут способствовать эффективности и надежности поставки.

Выводы

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

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