https://habrahabr.ru/company/alfa/blog/344240/- Управление продуктом
- ReactJS
- JavaScript
- Agile
- Блог компании «Альфа-Банк»
Привет! Меня зовут Стас, я Product Owner команды «Welcome Aboard». Мы делаем удобный продукт для соискателей, желающих устроиться работать в Альфа-Банк.
Зачем нужен этот продукт? Чтобы сделать процесс общения кандидатов с банком приятнее и эффективнее на каждом шаге. Кроме того, это неслабо экономит время нашим рекрутерам, а довольный рекрутер – это всегда хорошо.
Сейчас мы сосредоточились на электронной анкете соискателя. В ней более 50-ти полей, она разделена на 6 шагов и работает на любом устройстве.
Под катом я расскажу о составе команды, используемых нами решениях и о том, зачем нам в команде картонный мужик.
Команда
- Станислав Семин (да, это я) – product owner, дизайнер
- Артем Гринько – Java-разработчик и аналитик.
- Таня Трифильцева – scrum-master
- Картонный мужик (мы ласково зовём его Игорь) – frontend
Продукт мы делаем по методологии Scrum и Agile. Все решения по продукту (как он будет выглядеть, какие будут функции, как мы его продвигаем и позиционируем, в общем, на самом деле всё) – принимаются только внутри команды, самостоятельно. Рабочий процесс строится на недельных спринтах.
Началось всё это около года назад, зимой. Тогда Chief Employee Officer Саша Аверин поверил в мою идею и помог найти стартовый бюджет. Уже летом, в июне, я смог оставить работу дизайнера, потому что Иван
Rockbee Васильев отпустил таки меня в продакты, и завертелось.
Месяцем спустя, в июле, в команде появились frontend- и java-разработчики.
MVP был готов в сентябре, но так как мы все-таки Банк и у нас есть ребята из службы безопасности, на пользователей мы это выкатили только в октябре.
А теперь – дневник одного недельного спринта в нашей команде.
Понедельник
Планинг
Это начало любой недели. И я не только про понедельник – я про планинг. На планинге мы берём в разработку задачи, нагрумленные нами на прошлой неделе. Что такое грумиг – будет уточнено в главе “Четверг”, но если что – мы не стрижем собак. По крайней мере, на работе.
Кроме этого, в понедельник устанавливается цель спринта, это важно. Поэтому обязательно.
Что такое цель спринта? Это ценность, которую мы донесем до наших пользователей по итогам недели разработки. Для текущего спринта эта “Дать возможность соискателю удобно указывать в анкете свои прошлые ФИО, если он их менял”.
Стендап
Проводится в понедельник после планининга и потом каждый день. Занимает минут 15. На стендапе быстро определяем, кто и что именно будет делать сегодня (каждый сам для себя).
Product Owner
Потом я как оунер провел две встречи со стейкхолдерами (по полчаса), сходил на обучение (2 часа). Повстречался с рекрутерами и назначил встречу с безопасниками о вводе новой фичи.
Как дизайнер сегодня не сделал ничего )
Frontend
Он где-то отдыхает, а мы его ищем! Он веселый и умеет решать проблемы и, конечно, лучше всех знает React. Кстати, вот
вакансия — вопросы давайте в личку.
Пока вместо фронтендера у нас картонный мужик. Мы зовём его Игорь.
Баг
С утра наш сервак начал перезагружаться каждый час, образовывалась недоступность сервиса. Тёма нашел возможную причину и исправил ее, поигравшись с параметрами нашего облачного сервиса (облако внутри инфраструктуры Банка). Ждём завтрашнего утра.
Java
Сегодня после починки сервака Тёма начал брать таски уже из цели спринта.
Вторник
Баг
Похоже, вчерашний баг поправлен. Сервак больше не перезагружается. Тёма сегодня добавлял новые красивые графики на Кибану, чтобы мониторить подозрительные активности наших микросервисов и выявлять баги. Каждый такой случай фиксируется, тестируется и устраняется, делая систему всё более отказоустойчивой.
Java
Тёма добавил на сервере логику обработки нескольких ФИО. Если я как соискатель менял свои ФИО, то я могу ввести старые на фронте, затем они после дешифровки преобразовываются микросервисом под требования принимающей системы и пушатся в базейку. Оказывается, наши кандидаты нередко меняют ФИО, даже по несколько раз.
Был Петя — стал Маша. Количество таких кейсов поистине огромно :-)
Отпуск
Отпуууууск! Мы сегодня поняли / вспомнили / смирились с тем фактом, что Артём идет в отпуск с понедельника на 2 недели. Система SAP, в которой мы согласуем отпуска и многое другое (никакой бумаги!), любезно напомнила ему об этом. Единственный программист нашей команды (не считая картонного frontend) будет недоступен 2 недели, а десятки людей уже пользуются сервисом ежедневно. Хороший сервис не должен падать! В общем, завтра Тёма будет учить меня админить наш кластер и реанимировать его, если что. В смысле, сервер.
Frontend
Игорь (да, да, картонный фронтенд) почему-то не согласился кодить на Java без Темы. Ну и ладно, у него полно интересной работы и так. Накопился большой бэклог сложных доработок логики на фронте. Спасибо неравнодушным юзерам. Например, сейчас многие пользователи ошибаются в указании своего опыта работы в анкете, часто указывают не все места, а нам нужны за 5 лет. Соответственно, необходимо показывать юзеру виджет, который по мере заполнения опыта работы подсчитывал бы общий стаж и показывал, нужно ли еще указать места, или уже хватит.
Ну и, собственно, задача этого спринта — запилить возможность добавлять/удалять карточки со значениями прошлых ФИО. Хотели бы поработать с такими задачками и крутой библиотекой компонентов для React?
Вакансия. Кстати, библиотека у нас открытая —
alfa-laboratory.github.io/arui-feather/styleguide
Приходи к нам фронтом! Игорь так-то неплохой чувак, но немного напрягает, что он не смеется над нашими шутками. И явно преувеличил про свой навык “Коммуникабельность” в резюме.
Product Owner
Сегодня необычно рано начался день для меня, был в 8:30 в офисе (обычно приезжаю к 10). Провел пару встреч с пользователями (прокапываю следующие userstory на 2018 год), было продуктивно.
Потом стендап. Затем поправил тексты писем для автоматической рассылки нашим сервисом рекрутерам. Заверстал их в html. Верстаю, кстати, в Atom. После — короткая встреча по поводу оптимизации некоторых процессов, скука, но надо.
Потом фасилитировал двухчасовой канбан для продактов в HR. На всех у нас больше 20-ти цифровых продуктов, так что было жарко. Доску также ведем в Trello. Цель мероприятия — быть всем в теме, кто и где что делает, чтобы переиспользовать и не делать лишнюю работу. Мероприятие окупилось с лихвой. Нашли несколько важных пересечений. Проводим раз в 2 недели. Затем приехал в другой офис. Общение с командой. И вот уже 20:37.
Эвакуация
Сегодня телефонный терроризм дошел и до Альфы. Кто-то (а это всегда нехороший человек) позвонил и сказал, что все заминировано, не уточнив, что именно. В итоге эвакуировали отделения и почти все офисы Альфы в Москве. Я в это время перемещался между ними, поэтому меня не коснулось. Но вообще помешало работе коллег.
Верим в цель спринта
У нашей команды есть полезная привычка каждый день на стендапе отвечать на вопрос «Верим ли мы в цель спринта?». Верим. Пока все по плану. Это значит, что мы верим в то, что цель спринта будет выполнена, и на демо в пятницу мы покажем нашим пользователям обновления.
Среда
Целевая аудитория
Основная — соискатели, вторичная — рекрутеры и руководители. Чёткая расстановка приоритетов сильно помогает в работе. Например, когда нужно улучшить какой-то процесс, в котором участвуют обе ЦА, мы всегда сначала придумывем решение для соискателей. Запиливаем. Измеряем, удалось ли улучшить. Если все ок, тогда думаем, как этот же процесс упростить уже для рекрутеров. Такой принцип помогает нам умещать объемные юзерстори в недельный спринт, быстро подтверждать или опровергать гипотезы и, в итоге, постоянно выкатывать улучшения для пользователей. Также экономит кучу времени PO на приоритизацию.
Доверие
Нам повезло. Наши стейкхолдеры доверяют нашей команде и не ставят нам задачи. Мы лучше всех в Банке знаем проблемы, с которыми сталкиваются наши соискатели. На основе этого знания, а также возможностей команды на данный момент, мы сами выстраиваем свои приоритеты и берём задачи в работу.
Исследования
При запуске стартапа я провел более 25 глубинных интервью с соискателями, новыми сотрудниками, теми, кто отказал нам и теми, кому отказали мы. На интервью мы, в буквальном смысле, проходили заново весь процесс трудоустройства с кандидатом. Выясняли какие действия он предпринимал и что при этом чувствовал… Оказалось, я собирался делать вообще не нужный продукт!
Признать ошибки
В изначальной идее стартапа, которую я презентовал ТОП-менеджерам банка, и на реализацию которой мне дали денег, я планировал решить проблемы соискателей, сделав симпатичный продукт, где они бы смогли видеть, в каком статусе трудоустройства сейчас находятся и что предстоит дальше. А руководитель и рекрутер видели бы дашборд со своими соискателями и красивыми циферками, чтобы понимать в каждый момент времени, на какой стадии кто находится.
Когда денег дали, в первую неделю работы в стартапе я поговорил с нашим исследователем Maria Goncharova и понял, что неплохо было бы провести custdev (спасибо, Маша!!!) и проверить свои предположения относительно проблем пользователей.
Так вот, после того, как я провел глубинные интервью и составил Customer Journey Map соискателя (кстати, делал просто в Exсel, что намного удобнее красивых сторонних сервисов), оказалось, что у кандидатов болит вообще не то. Было крайне обидно. Видение продукта пришлось пересмотреть. Scrum. Теперь я провожу интервью каждую неделю.
Анкета кандидата
Собственно, теперь вы должны догадаться, почему мы делаем именно электронную анкету соискателя и еще много чего за пределами digital-продукта. Правильно, потому что клиенту виднее, что у него болит, нужно только уметь спросить его правильно.
Шахматы и теннис
У нас два командных вида спорта. Тёма всегда выигрывал в шахматы, я в настольный теннис. Но, что интересно, после 4-х месяцев совместной работы мы оба заметно продвинулись и теперь стали друг для друга интересными соперниками. Мы учимся друг у друга. Это — инженерные практики.
Frontend
Тёма с Игорем (да-да, он очень помогает в работе и приятен в общении) сегодня переделали первый шаг анкеты на фронтенде. У нас настроена непрерывная интеграция с помощью Jenkins, поэтому обновления быстро докатятся до боя. Очень экономит время. Освободившись, ребята сыграли три блиц-партии в шахматы, и все три Игорь слил в дебюте.
Тёме не очень нравится сражаться со слабым соперником. Кажется, нам нужен новый, более опытный frontend.
Четверг
Утро
Artem Grinko пришел необычно взволнованным и сразу побежал к компу. Это насторожило. Не зря.
Сработала система оповещения о сбоях — deadlock в базе… Ничего серьёзного, как оказалось. Придумали решение, попивая кофе.
А ещё Тёма сегодня общался с коллегами из блока безопасности по jabber (телефон у него в другом офисе стоит) по вопросу авторизации hr-ов из регионов в рамках нашей интеграции с их системой. Получилось договориться и модифицировать наш микросервис на Spring Boot за 15 минут! Теперь нам ничего не мешает нести ценность пользователям в бОльшее число регионов.
Груминг (ага)
На фото еженедельное мероприятие Scrum-команд — груминг. На нём мы решаем, как именно будем доставлять ценность пользователям в следующих спринтах.
То есть, дробим userstory на маленькие задачи. Причем каждый член команды разработки сам решает, как ему лучше. Например, userstory: «Я как соискатель хочу прямо в анкете прикрепить фото своего паспорта» раздробилась на 11 задачек для фронта, мидла и дизайнера.
На груминге используем стикеры, которые потом Scrum-мастер переводит в электронные таски в trello.
Scrum-мастер
Меня тут спрашивали — как так получилось, что у такой маленькой команды есть собственный (хоть и на 1/4 ставки) Scrum-мастер. А вот абсолютно по собственной инициативе. Таня работала рекрутером, захотела развиваться в качестве скрама и предложила помогать нам как стартапу настраивать процессы. Внеурочно.
Мне понравилась идея, и мы вместе уже почти 3 месяца. Сейчас Таня перешла на новую должность со сложным названием и помогает с процессами уже целой группе команд.
Таня молодец.
Твоя команда
Это особая часть работы Product Owner, отнимающая достаточно времени и энергии. Ведь подбор команды, её вдохновение и результативность — это именно ответственность PO.
Раньше я этого не понимал, и думал, что мне кто-то должен предоставить готовую к работе такую хорошенькую дружную команду с румяными щёчками. Нет. Команду нужно создать и это требует очень много энергии. Поверьте.
У нас в стартапе одно простое правило — технике можно научить, а вот близости по духу – нет. Стартапу нужны мечтатели, немного авантюристы. Мы должны уметь пускать деньги на ветер, а с другой стороны – считать каждую копейку, верить в безумные идеи, но отлично понимать, как мы это сделаем.
Аналитик
А я не говорил? Мы ищем системного аналитика. Что? Нет, не Игоря. Так вот, сегодня было второе собеседование с… не буду раскрывать имён.
А вообще уже два месяца мы собеседуем аналитиков, и до сих пор не нашли достойного. Либо ребята вообще без опыта и логики в голове, либо заскорузлые водопадные специалисты с хорошим 20-летним стажем, но не вписывающиеся в команду стартапа. У нас нет особых требований.
Главное, чтобы человек в команду вписался, логически мыслил, разбирался в базах данных ну и был бы в меру занудным (очень нужно для написания технической документации).
Пятница
Бургеры
Да, мы не хипстеры с бородами, вейпами и смузи. Но бургеры любим, особенно когда удачно закрыли спринт.
Цель спринта
Она выполнена. Новые функции по добавлению прошлых (до 10 шт.) комбинаций ФИО — в бою. Есть ощущение, что мы немного переоценили сложность задачи, но немудрено, ведь она, в основном, фронтовая, а Игорь не очень разговорчив в последнее время. В итоге пофиксили ещё пару долгов по коду.
Демо
Каждую пятницу мы проводим демо. На нём мы демонстрируем пользователям и стейкхолдерам всё, что сделали за текущий спринт. Делаем это именно показывая интерфейс, а не картинки и даже не скринкаст. По итогам демо мы получаем очень ценную обратную связь от наших пользователей, записываем все проблемы, с которыми они столкнулись, чтобы потом, структурировать их и добавить в бэклог.
Не протестировали
Наши пользователи, заполняя анкету, должны указать ФИО своих родителей. При этом возникают интересные кейсы, когда, например, с точки зрения закона отец у человека один, а на самом деле папой он считает совсем другого человека.
Нам нужно получить информацию с точки зрения закона. Такая «законная» информация точно содержится в свидетельстве о твоём рождении, где указаны данные отца и матери. Мы придумали гениальное решение — в комментарии к полю указать, «Мать. Данные, как в свидетельстве о рождении»… НЕ ПРОТЕСТИРОВАЛИ и быстренько запилили!
Как вы думаете что нам стали отсылать 80 % пользователей? Правильно, девичью фамилию матери.
Мы думали про свидетельство заполняющего, а пользователи восприняли, как свидетельство матери. И были правы.
Вывод — даже самые понятные команде решения (в т.ч. копирайт) необходимо тестировать на пользователях.
Итого
В общем, как-то так и живем.
Кстати, если вдруг у кого-то из вас есть уверенность, что получится прийти на собеседование и уделать картонного Игоря в плане технических навыков (или хотя бы в шахматы обыграть) –
приходите.
И да, если у вас есть вопросы насчет того, каково вообще работать в цифровом подразделении банка, насколько тут приживается Agile и Scrum, как мы строим команды и прочее – буду рад на них ответить.