Как Не Увязнуть В Задачах И Выстроить Командную Работу: Наш Опыт Scrum

Меня зовут Иванов Алексей.

Я работаю DS и Scrum Master в Центре экспертизы ML компании TalentTech, разработчика HR-решений.

Обучаем моделей для проектов компании.

Ровно год назад наша команда самоорганизовалась и начала применять Scrum-подход (мы и дальше будем использовать Scrum).

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



Как Не Увязнуть В Задачах И Выстроить Командную Работу: Наш Опыт Scrum

Запуск оказался на удивление простым.

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

Мы создали календарь за несколько итераций и сгруппировали встречи в блоки.

Звонки клиентам были зажаты между внутренней демонстрацией и планированием спринта.

Чтобы иметь возможность не только общаться, но и работать, понедельник, вторник и среда вообще остались без встреч (кроме стендапа).

Итак, за пару месяцев мы вошли в ритм.

Процесс стал по-настоящему нашим.

Помню, когда на OKR обсуждались цели процесса, кто-то заметил: «Зачем их ставить? Мы уже работаем по Scrum».

И надо сказать, первые результаты были ошеломляющими.

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

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

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



Перевернутая постановка целей и скрытые процессы

Углубляясь в детали, можно увидеть, что наш Scrum не совсем каноничен.

Клиентов несколько и как следствие перевернутая постановка целей.

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

Затем эти соглашения по PBR превращаются в задачи, соответствующие определению готовности, и добавляются в бэклог.

Затем, учитывая возможности команды, формируется объём спринта.

Только после этого возникает цель на ближайшие две недели.

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

Про некоторые спринты мы говорим, что возвращаемся к старым проектам («Вьетнамские флешбеки»), в некоторых решили работать над качеством и выполнять задачи в соответствии с DoD («кафе в DoD»).

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

Цель часто отражает текущие внутренние процессы.

Пример одного из них — торможение качественной работы.

В конце мая мы заметили: мы берём в спринт всё больше и больше стори-пойнтов, но завершаем всё меньше.

Сначала мне не хотелось в это верить.

Потом перегрузка стала ощущаться очень сильно.

Мы проанализировали содержание работы и поняли, что задачи были выполнены в минимально формальной степени – «пока прошла рецензия».

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

Процесс оказался медленным.

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

Сейчас мы понимаем, что это решение было правильным.

Фокус на качестве был восстановлен, и команда начала увеличивать объемы.

Если в проблемных спринтах мы брали 35-40 стори-пойнтов и делали 20 с четырьмя людьми, то теперь 8 сп на человека чувствуют себя вполне комфортно.





О лидерстве

На старте мы с командой обсуждали руководство командой — важно было, чтобы был один «ответственный» человек, который мог бы руководить командой.

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

Мы стартовали без лидеров: они возникли естественным путем.

Модель ситуационного лидерства более гибкая, поэтому она нам подошла.

Каждый несет ответственность за что-то свое.

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

У нас тоже есть специалист по этому вопросу! :) При этом команда остаётся основной.

Лучше всего это можно увидеть при приеме на работу.

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

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

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

После этого было решено провести собеседование с кандидатами всей командой.

Однако так, конечно, будет не всегда.

Недавно нанял разработчика Python и специалиста по DS. Представление о том, какие люди нам нужны, постепенно синхронизируется внутри команды.

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

Однако основное свойство универсальности, скорее всего, сохранится.





Что актуально сейчас

В последнее время работа с OKR стала привлекать все больше внимания.

Мы отсортировали цели по их важности для клиентов и удалили неважные.

Да и сами цели были реструктурированы.

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

В них мы исправляем редкие ошибки и иногда добавляем небольшие функции.

К сожалению, в блоках R&D цели по-прежнему выглядят как задачи, а список результатов — как список дел.

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

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

Процесс генерации идей, кстати, тоже привлекает внимание.

В DS очень много исследовательской работы, и она требует отдельного размышления о том, как упаковать ее в бэклог.

С одной стороны, по канонам Scrum, задачи в бэклоге должны быть понятны всем, а результат — предсказуем.

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

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

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

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

Пришлось изучить вопрос глубже.

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

Или, например, нужно было переобучить BERT на очередную задачу предсказания предложения, а корпус почти полностью состоял из сообщений в одном предложении.

В результате мне пришлось погрузиться в BERT'ологию и преподавать TSDAE. Та самая магия встречи, когда из пятнадцатиминутного разговора у кофемашины рождается целое направление, немного потускнела, и мне хочется ее как-то поддержать.

Однако это дело будущего.

Пожалуй, это та тема, о которой можно будет написать через год. Теги: #Машинное обучение #Управление разработкой #Управление проектами #машинное обучение #машина+обучение #карьера в ней #agile #scrum #самоорганизация #NSM #HRTech

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2011-04-18 16:24:53
Баллов опыта: 501
Всего постов на сайте: 1
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.