Нещадный story php title. Что за User Story? Структура пользовательской истории

Разработка, основанная на поведении (Behaviour-driven development, BDD) - это одна из методологий разработки программного обеспечения по стратегии "снаружи-вовнутрь". Она берёт своё начало извне команды разработки, отталкиваясь от определения бизнес-целей заказчика, а затем углубляется до проработки набора функций(feature), которые позволят достичь заданных бизнес-целей. Каждая функция фиксируется как "пользовательская история", в которой задаются границы этой функции с помощью критериев приёмки. В этой статье описывается подход BDD по формулировке пользовательских историй и идентификации их критериев приёмки.

В красном вертикальном серебряном льве, держащем в своих передних лапах серебряный высокий крест. Серебряный лев красного цвета происходит от герба графов Диллингена. Поэтому лев несет крест в лапах, что также рассматривается как свидетельство исторических отношений с монастырем Визенштайг. Герб был подписан правительством штата.

Флаг: бело-красный. Основные нагрузки составит 47 фл. В деньгах и 913 фл. Мартин наверху, школьный дом подключен к ратуше. Сохранение церкви - это забота об основах, нагрузка на здание приятеля имеет состояние. Вебер Кастлер в настоящее время также занимается незначительной торговлей холстом.

Введение


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

Обычно бизнес-цели слишком укрупнённые, чтобы их можно было использовать непосредственно для написания ПО (как вы начнёте разработку, если бизнес-цель звучит так: "сократить на 5% мои операционные затраты" ?), поэтому нам нужно определить требования на каком-то промежуточном уровне, чтобы сделать свою чёрную программистскую работу.

В "Дано" должен быть описан полностью весь контекст, но не более того

Также знаковая индустрия и пивная пивоварня на месте. Людвиг дал «Байеру» Штифт Визенштайг, который оставался в его распоряжении до его распада. Десятина, как отмечалось выше, были разделены, старые слова. На горе против Раммингена, на юго-востоке, вырыто много желтого песка. Песок, как осадок длинносохнутой воды, можно найти на юго-западе и юго-востоке от Гриммерфингена не несущественной толщины. Она состоит из горошины до лесного ореха зерен кварца, и может, как намыв будет рассмотрена брусчатка Верхней Швабии одновременно сделали.

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

Кроме того, на поселковой дороге обосновались предприятия. Сообщество связано уездными дорогами с местным движением. Ледяная северная часть озеленена ником Лоннеталов, который образует границу. В Сандберге на юго-востоке есть остатки третичного над белой юркой.

Кстати, Белая юра в значительной степени покрыта суглинистым Альбубердекунгом. Местность и поселение: Деревня расположена на плоском южном склоне Флахенальба. Кроме того, с тех пор свойство. Приход поставлен сегодня из Афельфингена. Патрональный праздник: Санкт-Мартин или Санкт-Ульрих.

Собственно, для этого и предназначены "Пользовательские истории". Они должны быть описанием требований и коммерческой ценности от их реализации, а также набором критериев, по которым мы все будем оценивать конечный результат. Это более строгое определение, чем в других гибких (Agile) методологиях, где это в разных случаях определяется как "договоренность по понятиям" (promise of a conversation) или "описание функции". Пользовательская история в нотации BDD может с лёгкостью описывать нефункциональные требования, при этом объём работ по такому описанию может быть зафиксирован, осмечен и согласован.

Укрепленная церковь, состоящая из приходской церкви Св. Ульриха и остатков прежней крепости. Западная башня на квадратном плане, предположительно. В государственном архиве содержится около 15 различных документов о публикациях Оллингена или где упоминается.

Участвовал: Генрих; Марглав Бургау. Участвовал: Ульрих; Граф фон Хелфенштайн. С этой целью монастырь должен пережить его память в трапезной после его смерти на его ежегодном и последующие дни 2 повозки вина. Участники: Отто; от горы, рыцарь. Бишоф Вальтер Аугсбург вновь подтвердил торжественно завершаются им и его братья основания монастыря Анхаузен при перечислении тех же льгот, предоставленных и многочисленных владений.

Структура пользовательской истории

BDD регламентирует структуру пользовательской истории. Это не жёсткое регламентирование - вы можете использовать другой формат пользовательской истории и при этом всё равно оставаться в рамках BDD, но я представляю свой формат, поскольку он был проверен на практике: для самых различных проектов и по размеру, и по своей сути. В конечном итоге, ваша пользовательская история должна содержать все элементы, представленные в шаблоне. Шаблон пользовательской истории выглядит так:
Английский вариант Локализованный вариант
Title (one line describing the story)

As a

Кроме того, мы также находим список граждан Оллингера, которые эмигрировали. В Тюбингенских географических исследованиях в номере 58 специальный том. Оллинген, Ульм. Будь то в развитии деревни, две часовенки Святой Екатерины, которые больше не могут быть расположены точно, используются в качестве вторичных поселений, т.е. как места периферийного сельского хозяйства и Селдена, сыграли свою роль, не могут сказать, что уровень знаний сейчас. На его западном склоне лежит Оллинген.

Заголовок должен описывать действие

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

I want

So tha t

Acceptance Criteria: (presented as Scenarios)

Scenario 1 : Title

Given

And ...

When

Then

And ...

Scenario 2 : ...

Заголовок (описание истории в одну строку)

Формулировка истории:

Я как [роль]

Хочу [функционал]

Для того чтобы [выгода]

Критерии приёмки: (описываются сценариями)

Здесь сохранился очень старый бывший Селде. К дополнениям и конверсиям Хакенхоф возник из старой фермы. На окраине Лангенау следуют еще фермы и дома с рубежа веков. На юге и востоке появились после того, как Ам Тюльпенвег следует за первоначально старым сельскохозяйственным имуществом, а также бывшим. Известные здания. - Оллинген - деревня кучи, в которой в основном доминируют сельскохозяйственные здания, центр юго-востока присоединяется к области развития. В высшей северной части села находится в высокой стене обусловленности кладбища эв.

Сценарий 1 : Заголовок

Дано [контекст]

И [ещё немного контекста]...

Когда [событие]

Тогда [результат]

И [ещё один результат]...

Сценарий 2 : ...

Рассказывая пользовательскую историю

Пользовательская история должна быть результатом общения нескольких задействованных в процессе людей. Бизнес-аналитик общается с владельцем бизнеса о функционале либо требовании, и помогает ему преобразовать его видение в формат формулировки пользовательской истории (Я как [роль] хочу [функция] для того чтобы [выгода]). Затем тестировщик помогает определить граничные условия пользовательской истории - в форме критериев приёмки,определяя какие сценарии более подходят для этого, а какие менее важные. Технический специалист сможет в первом приближении оценить объём работы для реализации пользовательской истории и предложить различные подходы по реализации. Прекрасные идеи, воплотившиеся в программные системы, возникают не только в голове разработчиков, но в голове заказчиков, которые требует первостепенной их реализации.

Это весьма вероятно будет итеративный процесс. У человека из бизнеса рождается идея, но он обычно не имеет представления о трудозатратах на её реализацию, или как это вообще можно реализовать. С помощью технических специалистов и экспертов по тестированию заказчик получает представление о соотношении стоимость/выгода по каждому сценарию и поэтому может принять решение "стоит ли овчинка выделки". Конечно, на другой стороне весов лежат остальные требования: что лучше - более тщательно проработать критерии приемки (сценарии) по текущей истории, либо перейти уже к следующей?

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

Сценарий должен быть описан в терминах: Дано, События, Результаты

Они приехали из Чехословакии, из Румынии и из бывших районов рейха к востоку от Одера и Нейсе. Уровень занятости снизился с 65, 4% до 52, 4% до 49, 6%, а доля работающих женщин с 47, 6% до 49, 3% до 35, 2%. Приходская деревня исключительно протестантская. Население подвергалось таким же колебаниям. Вера, 9, 6% католикам; 6, 1% заявили другие признания.

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

Критерии качества пользовательской истории

Используя пример из статьи "Введение в BDD" давайте посмотрим на требования по реализации извлечения наличных из банкомата.
Английский вариант Локализованный вариант
Story : Account Holder withdraws cash

As an Account Holder

Формулировка истории должна включать в себя роль, функцию и выгоду

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

I want to withdraw cash from an ATM

So that I can get money when the bank is closed

Scenario 1: Account has sufficient funds

Given the account balance is \$100

And the card is valid

And

When

Then the ATM should dispense \$20

And the account balance should be \$80

And the card should be returned

Scenario 2: Account has insufficient funds

Given the account balance is \$10

And the card is valid

And the machine contains enough money

В корневой культуре картофель появился первым. Значительно увеличились площади постоянных пастбищных и кормовых культур, из которых 95 га приходится две трети зеленого и силосного кукурузы. Благодаря своему трудоемкому характеру выращивание корнеплодов составляет всего 14 га, из которых картофель занимает 4 га.

Большой земельный участок площадью 174 га состоит из 25% государственного и 75% частного леса. Бизнес и транспорт. В дополнение к сельскому хозяйству в качестве основы, бизнес в Оллингене, особенно до века, приобрел большое значение. Две трети льняных ткачей управляли своим бизнесом за собственный счет, а остальные зависели от издателей. Их также заняли 3 мясника и портные. Кроме того, в Оллингене было 2 пекаря, сапожники и Вагнер, каждый из которых был кузнецом, кузнецом и плотником. Пивоварня, уксус и 2 ликероводочных завода завершили торговлю.

When the Account Holder requests \$20

Then the ATM should not dispense any money

And the account balance should be \$20

And the card should be returned

Scenario 3: Card has been disabled

Given the card is disabled

When the Account Holder requests \$20

Then the ATM should retain the card

And the ATM should say the card has been retained

Scenario 4: The ATM has insufficient funds

История: Владелец карточки снимает наличку

Я как Владелец карточки

Критерии качества пользовательской истории

Между тем, строительная индустрия с 5 каменщиками и 4 плотниками восстановилась. Из них каждый из них принадлежал строительству и развитию, металлургической, деревообрабатывающей и пищевой промышленности. Продажа излишков сельскохозяйственной продукции и снабжение населения часто находились в руках иностранных трейдеров и учреждений. Временная специальность сельского хозяйства, парижский городок, была найдена, поскольку они были очень популярны, на месте иностранных покупателей.

Избыточная птица была продана в Ульме. Из-за увеличения экономической активности в соседнем городе Лангенау к концу молодых штаммов для садов Лангенау. К концу века в розничной продаже было 2 очень маленьких магазина. Трафик: Ближайшие железнодорожные станции находятся в Раммингене и Лангенау. Бренц и задняя часть, которая используется в школах до 15 раз. Каждые три компании были отнесены к производственным, торговым и кредитным учреждениям экономических отделов.

Хочу снять наличку в банкомате

Для того чтобы я мог получить деньги, когда банк закрыт

Сценарий 1 : На карточке хватает денег

Дано на карточке лежит 100 долларов

И карточка активна

И

Когда

Тогда банкомат должен выдать 20 долларов

И баланс на карточке должен стать 80 долларов

Класс классифицирован. В описании круга также есть много интересной информации о нашей истории. Это снова указано в файлах ниже, но частично совпадает с предыдущим текстом. Он расположен в плодородном районе на старой улице Лангенау - Биссинген, также называемой Оллингер Стиге. Вероятно, здесь и здесь когда-то стоял двор Стельфинген, чей коридор дольше доходил до поля. С другой стороны, образовавшийся в районе Ассельфингера к востоку от Линденау Бленхарт сформировал десятый округ прихода Оллингена.

Не вызывает сомнений, был ли приход когда-то округ Оллинген достаточно далеко на восток. Тогда передача Линденау и Раммингена в Кл. Кайсхейм сделала бы их двумя подразделениями, и условия района могли бы быть объяснены оттуда. Хирсау когда-либо давал мотыгу в деревне и в Ассельфингене. Анхаузен, вероятно, принадлежал к одной семье. Аристократическое место еще не доказано в округе, даже если бы обозначение Эш-Бёркхарт могло говорить за него. Кайсхайм с наследуемым владением. Два Эрбелена из Клата.

И карточка должна быть возвращена

Сценарий 2 : На карточке НЕ хватает денег

Дано на карточке лежит 10 долларов

И карточка активна

И в банкомате достаточно денег

Когда Владелец карточки запрашивает съём 20 долларов

Тогда банкомат должен НЕ выдать денег

И банкомат должен сообщить о нехватке средств на карте

О владении больницей Ульмера и хижине императорского города всегда был Фогт. Все высокие и низкие власти в Ульме. Муниципалитета. До конца Старого Королевства эти налоги оставались. Не все из этих помещиков получили более подробную информацию. О браке Адельхейда, упомянутом с генералом Ульрихом Фулхином. Из товаров Брессанона пришли в эту семью.

Это было первое владение, которое город приобрел в Оллингене вообще. На его дне появился 5 Селден. Это был крупнейший землевладелец в 19 веке, поскольку он косвенно принадлежал больнице и коттеджу. Единственный крупный манузел был рядом с монастырем Венген.

И баланс должен остаться 10 долларов

И карточка должна быть возвращена

Сценарий 3 : Карточка аннулирована

Дано карточка аннулирована

Когда когда Владелец карточки запрашивает съём 20 долларов

Тогда банкомат должен заблокировать карточку

И банкомат должен сообщить об удержании карты

Пользовательская история должна вписаться в одну итерацию

Хотя Оллинген принадлежал Амт Лангенау, в 15 веке он имел собственный деревенский суд, который возглавлял мэр, назначенный Ульмом. Затем суд состоял из 6 крестьян и 4 слуг, которые также были ткачами. В 19-ом столетии число судей увеличилось до 12, было по 6 фермеров каждый и Зельднер. О полномочиях сообщества, об использовании сообщества и собственности ничего не сообщается.

Рассказывая пользовательскую историю

Церковь оказывается основанием графов Диллингена и их потомков, чей семейный епископ Ульрих фон Аугсбург пришел из церкви и покровительство Св. Ульриха. Совсем недавно церковь Оллингера названа в честь святого Мартин, который, возможно, когда-то был родным братом. Закон о покровительстве был в средние века перед прогрессом Визенштайга. Десятина заброшенного поселения Тадельфинген принадлежала приходу Сетцингена.

Сценарий 4 : В банкомате не хватает налички

...

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

Заголовок должен описывать действие

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

Если бы заголовок у нас был "Управление счетом" или "Поведение банкомата" - нам бы пришлось попотеть, чтобы понять, когда нам надо остановиться и границы были бы очень расплывчаты. Например, "управление счетом" должно включать в себя реализацию функции "деньги в кредит", а "Поведение банкомата" должно описывать и смену пин-кода на карточке. Вывод: заголовок истории должен всегда описать реальное взаимодействие человека с системой.

Формулировка истории должна включать в себя роль, функцию и выгоду

Шаблон "Я как [роль] хочу [функция] для того чтобы [выгода]" имеет ряд преимуществ. Указывая роль в формулировке ты знаешь с кем тебе общаться о функции. Указывая выгоду - ты всегда объяснишь сотруднику, прорабатывающему историю, зачем им это надо.

Становится интереснее, когда вы обнаружите, что реализация заказанного функционала не приводит к получении заявленной выгоды. Обычно это значит, что у вас есть "потерянная история". То есть имеем одну историю, реализующая текущую функцию, но приносящая не ту, но всё таки выгоду (и поэтому всё ещё имеющая право на существование). И также существует другая (скрытая) история, в которой нужно реализовать другой функционал, чтобы получить, заявленную в первой истории выгоду.

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

Заголовок сценария должен фокусироваться на отличиях в ситуациях

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

Сценарий должен быть описан в терминах: Дано, События, Результаты

Это единственный наиболее мощный поведенческий сдвиг, который я когда-либо видел в командах, практикующих BDD. Просто заставляя людей от бизнеса, аналитиков, тестеров и разработчиков адаптировать свою речь в терминах "дано/когда/тогда", мы видим, как проблема двусмысленности отступает.

Не во всех сценариях просто достичь этого. Лучше всего вкладываются в концепцию последовательности событий, описанных так: дано [некий контекст] когда [я делаю что-то] тогда [происходит то-то] когда [я делаю другое что-то] тогда [происходит другое то-то] и так далее. Пример такого - это веб-сайт в стиле пошагового мастера, когда ты проходишь пошагово последовательность экранов, чтобы заполнить некую сложную модель данных. Это полностью подходит для пересекающихся последовательностей событий и результатов, если вы привыкнете мыслить в таких терминах.

Наблюдается интересный побочный эффект - меняется качество общения. Ты быстро обнаруживаешь, когда не учёл текущий контекст ("а, конечно - не хватает средств!"), или забыл проверить результат ("ну, вообще-то карточка должна возвращаться владельцу..."). Я наблюдал этот эффект на одном проекте, где ведущий разработчик поделился со мной, что аналитики и разработчики не могут сойтись во мнениях, но он не видел способа, как им помочь договориться. За несколько дней он смог перевести их общение в термины "дано/когда/тогда" - и увидел поразительное повышение качества их взаимодействия.

В "Дано" должен быть описан полностью весь контекст, но не более того

Любые излишние "Дано" рассеивают внимание. Это усложняет понимание человеку, который первый раз читает историю - как с технической так и с бизнесовой стороны. Так же любые упущенные "Дано" - становятся допущениями. Если при одинаковых "Дано" ты можешь получить разный результат - значит ты что-то упустил на уровне "Дано".

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

Раздел "событие" должен описывать функцию (feature)

Событие само по себе должно быть очень простым, обычно всего лишь один вызов процедуры или функции на уровне кода. Как обсуждалось ранее, некоторые сценарии намного сложнее, чем приведенные здесь, но большей частью сценарии историй вращаются вокруг единственного события. Они будут отличаться только контекстом ("Дано") и соответствующими ожидаемыми результатами.

Пользовательская история должна вписаться в одну итерацию

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

Мы не можем сказать из примера с банкоматом сколько ещё будет сценариев для этой истории, но я подозреваю, что ещё несколько может быть. По существу у нас есть три "движущие части" в этой истории: баланс по карте, статус самой карты и состояние банкомата. Мы можем детализироваться по кредитной карте: что если она просрочена, поэтому я не смогу ей воспользоваться для снятия наличных, но банкомат её вернёт. Что если банкомат заглючит в процессе обработки транзакции? Что если в моей карточке заложена возможность овердрафта?

Видимо лучше будет разбить эту историю на несколько более мелких:

Владелец карты извлекает наличку (допущения: банкомат в порядке и карта активная)
Владелец карты извлекает наличку с аннулированной картой (допущения: банкомат в порядке)
Владелец карты извлекает наличку из глючного банкомата (допущения: карта активная)

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

Ну и чем это отличается от UseCase-диаграмм?

Ну есть Use Case - и что дальше? Я большой фан того, как Алистер Коберн (Alistair Cockburn) описывает Use Case (в противоположность той сверх-инженерной версии, которую я увидел в RUP-как-водопад проектах). При условии, что у меня нет большого опыта участия в проектах, основанных на Use Case, я предоставляю другим возможность заняться сравнением.

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

На практике оказывается не имеет значения, какой процесс ты использовал для идентификации и проработки требований. Ты смог записать требования в некий документ, и если это помогло тебе организовать твои мысли - это хорошо. Однако плохо то, что ты рассматриваешь этот документ, как будто он передаёт ВСЕ твои мысли - поскольку на самом деле это не так. Вместо этого, ты должен отложить в сторонку документ с требованиями, или стопку UseCase-диаграмм, и начать писать пользовательские истории отталкиваясь от бизнес-целей, отложив в голове тот факт, что результат всей твоей кропотливой работы, все ответы, которые ты получил - так и остались в твоей голове - или, по крайней мере, осталось понимание, как наметить себе дальнейшую работу.

Заключение

Разработка, основанная на поведении, (BDD) применяет пользовательские истории как базовые модули функциональности, а следовательно - поставки. Критерии приёмки - неотъемлемая часть пользовательской истории, в результате они задают ограничение поведения и дают нам расширенное представление о результате (что получит заказчик, когда мы скажем "Готово!"). Они также используются как основа для осмечивания работы, когда приходит время для планирования.

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

Chief technology officer "Один Сервис.ВЦ" - Денис Олейник

From ServiceNow Wiki

Note: This article applies to Fuji and earlier releases. For more current information, see Agile Development (for upgraded customers only) at http://docs.servicenow.com

The ServiceNow Wiki is no longer being updated. Visit http://docs.servicenow.com for the latest product documentation.

Contents

1 Overview

2 Prerequisites

Make sure to create a product before attempting to create themes, epics, or stories. You cannot submit these records without attaching them to a product. See Scrum Products for information on creating products. For a complete list of the tasks required to use SDLC Scrum Process and links to the necessary procedures, see Scrum Process Flow .

3 Themes

Themes can contain one or more epics. Multiple themes can be associated with a product, but a theme cannot be associated with more than one product at a time.

3.1 Creating a Theme

Users with the scrum_product_owner and scrum_release_planner roles can create themes.

4 Epics

Epics organize the work needed to complete parts of a theme into smaller, more manageable pieces. You can associate an epic to a product, theme, or a configuration item (an item or service being affected). You can also define child epics. You can associate multiple epics with a single theme, but an epic can only be associated with one theme at a time.

4.1 Creating an Epic

Users with the scrum_master, scrum_product_owner, and scrum_story_creator roles can create epics. To organize epics, you can create a hierarchy of parent and child epics.

  1. Create an epic with one of these methods:
  2. Fill in the fields, as appropriate (see table).
  3. Click Submit . Related lists for child epics and stories appear.
  4. To create child epics or stories from these related lists, click New .



Field Description
Product Product to associate with this epic.
Product owner Product owner associated with the product selected.
Configuration item Item or service this epic affects.
Theme Theme associated with this epic. This field becomes active when a product is selected. Themes are optional.
Parent epic Parent epic, if this is a child epic.
State Current state of the epic. The default is Draft .
Assignment group Group working on the epic.
Assigned to User interested in the progress of this epic.

5 Stories

An epic can have one or more stories, but a story can belong to only one epic at a time. A story should be small enough to be completed in one sprint. The estimated effort required to complete a story is measured in story points , with more points being assigned to stories requiring more effort. Story points are arbitrary measurements of the effort (not necessarily the time) required to complete a story, based on the estimates of scrum team members. The work required for a story can be broken down into discreet .

After creating stories and tasks, manage and track them to completion through the story and scrum task progress boards .

For tips and best practices on writing effective stories, see Well-Written Scrum Stories .

5.1 Creating a Story

Users with the following roles can create and edit stories:

  • scrum_master
  • scrum_product_owner
  • scrum_sprint_planner
  • scrum_story_creator
  • scrum_team_member

To create a story:

  1. Create a new story in one of these ways:
  • Navigate to SDLC (Scrum Process) > Stories > Create New .
  • In a product, release, or sprint form, select the Stories related list and click New .
  • Display the product backlog in the planning board and click New .
  • Complete the Story form.
  • Field Description
    Product The product with which this story is associated. This field is required if using the SDLC Scrum Process application (SDLC Scrum Process Pack plugin).
    Project The project with which this story is associated. This field is required if using the project-based SDLC application (SDLC PPM Integration plugin). For more information, see Project Portfolio Suite .
    Configuration item Select the configuration item or service this story affects, if applicable.
    Theme Select the theme for this story from a list of themes associated with the selected Product . A story can belong to only one theme at a time.
    Product owner Displays the product owner for the selected Product .
    Release Select a release for this story from the releases associated with the selected Product .
    Sprint Select a sprint for this story from the sprints associated with the selected Release .
    Epic Select an epic for this story from the epics associated with the selected Product .
    Priority Select the priority for this story. A product owner can use priorities to rank stories in the planning board .
    Opened Set the date and time for creating the story. The default is the current date and time.
    Opened by Select the user who created the story The default is the logged in user.
    Type Select the type of story:
    • Development
    • Documentation
    • Spike (research activity)
    State Select the story state. The default for a new story is Draft .
    Points Enter a number of points to indicate the estimated effort required to complete the story. A larger point value indicates that a greater amount of effort is required.
    Assigned to Select the user who will be working on the story. Users on this list have appropriate scrum roles .
    Blocked Select this check box to indicate that issues are preventing the story from making progress. Clear the check box if there are no blocking issues.
    Classification Select Defect or Feature to indicate the type of development the story involves. The default is Feature . This field has no connection to the Defect and Enhancement fields in the Related Records section.
    Acceptance criteria Describe the functional criteria or testing results required to move this story to a state of Complete .
    Work notes Enter any notes about the work being performed for this story.
    Related Records
    Defect This is a reference field from the Defect table. Click the magnifier icon in this field to display defect reports created by users with the feature_user role. This is the only location in the Scrum Process application where records from this table appear. For details about reporting defects with this feature, see Defect Reports in Scrum .
    Enhancement This is a reference field from the Enhancement table. Click the magnifier icon in this field to display enhancement requests created by users with the feature_user role. This is the only location in the Scrum Process application where records from this table appear. For details about enhancement requests, see Enhancement Requests in Scrum .
  • Click Submit .



  • Saving the form displays the Scrum Tasks and Documentation Tasks related lists.

  • Create the necessary scrum tasks for this story from these related lists.


  • 5.2 Story Progress

    You can manage stories and track them to completion on the story progress board . Access the progress board from the Related Links section of the Story form as well as from other forms.

    5.3 Assigning a Story to a Project

    If you have activated the SDLC Scrum PPM Integration plugin, you can assign a story to a project from the Stories list.

    1. Navigate to SDLC (Scrum Process) > Stories > Open Stories .
    2. Select the check box to the left of the desired story.
    3. Select Move to project from the Actions choice list.
    4. Select an active project in the Project field and click OK . The story is assigned to the selected project.

    When a story is assigned to a project, the settings in the following fields are cleared:

    • Release
    • Product
    • Sprint
    • Team
    • Epic
    • Theme

    If the project is assigned to a team and has a development phase, the following fields are auto-populated:

    • Team
    • Project phase

    6 Scrum Tasks

    A scrum task might require between four and twelve hours to complete. Team members volunteer for tasks based on their skills and track the hours remaining on a daily basis. The time remaining is reflected in the sprint burn down chart . If the planned hours for a task exceed an agreed upon period of time, such as eight hours, the task can be split into additional tasks. A story is not complete until all of its tasks are complete.

    6.1 Creating a Scrum Task

    You add scrum tasks to an existing story from the following locations on the Story form:

    • The Tasks related list
    • The Add Scrum Tasks Related Link in a Story form
    Note: You also can add tasks from the and the .

    6.1.1 Tasks Related List

    6.1.2 Field Descriptions

    Field Description
    Story Displays the story associated with the scrum task.
    Planned Hours Enter the estimated number of hours to complete the task. A typical scrum task should take between four and twelve hours. If the task requires more than 12 hours, consider breaking it down into multiple tasks.
    Remaining Hours Enter the estimated number of hours remaining to complete the scrum task. This value is updated by the assigned team member as work is being done on the task.
    Actual Hours After the task is complete, enter the number of hours the task actually required.
    Type Select the type of work involved.
    State Select the scrum task"s current state. The default is Draft .
    Assigned to Select the user who will be working on the scrum task. The default is the story owner.
    Blocked Select this check box if the scrum task is blocked for some reason. Clear the check box if there are no blocking issues.
    Short description Enter a brief description of this scrum task.
    Description Enter a detailed description of the scrum task.
    Work notes Enter notes to indicate progress on the scrum task or issues blocking it.
    В продолжение темы:
    Содержание ЕГЭ

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

    Новые статьи
    /
    Популярные