Як часто випускати в спринті Scrum


10

Як часто ви звільняєтеся під час спринту. Лише наприкінці спринту або кожного разу, коли функція готова. А як вам обробити виправлення помилок?


3
якщо ви випускаєте щоразу, коли виконується функція, можливо, вам варто подивитися на канбан замість Scrum
David

Відповіді:


10

TL; DR: Відпустіть, коли це доречно

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

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


10

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

Випуск може бути окремим видом спринту, де речі упаковані для випуску.

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

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


Отже, як слід випробовувати безперервне тестування?
Мельбурнський розробник

4

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

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


Так, я згоден. Найкращий підхід - це від’єднання випусків від реалізації функцій та / або спринтів. Процеси (випуску) повинні підтримувати це. Спринт - це часові рамки. Випуск може бути здійснений у будь-який час, якщо версія, яку ви випускаєте, проходить QA. Дві речі можуть бути різними. Як цього досягти? Одним із варіантів є використання поняття "немає сміття в стовбурі" для управління філіями.
Манфред

3

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

Практично всі наші випуски включали сукупність сюжетних моментів та дефектів (помилок). Дефекти зараховуються як "неідеальні години"; є 5 ідеальних годин у робочий день, тобто кодування новою роботою вниз. Інші три-чотири години на день - це зустрічі, дискусії, дизайн, іноді "шипи" (цілеспрямоване дослідження / розробка доказів концепції) та робота з дефектами; матеріал, який сприяє кращому продукту і є необхідною частиною процесу, але просто не може зайняти весь спринт всієї команди. Єдиний раз, коли ми робили випуски лише з дефектами, коли не було роботи з точки зору сюжетів у відставанні від IPM; тоді ми просто запланували спринт QA, де нам доручили "вбити якомога більше дефектів". Оскільки, не маючи вимог, готових до роботи, ВИНАГИ винна організація (і ОП працювала для клієнтів), ми можемо просто оформити повідомлення про зміну договору та попрацювати з тим, що у нас було. Звичайно, як тільки фактична робота над історією закінчилася, і ми були в розробці "гарантії", дефекти були все.

У добре керованому проекті Agile втрата вимог ніколи не повинна відбуватися; відставання завжди має бути готовим до роботи, спритненої для спринту. Але іноді виробничі підприємства отримують вимоги до виробничих вимог; іноді БА / тестувальники затримують випуск сюжетів з відставанням у розробці з причин, що стосуються якості вимог або конфліктів історії; Іноді команда вирішує, що їм доведеться «заграти» на історію, яка не була чітко визначеною або добре оціненою, і немає того, що може легко зайняти решту циклів. Коротше кажучи, навіть у Agile, лайно трапляється.


3
Я думаю, що Agile полягає в тому, що ми очікуємо, що це відбудеться.
Меттью Флінн

Якщо ваш процес збирання автоматично позначає пакети, код не потрібно "заморожувати"? Робота може продовжуватися, перевірена версія може бути висунута тощо.
dietbuddha

"Заморожування" було символічним; ми в основному сказали, що остання збірка, для якої CI пройшла станом на 17:00 четверга, була збіркою випуску, і ми вирізали відділення SVN для цієї версії та продовжили роботу. Якщо ви до цього часу не зробили або ваша комісія не пройшла всі тести на CI, вона не була випущена.
KeithS

1

Що ви маєте на увазі під звільненням? Якщо ви маєте на увазі PSP - напевно, товар, який можна перевезти, у вас є два варіанти:

  • Scrum за книгою (або Scrum level 2) у вас є PSP в кінці спринту, і саме це ви показуєте на ретроспективній зустрічі
  • Я також познайомився з терміном Scrum level 3, де команда освоїла свої інструменти, такі як контроль над джерелами та безперервна інтеграція та перейшла до безперервної доставки. Така команда здатна мати PSP після кожного нічного побудови (або в кожному кращому випадку). Наявність PSP після кожної збірки не означає, що ви показуєте її замовнику після кожної збірки - це все-таки лише внутрішній реліз.

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


це офіційні назви "рівнів scrum"? Я погуглив його і нічого не знайшов.
Девід

@David: Я не думаю, що це щось офіційне. Це просто ще один підхід до вимірювання «зрілості Scrum» - я знайшов цю презентацію, де обговорювались ці рівні, але я зустрів її на курсі CSM.
Ладислав Мрнка

0

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

Жоден з них не означає, що він не представлений на зустрічі з огляду / планування спринту. Концепція полягає в тому, що все, що склала Команда, показано на ПП (та інших МСП клієнтів), щоб вони могли включити її у своє зростаюче розуміння системи в міру її розвитку.


0

Через пару тижнів ми знайшли хороше рішення, яке відповідає нашим потребам. Ми вирішуємо звільнити коли завгодно. Як ми це робимо:

  1. коли коли-небудь хтось вирішить випустити фактичну гілку розробки, він з’єднує всі зміни в головній гілці, позначивши її новим номером випуску та перейшовши на нашу систему постановки.
  2. ніж наша QA та всі інші команди отримують пошту з фактичним журналом змін, і вони перевіряють систему постановки
  3. якщо вони знайшли помилок, ми виправляємо їх у майстрі, підштовхуємо його до постановки, а потім об'єднуємо майстра назад у галузь розвитку
  4. коли система постановки пройшла QA, майстер виходить у прямому ефірі

Це воно. Ми використовуємо git та maven як систему CI, і ми маємо гарне тестове покриття. Це одна з причин, коли ми можемо зробити так.


0

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

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

АЛЕ надзвичайні ситуації, помилки, несподівані події тощо можуть змусити вашу руку, і саме тут ідея, якщо "Планування випуску" може стати в нагоді. Під "Плануванням випусків" я не маю на увазі планування типу водоспадів, а скоріше планування очікувань, яке може допомогти керувати відставанням продукту та пріоритетом розповідей у ​​спринтах.

Але, можливо, коментар Девіда щодо цього питання є найкращим для розгляду. Scrum - це не завжди правильна відповідь.

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