ЛАФ - Требования в АГИЛ для сложного сервиса (теория)

Требования в АГИЛ для сложного сервиса (теория)


Генеральный спонсор
Организатор
Партнёры
Доклад (40 минут)

Сергей Нужненко

Конференция: ЛАФ-2021
Что такое АГИЛ - это Agile, когда есть нюанс (как в анекдоте), а то и несколько. То есть, когда итерации короткие, требования изменчивые, команды самоорганизованы в бандитские шайки из-за тупого и ленивого менеджмента, а вот всё остальное - как придётся.
Всё то же самое применимо и в Agile, но там есть Agile Coach, который обязательно внедрит SAFe, LeSS и много других страшных слов.

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

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

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

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

Я покажу быстрые, грязные и дешевые инструменты визуализации, выявления и анализа требований для таких ситуаций.
Среди них:
- Бизнес канвас
- Карты и эскизы процессов
- Двумерный мапинг историй
- Карты влияния (Impact mapping)
- Изображение системного ландшафта и архитектуры в стиле 4Context
- CQRS и другие паттерны, дополняющие и заменяющие CRUD+
- Сценарии или диаграммы взаимодействия для систем и компонентов

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