Як команда Scrum враховує інфраструктурні завдання на нараді планування?


33

Як команда Scrum враховує завдання розробки / інфраструктури на зустрічі з планування?

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

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

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

Відповіді:


25

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

Я наводжу вам кілька прикладів:

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

Більшість технічних історій насправді приносять користь бізнесу, але це рідко для користувачів. Фразування їх по-іншому може допомогти. Я звичайно використовую шаблон Кріса Матта "Feature Injection":

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

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

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

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


3
Семантика ... ІМХО це суперечить Agile філософії; додаючи необхідне розлучення там, де воно не забезпечує реальної цінності, крім теплих нечітких почуттів.
Аарон Маківер

5
Ви говорите з досвіду чи теоретизуєте? Я запитую, тому що я вже використовував цей шаблон разом із низкою команд, і виявив, що ставлення мети спочатку дійсно допомагає встановити, що необхідно для досягнення бачення проекту. Майк Кон використовує "так, що" необов'язково. Я не вірю в це.
Lunivore

1
Я бачу, що цей шаблон корисний, щоб допомогти повідомити значення технічного завдання, яке потрібно виконати нетехнічному PO. Існує різниця між "аналітиком якості Я хочу, щоб сервер безперервної інтеграції, щоб програма щодня автоматично перевірявся", і "З метою зменшення кількості ручного тестування, необхідного в кінці проекту, та ймовірністю виникнення помилка прослизає до виробництва, тому що ми, як QA Team, хочемо перевірити сервер безперервної інтеграції ". Показ прихованого бізнесу дає ОП достатньо інформації, щоб вирішити, включити його чи ні.
Соронтар

1
@Soronthar Де це закінчується? "Для того, щоб знизити рівень фрустрації, ми, як команда з розвитку, хочемо скласти свої власні правила" Це круговий характер. Це одна з причин того, що ви залишалися зосередженими на користувачі, і це все. Завдання повинні бути приховані від ПО; оскільки ОП не повинні стосуватися цих деталей.
Аарон Маківер

9
О, і на всякий випадок, коли це було не зрозуміло - я більше дбаю про те, щоб зробити корисну роботу, ніж про Scrum. Або худорлявий. Або BDD. Я також вважаю, що найкорисніша робота над програмним забезпеченням пов'язана з навчанням та управлінням ризиками. Коли методологія заважає виконувати корисну роботу, я схиляюся до корисної роботи.
Lunivore

12

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


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

3
Вальсинг з ведмедями. Все, що ви робите, що є справді цінним, є в основному цінним, оскільки ніхто цього не робив раніше (інакше існують інші, дешевші способи його виконання). Більшість того, що ми робимо, є цінним, - це навчитися робити нові речі. Завдання інфраструктури допомагають нам отримувати відгуки про нові речі та швидше вчитися. Я з @Kristo, якщо це допомагає нам швидше вчитися.
Lunivore

@Lunivore - Різниця в тому, що ніхто не платить тобі за навчання. Вони платять вам за те, що ви робите з навчанням. Команди повинні завжди потребувати певного часу, щоб удосконалити свої інструменти та свої знання. Але підрахунок його як швидкості плутає його з тим видом роботи, яку команда має робити.
Вільям Піетрі

Йдеться не лише про інструменти та знання. Продуманий експеримент від Ешлі Джонсон: Подумайте про останній проект, який ви зробили. Подумайте, скільки часу знадобиться зробити це знову з тими ж людьми, однаковими вимогами, тією ж технологією, але ви дізнавшись все, що ви навчились. Котирування прем’єр-міністрів працюють приблизно від 25% до 33% - решта - це те, наскільки ми навчаємось у програмних проектах. Прочитайте допис Дана Норта про « Намірне
Lunivore

11

Робіть їх поступово.

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

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


+1: розчин Спайк перший раз, потім рефактор, щоб він був кращим і надійнішим вдруге.
С.Лотт

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

І вам все одно слід заробляти час для регулярних роздумів і вдосконалення процесів, як це.
Майкл

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

@Kristo: Ви впевнені, роблячи це поступово і регулярно розмірковуючи. Коли ви починаєте, все, що ви знаєте, це те, що ви точно будете робити неправильну суму. Кожного тижня говоріть про те, чи варто вам робити більш-менш інфраструктуру та чи зосереджуєтесь на найвищому рівні. Це завжди балансуючий акт.
Вільям Піетрі

6

ІМХО ідеальним підходом є розміщення зусиль інфраструктури як завдань під історією користувача, де вона вперше має значення; як ви вже згадували.

Беручи свій приклад; Ручне створення та розгортання означає, що це постійне зусилля і не має форми завершення. Він існує нескінченно.

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

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


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

Насправді ця інфраструктурна робота повинна бути частиною визначення "Зроблено".
Ігор Попов

4

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

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


2

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


Деякі команди працюють таким чином, але це ускладнює вимірювання поставленої вартості. Особисто я пропоную командам створювати лише історії, які мають ділове значення. (Шипи мають ділову цінність, оскільки люди, які купують інформацію про майбутні варіанти та їх вартість.)
Вільям Пітрі

Але що таке цінність бізнесу? Це широкий термін, і все, що дозволяє бізнесу швидше / краще / випустити програмне забезпечення, має значення для цього бізнесу.
Енді Візендангер

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

2

З того, що я бачив, значна частина інфраструктури вважається даною. Сюди входять такі речі, як:

  • Система контролю ревізії;
  • Автоматизована система побудови;
  • IDE та інші інструменти для розробників;
  • Сервери розробки;
  • Процес розгортання; і
  • Процес проекту та стандарти.

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

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


1
+1: Якщо це не на місці, Agile справді важко. Стабільна, перевірена інфраструктура та платформа є своєрідною передумовою спритності.
С.Лотт

1

Розглянемо наступне:

  • Команда Scrum додає основні функції до існуючого набору продуктів.

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

  • Має сенс завантажувати випуск за допомогою цього твору, щоб у ході випуску проблеми Sprints могли бути вирішені.

  • Оскільки бізнес отримує опосередковану цінність від цих позицій, я вважаю, що в інтересах прозорості це елементи " Блокування товарів" (PBI).

  • Команда розміщує ці предмети та ставиться до них як до будь-яких ІПВ.

Ця проблема для мене зводиться до того, що я не хочу витрачати час на спроби з'ясувати, як приховати цю роботу як завдання під іншими більш бізнес-орієнтованими ІТП.

Я не хочу, щоб розміри PBI були перекошені внаслідок такої інфраструктурної роботи. Я хочу побачити, що робиться, і зрозуміти, за що я плачу.

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


0

XP рекомендує запропонувати "нуль ітерації", де встановлені всі інструменти та інфраструктура. Писати розповіді для них необов’язково, але, мабуть, це гарна ідея. Можливість тестування вашої інфраструктури (інкрементальна збірка, автоматизоване тестування та розгортання, повідомлення тощо) корисна


2
XP не рекомендує цього. Деякі люди так і роблять, але це, безумовно, не є частиною екстремального програмування, як визначено Беком та ін. Особисто я вважаю, що Ітерація Нуль - це погана ідея.
Вільям Піетрі

Ще одна проблема: ви не завжди починаєте з 0, ви можете зрозуміти, що вам потрібно щось зараз, або в наступному спринті.
Енді Візендангер

@William: див. "Планування екстремального програмування" Кента Бека, глава 15, стор. 66.
Стівен А. Лоу

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

@William: ага, я бачу, до чого ти потрапляєш. Я не мав на увазі всю інфраструктуру програмного забезпечення , а лише те, що ви згадали
Стівен А. Лоу

0

У нашій команді ми робимо наступне:

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

Крок 2 - найважливіший. Як і в спритній практиці, в Scrum ви намагаєтеся зробити якомога менше, щоб виконати свої завдання. Прийміть це як спосіб не витрачати своє життя на непотрібну роботу: мій досвід показує, що цілі 50% речей, що закінчуються, залишаються покинутими та без збереження в довгостроковій перспективі.

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