Зв’язок між історією користувача, функцією та епопеєю?


111

Як людина, яка все ще є новаторкою, я не впевнений, що повністю розумію взаємозв'язок або різницю між історією, функцією та епічністю користувача.

Відповідно до цього питання , особливістю є збірка оповідань. Одна з відповідей говорить про те, що функція насправді є епопеєю. Тож чи функції та епоси вважаються одним і тим же, тобто в основному це збіркою пов’язаних історій користувачів?

Наш керівник проекту наполягає на тому, що існує ієрархічна структура:

Епічний -> Особливості -> Історії користувачів

І що в основному всі історії користувачів повинні входити до цієї структури. Тому всі історії користувачів повинні потрапляти під парасолькою, а всі функції підпадають під епопею.

Для мене це звучить ніяково. Чи може хтось, будь ласка, уточнити, як пов’язані між собою історії, функції та епоси користувачів? Або є стаття, яка чітко окреслює відмінності?


15
Єдиною реальною відповіддю на це є "немає остаточної відповіді". Кожна інтерпретація фізичних осіб / компаній дещо різна. Для мене функції та розповіді користувачів однакові, інші люди можуть робити відмінність (що мені здається дурним), але ні те, ні правильно, ні неправильно. Я не думаю, що ніхто на землі не може вам остаточно сказати, "це епос, це історія, це особливість" ... хоча багато хто спробує!
MattDavey

Я не погоджуюсь. Особливістю НЕ є історія користувача, тоді як епопея - це історія користувача. Прикладом того, як виглядає функція, є "оплата через paypal". Приклад історії користувача, як клієнт на iPhone, я хочу придбати молоток і оплатити свій рахунок PayPal, щоб мені не довелося вводити дані своєї кредитної картки. Більше того, я вважав би цю історію епічною, тому що на її реалізацію знадобиться більше дня.
Joey Guerra

3
@JoeyGuerra Як ми використовуємо ці терміни, ви тільки що написали 1 історію користувача, яка призведе до 1 функції. Ми взагалі не вживаємо "епосу", але всеохоплюючим словом є "проект" - який, для розширення вашого прикладу, передбачає кошик для покупок і всі форми оплати (і, можливо, більше взаємозалежних частин).
Ізката

Відповіді:


93

Вони насправді є дуже загальним терміном. Є багато способів їх інтерпретувати, залежно від літератури та того, як люди їх бачать. Візьміть усе, що я скажу, з величезним зерном солі.

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

Epic
- Дозвольте клієнту керувати своїм обліковим записом через Інтернет

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

Функції, як правило, описують, що робить ваше програмне забезпечення:

Особливість
- Редагування інформації про клієнта через веб-портал

Історії користувачів, як правило, виражають те, що користувач хоче зробити:

Історія користувача
Як працівник банку,
я хочу мати змогу змінювати інформацію про клієнтів,
щоб я могла постійно її оновлювати.

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

Історія користувача : як замовник, я хочу платити за допомогою найпопулярніших кредитних карт.
Функція підтримує XML API уряду GOV-TAX-02.

Існує також питання сценарію, який, як правило, виконує функцію / історію користувача. Зазвичай вони чітко відображають конкретний тест на прийняття. Наприклад

Сценарій : Зняття грошей
Враховуючи, що на моєму банківському рахунку у мене 2000 $,
я знімаю 100 $,
тоді я отримую 100 $ готівкою,
а мій баланс - 1900 $

Саме так ми визначаємо ті терміни, де я працюю . Ці визначення далеко не математичне визначення або стандартизований термін. Це як різниця між правим політиком або лівим крилом. Це залежить, де ти живеш. У Канаді те, що вважається правим, може вважатися лівим у Сполучених Штатах. Це дуже мінливо.

Серйозно, я б не надто хвилювався з цього приводу. Важливо те, що всі члени команди погоджуються щодо визначення, щоб ви могли зрозуміти один одного. Деякі методи, такі як scrum, як правило, визначають їх більш формально, але виберіть те, що вам підходить, і залиште решту. Зрештою, хіба не прискіпливі стосунки Індивіди та взаємодії над процесами та інструментами та робочим програмним забезпеченням над всеосяжною документацією ?


17
+1 для "Важливо те, що всі члени команди погоджуються щодо визначення"
MattDavey

Де в цій ієрархії впишеться випадок використання?
Renegrin

Це залежатиме від того, як ви б визначили випадок використання у вашій команді. Давайте припустимо, що це стиль використання RUP. У цьому випадку випадок використання брав би роль як сценарію, так і історії, змішуючи обидва, і, таким чином, у RUP вимоги до програмного забезпечення задаються лише у випадку використання. Запитайте себе: якою має бути історія ? І яким має бути корисний випадок ? Вам потрібно обоє? чому? Особисто я б або використовував історію, або використовував кейс, але не обидва, тому що вони мають однакову мету. Все-таки це завжди залежить. Якщо у вас є роль для кожного, використовуйте кожну з них; якщо ні, то використовуйте того, кого ви знаєте :).
Лоран Бургу-Рой

1
Єдиним доповненням, над яким я працював, є те, що ви навряд чи зможете виконати все, що ви виявите в епосі. Деякі історії користувачів під цим просто не перетворюються на верхню частину відставання.
itj

2
Це все лише описи проблеми, яку потрібно вирішити на різних висотах. Епіки мають сенс для вищого керівництва. Особливості - це те, що маркетологи хочуть, щоб епос наданий Цей погляд працює для менеджерів середнього рівня. Історії користувачів розбивають роботу для людей, яким потрібно створити рішення, для розробників та управління на низькому рівні.
rfportilla

36

Епічний : дуже велика історія користувача, яка з часом розбивається на менші історії.

Історія користувача: Визначення вимоги на високому рівні, що містить достатньо інформації, щоб розробники могли скласти обгрунтовану оцінку зусиль для її виконання.

http://www.telerik.com/agile-project-management-tools/agile-resources/vocabulary.aspx

Особливість : відмітна характеристика або здатність програмного додатка або бібліотеки (наприклад, продуктивність, портативність або функціональність).

http://en.wikipedia.org/wiki/Software_feature


26

Я застерігаю вас від застосування занадто жорсткої ієрархії до цих умов. Ми намагалися це зробити на своїй попередній роботі. Двічі. Обидві спроби були різними, і обидва рази ми виявили, що ми зайво обмежували себе. Єдиною константою було визначення Історії користувача . З точки зору планування, історія є основним складовим елементом проекту. Більш великі терміни (епос, особливість тощо) фактично є лише тегами . Теги - це простий спосіб дозволити історії існувати як частина декількох Epics та декількох функцій одночасно. Не варто душевних зусиль бути більш суворими, ніж це.

Теги працюють для Stack Exchange, і вони можуть працювати і для вас.


1
Саме так. Я натиснув на це питання, сподіваючись, що зможу знайти відповідь, як це.
Zimano

23

Те, як ми працюємо з Epics, Stories and Features, полягає в наступному

На початку циклу проекту ми придумуємо Epics . Це дуже високі, майже орієнтовані на маркетинг, кулі-функції. Те, що ви можете використовувати у резюме, наприклад,

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

Це призводить до таких епосів, як

  • Переглянути каталог товарів
  • Переглянути доступність
  • Перегляд цін
  • Зробити замовлення
  • Переглянути історію замовлень

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

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

Історія користувача - одиниця доставки. Це історія користувача, яка є повною чи незавершеною, виходить у прямому ефірі чи не виходить у прямому ефірі.

Епічний додаток може спричинити велику кількість історій користувачів, не всі вони будуть розроблені або випущені одночасно.

Наприклад, епічний перегляд продуктового каталогу може зламатись

  • Навігація по Ієрархії категорій
  • Пошук за ключовим словом
  • Фільтр за ознаками товару (наприклад, ціновий діапазон, марка, колір, розмір тощо)

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

Як правило, для більшості наших проектів ми маємо десятки епосів і сотні історій.

Тепер, проходячи життєвий цикл історії, ми позначаємо ці історії за допомогою Feature s. Наприклад, усі історії перегляду, пошуку та запасів та цін будуть позначені тегами, скажімо, "продукту-каталогу". Історії замовлення на місця, пов’язані з оплатою кредитною карткою, можуть бути позначені міткою "кредитна картка", а ті, що стосуються оплати через PayPal, позначаються міткою "paypal".

Ці етикетки служать для групування історій, які належать разом, не тому, що вони різні типи, що виконують одну й ту саму діяльність (наприклад, всі розповіді про місце на замовлення), а тому, що вони повинні бути видані разом.

Наприклад, історія "розміщення замовлення оплатою кредитною карткою" належить до тієї ж епопеї, що й історія "замовлення оплати через PayPal", але їх не потрібно видавати разом.

Тоді як історія "розміщення замовлення оплатою кредитною карткою", історія "обробка повернення повернення на кредитну карту" та історія "що дозволяють клієнтам управляти збереженими кредитними картками на своєму рахунку", схоже, належать одне одному . Усі вони були би позначені ярликом функції "кредитна картка". тобто всі вони належали б до функції "Кредитна картка". Не дуже корисно звільнити можливість робити замовлення, оплачуючи кредитною карткою, якщо неможливо обробити повернення повернення на PayPal або якщо неможливо керувати збереженими кредитними картками на вашому рахунку

Примітка : як загальне правило, тобто. Це, зрештою, ділове рішення. Якщо час на ринок важливий, може бути законна причина жити з одним, а не з іншим.

Таким чином, Epics служать для розбиття на (пов'язані, але окремі) історії, які можна розробити самостійно, тоді як Особливості служать для групування історій, які слід випустити разом.

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

У нашому способі роботи, коли Епіки розбиті на історії, вони втрачають своє призначення. Ми не оцінюємо і не плануємо Epics. Ми не відстежуємо прогрес у програмі Epics. Ми не випускаємо Epics. Ми оцінюємо, плануємо та відстежуємо Історії користувачів. І ми випускаємо Особливості.


4
"... Таким чином, Epics служать для розбиття на (пов'язані, але окремі) історії, які можна розробити самостійно, тоді як Особливості служать для групування історій, які слід випустити разом ..." Момент Еврика !!
Генрі Родрігес

Цей пост заслуговує більше пальців! Кудо!
Гушань

10

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

Мені подобається відповідь з табору Майка Конна, і це досить просто.

http://www.mountaingoatsoftware.com/blog/stories-epics-and-themes

  • Епос - це просто велика історія (ієрархічна)
  • Тема - це лише група Історій (дуже схоже на тег)

Він фактично уникає терміна "Особливість". Я припускаю, що це головним чином тому, що це був поширений термін у традиційному світі водоспадів. Багато таборів Agile схильні використовувати різні терміни, щоб підкреслити відмінності.

Отже, у визначенні Вашого прем'єр-міністра, Особливість знаходиться десь посеред ієрархії Епічно-Історії.

Ось моя інфо-графіка цього визначення з моєї статті InfoQ http://www.infoq.com/articles/visualize-big-picture-agile ;-)

введіть тут опис зображення


6

Особливості та епоси - це не одне і те ж.

  • Функція - це не історія користувача.
  • Епопея - історія користувача.
  • Історія користувача може бути епопеєю.
  • Історія користувача може містити багато функцій.
  • Функція може виконати від 1 до багатьох історій користувачів.

На етапах планування дискусії призводять до Історій користувачів, які типово ідентифікуються як Epics, оскільки зусилля щодо впровадження рішень для них занадто великі, щоб здійснити за кілька днів. Особливості продукту визначаються під час цієї фази. Але це лише побічний продукт дискусії. Особливості потім використовуються для планування продукту дорожньої карти, яка є окремої дискусії.

У Епос приймаються і обговорюються далі, в результаті чого Історії користувачів для кожного Epic. В особливості і епос використовуються для приводу обговорення в Відставання витонченості і Sprint планування сесій. У цей час Історії користувачів, що виходять із цих обговорень, удосконалюються , визначаються пріоритетом і, у Плані спринту , приймаються до спринтів для впровадження.


4

Це просто проблема розкладання. Вони просто історії, за винятком різних розмірів.

Я особисто вважаю за краще не маркувати їх розміри, але якщо ви це зробите, це добре. Запитайте у Вас, що таке визначення у вашій робочій області.


1

В нашій організації понад 2000 розробників, тому відповідь на це питання важлива для безперебійного та чіткого спілкування між сотнями команд Agile, з якими ми працюємо разом над нашим спільним продуктом. Для дуже невеликої організації ви можете мати дуже просту структуру, яка навіть не повинна бути ієрархічною (як відповіли інші). Однак для великих організацій, безумовно, є потреба у певній організованій, масштабованій, послідовної ієрархії - і в цьому полягає проблема у прагненні зробити ієрархію із чогось, що не є строго ієрархічним.

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

Найкраще, що ми "офіційно" зробили поки що, - це слідувати структурі SAFe Діна Леффінгвелла щодо інвестиційних тем та бізнес-епік, що знаходяться вгорі (і другому зверху) ієрархії, потім "Особливості" та нарешті "Історії". За словами Agile, Завдання завжди знаходяться під історіями, тому ми обережні, щоб не використовувати цей термін більше вгору. Ми вирішили дотримуватися SAFe, щоб принаймні мати деяку послідовність у всіх наших командах.

Але цього все ще недостатньо для наших потреб. Ми визначаємо функцію як очевидно цінну, яку можна доставити споживачеві нашого програмного продукту (тобто ми перераховуємо ці функції в наших оголошеннях про майбутні випуски). І ми визначаємо історію як менший обсяг і роботу, яку може поставити в одному спринті одна команда Agile dev. Тепер ми НАЧАЛО дотримуватися визначення SAFe інвестиційної теми та Business Epic на рівні портфеля (а не нижче цього рівня). І ми починаємо НЕ вживати наших СТАРИХ визначень "Тема" та "Епос".

Зараз ми повільно розвиваємося в цьому напрямку, але колеса прогресу мелються повільно. Ми все ще боремося з тим, як розділити роботу на шматки розміру, щоб ми могли визначити роботу та виконати її безперебійно за допомогою декількох команд. Для цього ми бачимо потребу в «Підфункції», яка менша за функцію, але більша за історію. Додаткові функції можна використовувати для фрагментів роботи, виконаної в команді "Кожна команда ВСІХ ІНДИВІДУАЛЬНИХ", або шматок робіт, виконаних командою SINGLE в різний час (у різних спринтах чи навіть різних випусках).

Нам також потрібні кілька ієрархічних рівнів між Feature та Business Epic, але ми ще цього не вирішили, крім того, щоб просто називати їх "Теми" - що, як ми знаємо, не є правильним терміном, оскільки його легко плутати з SAFe Investment Themes. Для деяких великих проектів (випусків) ми маємо до 5-8 різних ієрархічних рівнів, кожен з яких розбиває роботу на менші та менші шматки. Ви можете вважати, що ці теми є "Груповими групами", але це не обов'язково і правильний термін.

Я думаю, що важливо намагатися використовувати терміни, які пропонують ясність, а не двозначність. Тому кожен, хто посилається на історію, означає найменший одиницю роботи, яку можна виконати в одному спринті (крім завдань під історією), а підфункція означає найменшу одиницю роботи над функцією, яку можна виконати одним команда. Аналогічно, група функцій знаходиться на одному ієрархічному рівні над функцією. Вище це стає трохи нечітким, тому ми зазвичай просто називаємо їх Темами, і ми допускаємо Теми як батьки та діти інших Тем. Ми намагаємось обмежити рівень Feature, Sub-Feature та Story на одному рівні кожен (Особливості не повинні бути дітьми інших функцій), але ми ще не на 100% успішні в обмеженні цього.

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

Суть полягає в тому, що це все ще незавершене виробництво, і ми все ще боремося з цим. Але дотримуючись визначення SAFe Теми, Епіки, Особливості та Історії, ми рухаємося в правильному напрямку!


1

Ієрархія відставання продуктів значною мірою залежить від розміру продукту та його модульності (визначено кількість областей продукту).

Для невеликих проектів: Епічні> Історія більш ніж достатня; і ви називаєте або "функцію".
Великі проекти можуть бути схожими на: Роман> Тема> Епічний> Особливість> Історія

Найкращим прикладом може бути наступний:
Роман =
Тема MS Office = MS Word / MS Excel ...
Epic = Таблиця / Каталог шрифтів ...
Особливості = Основна кольорова схема таблиці / Таблиця / Операції з клітинками ...
Історії (для ' Основні таблиці "Особливість у" Tables "Epic) = Додати таблицю / Малювати таблицю / Вставити сиро / Вставити стовпчик ...

Я вважаю, що корисно мати на увазі під час визначення власного масштабування відставання:
1. Історія: а) завжди здійсненна в межах одного спринту; б) не завжди перевіряється для кінцевих користувачів.
2. Епічні / Особливості: а) не відповідає одній тривалості спринту та її потрібно розкласти; б) завжди має бути перевіреним для кінцевих споживачів; в) завжди постачається, може бути монетизовано - обчислюйте його за рентабельність інвестицій.
3. Розглядаючи питання про те, додавати чи ні Епік> Розділ функції або дотримуватися Епік> Історія: я рекомендую вставляти функцію між Епічним та Історією лише тоді, коли: Епік не ' t підходить навіть для 1 випуску, тому вам потрібно визначити елемент, який можна розвантажувати, який відповідатиме 1 тривалості випуску .

Сподіваюся, це корисно.


-1

У нашій організації у нас є:

Тема = Використовується для групування збірки оповідань

Epic = Описує велику історію користувача (насправді вимога), яку потрібно розбити на історії користувача

Особливості = Чи те, що написано на жерсті, описує особливості необхідного продукту

Історія користувача = Це найнижчий рівень деталізації, з якого походять завдання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.