Все записи

Как мы переходили на SCRUM

В последнее время методология скрам, ранее уже полюбившаяся разработчикам программных продуктов, стала вызывать интерес специалистов из других сфер. Сегодня мы хотим подробнее рассказать об опыте внедрения скрама в практику команды Aviata.kz. Чтобы понять лучше, что он представляет из себя на деле, мы попросили двух сотрудников компании — Дениса Щелкунова, DevOps-специалиста, и Мадину Мазину, директора по маркетингу, рассказать об их опыте работы по скраму. Но сначала немного теории.

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

Эта методология подробно описана в книге Джеффа Сазерленда «SCRUM. Революционный метод управления проектами». Автор отмечает, что в отличие от традиционного подхода, когда проект изначально долго планируется «от» и «до», а затем жестко контролируется, данный способ позволяет в короткие сроки с минимальными затратами получить готовый продукт.

Если вы еще не знакомы с методологией скрама, давайте начнем с базовых принципов и терминов.

Три главных принципа скрама

● Абсолютная концентрация на достижении цели всех членов команды

Каждый участник, вне зависимости от своей роли в команде, должен знать и понимать конечную цель. Скрам не подразумевает жесткий контроль со стороны руководителя, а опирается на осознанность, мотивацию и сотрудничество членов команды.

● Автономность

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

● Многофункциональность

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

Основные термины

Владелец продукта или продакт оунер (Product Owner) — главный заказчик разработки продукта. Как правило, это сотрудник, который понимает нужды клиента и может расставлять приоритеты в задачах.

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

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

Спринт — фиксированный временной отрезок, который дается команде на выполнение запланированных задач. Каждая команда сама выбирает длительность спринта, но в среднем он длится 1-4 недели. Нельзя изменить длину спринта после того, как он стартовал.

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

Скрам-доска — основной рабочий документ. Представляет собой набор столбцов, обозначающих статус выполнения задачи — бэклог, в процессе, на согласовании, выполнено.

Пятиминутки — ежедневные встречи членов команды для краткого отчета по проделанной работе и планов на текущий день.

Первая попытка внедрения скрама в Авиате

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

Что из этого вышло, рассказывает DevOps-специалист Aviata.kz Денис Щелкунов.

- Расскажи, как и когда пришла такая идея — внедрять скрам.

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

- Какие грабли ожидают новичков? К каким ошибкам стоит готовиться?

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

- Как менялось твое отношение к методологии?

Денис: Только в лучшую сторону. Изначально были сомнения и недопонимание, потому что мы неправильно использовали скрам. Казалось, что он не привносит ничего принципиально нового в планирование. Но со временем все встало на свои места. Теперь уже трудно представить, как работать по-другому.

- Трудно было перестраиваться на работу по-новому? Вам приходилось сталкиваться с сопротивлением команды?

Денис: Конечно, как и ко всему новому, к скраму надо привыкать. Я понял, что главное четко объяснить людям, как это работает и зачем делается. Сначала сотрудники думают: «Зачем нам это? Всё ведь и так хорошо». Стоит им предложить попробовать скрам в течение месяца. Когда люди сами прочувствуют насколько скрам удобнее и эффективнее, они втянутся.

- Сколько времени должно пройти, чтобы увидеть рост эффективности команды?

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

Работа над ошибками

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

О том, как построена работа по скраму сейчас, рассказывает директор по маркетингу Мадина Мазина.

- Часто скрам описывают как методологию, которую легко понять, но трудно внедрить. По твоему опыту это действительно так?

Мадина: Я пришла в Авиату на том этапе, когда скрам уже активно внедрялся. Мне кажется, главная проблема обычно в том, что компании гонятся за внешними атрибутами, но игнорируют основополагающие принципы работы по скраму. А отделить одно от другого тяжело. В Авиате не все сотрудники перешли на скрам, я не скажу, что мы профи в этом, мы только процентов на 50 освоили эту методологию, и у нас впереди еще много всего.

Но, исходя из личного опыта, думаю, трудно внедрить бывает еще и потому, что нужно отказаться от перфекционизма, а этим страдают многие программисты. Они могут бесконечно что-то дорабатывать, чистить, переделывать до идеального состояния. При таком раскладе вы не сможете каждую неделю выпускать новую итерацию продукта. У нас есть фронтэнд разработчик. Когда он пришел в команду, тут же сказал: «Можно я вам сразу весь код перепишу? Весь CSS и HTML, потому что он не очень, мне не нравится». Да, код нужно рефакторить. Но он хотел переписать ВСЁ. Тогда бы эта задача не закончилась никогда. Мы ответили ему: «Мы начинаем делать мобильную версию ЖД-сайта. Давай начнем с нее и потихоньку будем двигаться дальше».

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

Отказ от перфекционизма, которым страдают все программисты и дизайнеры, обязанность продакт оунера и скрам-мастера, которые ставят задачи и управляют самим процессом. Если не будет людей, которые прямо пропитаны идеей, которым каждую неделю надо показывать продукт, то скрам будет внедряться тяжело. У нас он тоже внедряется тяжело, каждую неделю надо об этом говорить, думать, рассказывать, стараться при планировании спринта декомпозировать задачи. Со временем он приживется. Получается, скрам — это не про внешние атрибуты (планирование, пятиминутка, ревью), а про то, что каждую неделю ты показываешь результат и ставишь осязаемую цель на неделю, а не просто что-то эфемерное, которое никогда не случится. Это сложно для многих компаний и многих команд.

- Допустим, компания прочитала книгу Сазерленда, вдохновилась и решила внедрять скрам. Есть рекомендации или план действий на первое время?

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

Что еще посоветовать? Нельзя бросать. Если спустя две недели ты не увидел немедленный результат и говоришь, что скрам не работает, значит, ты не понимаешь, что такое скрам. Потому что скрам — это постоянное улучшение результатов. Если на этой неделе вы сделали 20% запланированного, то на следующей неделе 30, 40 и так, пока не дойдете до 100%. Это не делается за 2 недели или 2 месяца. А если ты бросаешь на второй неделе, значит, ты к этому не готов.

У тебя должна быть нетерпимость к ерунде, к тому, чтобы люди делали ненужные продукты, которые никак не решают проблемы клиента. Если разработчик не выполнил спринт и говорит, что был занят другими делами, нужно уметь сказать «На этой неделе мы этого не планировали, давай ты будешь заниматься тем, что важно».

- Какие еще качества и компетенции нужно развивать, чтобы быть эффективным в работе по скрам?

Мадина: Продакт оунер и скрам-мастер должны быть хорошими менеджерами. У оунера главный навык — умение расставлять приоритеты. Владелец продукта — это единственный человек, который говорит, что вы как команда будете делать. Никто, кроме него, не решает. Поэтому у оунера должно быть умение говорить нет тем вещам, которые никак не улучшают продукт для клиента. Важно умение работать в режиме MVP — минимально жизнеспособного продукта. Раз тебе нужно показывать каждую неделю новую итерацию продукта, ты не можешь с первой недели обеспечить весь функционал, который планировал внедрить за год. Ты должен понимать, что из всего этого самое важное, а что можно отложить. Потому что продукт, который выходит на рынок первым, начинает зарабатывать деньги, пусть даже он с небольшими огрехами, багами. Это лучше, чем продукт, который полируется до бесконечности, и в итоге так никогда и не появляется на свет.

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

Эти навыки должны быть у всех менеджеров. Но в скрам они распределяются между двумя ролями и наиболее ярко выражены.

Преимущества скрам

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

- В чем, на ваш взгляд, преимущество скрама перед другими методологиями планирования?

Денис: Все происходит гораздо быстрее. Я знаком с каскадным планированием (техника Waterfall). Оно предусматривает долгое планирование, сидение часами над техническим заданием (ТЗ). Все возможные ситуации должны быть предусмотрены заранее, но в разработке этого сделать невозможно. Плюс, отнимает очень много времени. В скраме же небольшими спринтами, короткими рывками можно сделать первоначальную версию продукта, посмотреть, оно это или нет. В случае необходимости внести изменения или продолжать в том же духе.

Мадина: У меня также был опыт работы по технике Waterfall, когда мы писали ТЗ, утверждали с клиентом и, по сути, на два месяца вперед был согласован жесткий план, что ты будешь делать. На внесение корректировок могли уходить недели. Какое преимущество скрама? Во-первых, это быстрое реагирование на проблему. Ты не можешь и не должен заранее планировать все от «а» до «я». И даже посреди спринта у тебя может появиться неожиданная задача, которую ты не учла при планировании. В этом случае ты просто говоришь: «Окей, я возьму эту задачку в следующий спринт». Это помогает тебе быстро реагировать и выпускать лучший продукт.

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

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

- Скрам можно адаптировать к любой компании? Как использовать скрам в непродуктовых командах?

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

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

- Как вы видите дальнейшее внедрение скрама в Авиате?

Мадина: Нам нужно придумать, как внедрить его в практику отдела маркетинга. Мы не показываем каждую неделю какой-то продукт. В маркетинге это обычно отчеты, много менеджерской работы, когда ты кому-то позвонил, с кем-то договорился. У нас сейчас есть отдельная скрам-команда по маркетингу, но это не совсем правильно. По сути мы повторяем опыт разработчиков. Нам нужно много работать прежде, чем мы отойдем от деления по направлениям — отдельно маркетологи, технические специалисты, call-центр и т.д. Надо миксовать команды. В нашем случае это должна быть команда из разработчиков и маркетологов вместе. Пока у нас эту функцию выполняю я: становлюсь своего рода дополнительным звеном. В будущем мы сделаем так, чтобы маркетологи были в каждой продуктовой команде. Мне бы так хотелось. Чтобы скрам давал результаты, команды должны быть функциональными, должны быть разные роли. А иначе вы вроде как практикуете скрам, но при этом каждый отдел сидит у себя и друг с другом не разговаривает. Обычно в этом и вся проблема.

Хотите работать в Aviata.kz? Смотрите открытые вакансии компании по ссылке: https://hipo.kz/companies/aviata/jobs/

Александр Ли: 5 вопросов тем, кто хочет быть профессионалом
5 правил эффективной работы из дома
Евгений Зайцев, IT-директор KMF: "Для меня главное результат работы членов моей команды"
Офис компании Atlas Copco
Как проходят тимбилдинги в KMF
World Class Lite: о марафоне, о спорте как образе жизни и правильном питании без фанатизма