Розбиття користувальницьких історій – метод гамбургера

Пропоную вашій увазі переклад невеликої статті Гойко Аджича на тему поділу користувальницьких історій від 2012 року, з ілюстраціями та прикладами автора: "Splitting User Stories: The Hamburger Method" — зробив його, в першу чергу, для себе.

Проблематика: Історія занадто велика і процес розбиття та оцінки дуже складний; бізнес-користувачів не влаштовує жоден варіант розбивки, запропонований командою розробки; команда не має достатнього досвіду і використовує тільки технічний поділ історій; запущений новий проект і у команди не виходить сформулювати досить прості користувальницькі історії.

Рішення: Метод гамбургера

image

Протягом останніх кількох місяців я розробив нову техніку розбиття користувальницьких історій, безсовісно вкравши переглянувши і використавши метод складання користувальницьких історій Джеффа Паттона і ідеї, описані Крейгом Ларманом і Басом Водде в Практиках масштабування Lean і Agile-розробки. Я думаю, що ця техніка особливо добре працює в ситуаціях, коли команда не може зруйнувати традицію технічного поділу завдань на історії. У неї є візуальний ігровий аспект, як в Інноваційних іграх, і її просто запам'ятати. Я називаю її Юзер Сторі-Гамбургер.

Недосвідчені команди часто не можуть зрозуміти, яким чином потрібно розбивати користувальницькі історії, зберігаючи при цьому бізнес-цінність, і замість цього вперто розбивають історії на технічні завдання і компоненти. Мені подобається ідея Карти користувача історій, яка відображає загальну картину, розбиту згідно з бізнес-процесами. Ми можемо робити те ж саме на більш низькому рівні, для завдань, складових власну історію, тим самим не виводячи команду із зони комфорту. У цьому випадку ми розбиваємо історію для визначення різних рівнів якості для кожної ітерації і створюємо вертикальні зрізи для визначення критеріїв випускається функціоналу. Нижче – про те, як скласти гамбургер.

КРОК 1: Визначення завдань шарів гамбургера

image

Команді необхідно визначити технічні етапи верхнього рівня, які будуть присутні в реалізації історії. На даній стадії розбиття на технічні завдання компоненти – це нормально. Такі завдання стають шарами в гамбургері – м'ясом, салатом, помідорами, сиром – можна додати трошки бекону для кращого смаку.

Наприклад, якщо ми працюємо над історією, сенс якої полягає у встановленні зв'язку з неактивними клієнтами по електронній пошті, то етапи можуть бути наступними: вибірка неактивних клієнтів з бази даних; надсилання листів по даній вибірці; отримання звіту про доставку; видалення некоректних контактів; маркування успішних контактів.

КРОК 2: Визначення різних способів реалізації завдань

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

Наприклад, швидкість виконання і точність результатів можуть бути показниками якості вибірки неактивних клієнтів з бази даних. В цьому випадку є два шляхи – підготувати повільний і щодо неточний запит з усієї бази, або ж готувати вибірки на базі щодобових транзакцій, не відображають внутрішньоденні зміни. Ще одним способом збільшити точність буде запуск нічний завдання, присваивающей ознака активності, і видаляти ознака активності для кожної виконаної транзакції, що дозволить нам досягти більшої точності та виконувати завдання швидше. Перший варіант буде працювати тільки в разі щомісячної відправлення листів, другий варіант підійде без обмежень.

Інший приклад – це обсяг рассылаемой пошти, персоналізація контенту та захист від попадання в анти-спам-фільтри. Перша опція – повільна і малопродуктивна ручна розсилка. Друга – автоматична розсилка неперсоналізованих листів з можливістю ручного відписки. Третій шлях – це авторассилка персоналізованих листів, але з ручною відпискою. Четвертий – персоналізована авторассилка з автоотпиской. І ще однією опцією може бути інтеграція зі стороннім сервісом, який передбачає всі описані можливості.

КРОК 3: Об'єднання результатів

image

Об'єднайте отриману інформацію в загальний гамбургер на дошці. Нехай представники кожної групи вклеїли свої стікери в потрібні місця всередині гамбургера, коротко описуючи подаються опції. Видаліть з дошки дублюючі наклейки. Збудуйте стікери зліва направо, ґрунтуючись на зростанні рівня якості.

КРОК 4: Обріжте гамбургер

image

Пройдіться всією командою за знайденим опцій, порівняйте їх між собою, ґрунтуючись на складності реалізації, і відзначте складність кожної опції на стікері. Можна згрупувати задачі за розміром для легкості порівняння. Подумайте над тим, які опції більш низької якості можна викинути, залишивши при цьому варіанти, приблизно рівні за обсягом, але вищої якості.

Також необхідно визначитися з максимально необхідним рівнем якості для кожної задачі. Наприклад, реалізація процесу видалення некоректних url-адрес у риалтайме не буде набагато більш цінною опцією, ніж нічна завдання з видалення цих адрес. Винесіть стікери з опціями, які перевищують максимальний рівень якості, за межі гамбургера – це те, що залишиться після того, як ви з'їсте» гамбургер.

КРОК 5: Зробіть перший укус

image

Тепер, коли гамбургер готовий, вирішите, наскільки великий шматок ви готові відкусити. Визначтеся з мінімально прийнятним рівнем якості для кожного шару гамбургера. Наприклад, будемо вважати ручну розсилку неприйнятною з огляду на низьку ефективність, але щомісячне може бути цілком прийнятною. Якщо варіант з меншим рівнем якості є більш-менш близьким до опції вищої якості по складності реалізації, тоді вам варто відкусити відразу шматок побільше. Наприклад, реалізація авторассилкі неперсоналізованих листів з ручною відпискою не буде набагато більш складною, ніж інтеграція з MailChimp. Зворотний приклад – оновлення клієнтської активності в реальному часі може виявитися більш трудомістким, ніж повільний запит з бази на вимогу. А для деяких етапів, наприклад, для завдання з видалення некоректних адрес, відсутність реалізації вже може бути мінімальною вимогою.

КРОК 6: Відкусіть ще раз… і продовжуйте

Надалі кожен новий «укус» гамбургера повинен забезпечувати більш високу якість – наприклад, навіть найпростіша реалиация видалення некоректних адрес підвищує якість, так само, як і більш часта розсилка. Завжди порівнюйте складність реалізації можливих варіантів перед тим, як визначити величину «відкушеного» шматка гамбургера.

Цей метод непогано працює в першу чергу завдяки тому, що він достатньо візуальна, і це допомагає команді обдумувати альтернативні шляхи, залишаючись у своїй зоні комфорту. Також добре працює аналогія з «відкушуванням» гамбургера. Користуючись цим методом, ви можете досить легко пояснити, чому реалізація окремого компонента в рамках історії не має сенсу, адже зазвичай люди не вибирають з гамбургера тільки салат. Принаймні, поки вони голодні.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.