Для чего мы нарезаем крупные пользовательские истории на более мелкие? С виду может показаться, что мы выполняем лишнюю и никому не нужную работу, но так ли это? В этой статье я постараюсь дать ответ на этот в одном из множества контекстов — контексте ценности, поставляемой клиенту и бизнесу.
Хорошие пользовательские истории следуют правилам, описанным Биллом Вейком (William C. Wake), которые мы все знаем как аббревиатуру INVEST:
- a nice place to visit russell baker thesis
essay questions on the league of nations
https://www.getthereatx.com/capstone/achievement-essay/7/
see url
sports day essay for class 3
where can i buy viagra in edinburgh
http://kell.indstate.edu/chapter/essay-247-michigan/51/
click here
how do i make a new mail folder on my iphone
solution
https://tui.net/cause/free-essays-about-the-american-dream/69/
https://www.aestheticscienceinstitute.edu/medical/duracion-erecciones-viagra/100/
cheap university essay ghostwriter services for masters
quantitative research proposal
economic status of india essays
how to title an essay on lying
5mg of cialis daily
drawing of someone doing homework
argumentive essay examples
https://revivemedicalny.com/citrate/how-much-is-viagra-from-canada/8/
https://blog.abatoliba.edu/spinola-primaria/how-long-does-a-half-a-tab-of-viagra-last/10/
further education essay
carl jung personality theory essay
your travel experience essay
an essay plan
https://sfiec.edu/pdf/?docx=essay-for-pharmacy-school-examples
http://kell.indstate.edu/chapter/essay-bhaiya-dooj-hindi/51/
help writting a paper about first aid
sildalis sildenafil tadalafil 120 mg
allegra tv manual
how did medical assistant program help to get into nursing
essay letter pmr
Independent (независимая)
Историю можно реализовать отдельно от других историй и она при этом будет нести ценность. Приятный бонус — независимые истории проще планировать. - Negotiable (обсуждаемая)
История — не детальное, подписанное ТЗ. Все детали в начале не нужны и могут быть добавлены позже, как результат сотрудничества с Клиентами и заинтересованными лицами. - Valuable (полезная, несущая ценность)
Истории должны быть полезны для бизнеса и для клиента. Не для разработчиков, тестировщиков и админов. - Estimable (поддающаяся оценке)
Истории используются для планирования спринтов и релизов. Свойство оцениваемости можно рассматривать как функцию от понятности, появляющейся в процессе обсуждения и от компактности, ведь меньший объем работы проще понять и оценить. - Small (компактная)
Не более, чем на спринт. Хорошо, если в 2-недельный спринт можно взять 5-10 историй. И динамику видно и, если не успеем последнюю (с самым низким приоритетом), то 9 в продукт все равно войдут. Если же в спринте одна история и команда не смогла, то команда не смогла спринт целиком. - Testable (можно проверить)
Если историю можно проверить, значит можно сказать, что история выполнена.
Для ответа на главный вопрос статьи следует копнуть в компактность и полезность. Требование к компактности заставляет нас декомпозировать крупные истории. Получившиеся в результате декомпозиции истории точно так же должны удовлетворять требованиям INVEST, то есть ценностность для них никто не отменяет.
Новички нередко начинают нарезать истории по слоям: интерфейс, база данных, шина, компонент авторизации, журналирование. Такие истории действительно компактные, но не независимые и их ценность вызывает серьезные сомнения. Иногда на первых сессиях по составлению историй члены команды впервые узнают, кто их настоящие клиенты, что им нужно и что добавление в таблицу новой колонки «номер купона», реализация сервиса и добавление текстового поля на страницу не то же самое, что «получение скидки на участие в конференции» 🙂
И раз речь зашла про ценность, пусть у вас есть история на три спринта с высокой ценностью. Начинаем нарезать и в обсуждении выясняем, что основную ценность несет совсем небольшая, INVEST-like часть. Бинго! Мы сократили сроки, оставив уровень ценности для бизнеса и клиента на высоком уровне.
Теперь на примере. Дано:
- Большая история «Я, как клиент банка, могу перевести средства со своего счета другому клиенту Банка…»
- Какие-то еще истории с приоритетом пониже
- Скорость команды примем 100 Story Point’ов (SP) в спринт
- Критериями оценки ценности можно пренебречь
Если мы будем выполнять задачи в указанном порядке, то в первый спринт, если не случится неожиданностей, мы поставим 100 единиц ценности, во второй еще 100. Но история нам видится большой и мы решаем нарезать ее на более мелкие:
Выходит, что мы заложили много всего разного, что можно разнести по независимым историям и основную ценность сейчас нам принесет перевод по номеру счета. Остальное важно и нужно, но можно отложить. Перетряхиваем бэклог и получаем:
Теперь в первый спринт мы поставим 190 единиц ценности, во второй еще сколько-то, но суть в том, что мы за счет только лишь декомпозиции истории в первый спринт принесем ценности столько же, сколько нам принесли бы два спринта, следуй мы первоначальному плану. Поэтому, старайтесь нарезать, держите INVEST в уме и сокращайте время вывода изменений на рынок, увеличивая при этом ценность.
Ниже несколько полезных ссылок по теме:
INVEST in Good Stories, and SMART Tasks — описание INVEST
Patterns for Splitting User Stories — не потерявшая своей актуальности статья 2009-го года от Ричарда Лоуренса
Как разделять истории пользоватей — четкий и понятный алгоритм действий