Відповіді:
TL; DR: Відпустіть, коли це доречно
Ми робимо випуски, коли є цінність у виконанні релізу. Іноді це означає робити випуск після того, як буде виконана одна функція або помилка. Іноді це означає випуск колекції функцій та / або помилок.
Це не означає, що у нас часто виникають "надзвичайні ситуації", які вимагають швидкого випуску. Це означає, що ми наполегливо працювали, щоб зробити випуски легкими. Наш код перевіряється, маркується та пакується з кожною збіркою. Ми використовуємо автоматизовані тести прийняття, і в результаті ми виробили високу довіру до коду, який проходить його тести. Оскільки наші пакунки одразу доступні через місцевий yum repo, який розгортає реліз, є тривіальним.
Ніколи протягом. Це порушує основні передумови "спринту". Ви біжите, поки не закінчите те, що зобов’язали закінчити. Після того як ви закінчите, це дійсно зроблено і справді працює. Потім ви можете звільнити його.
Випуск може бути окремим видом спринту, де речі упаковані для випуску.
Випуски помилок можуть бути лише короткими спринтами. Відсутність регулярного розкладу спринтів однакової довжини вважається багатьма поганою ідеєю. Тому звичайним правилом є те, що виправлення помилок - це просто перша пріоритетна робота, що відбувається під час наступного спринту.
Якщо це надзвичайна ситуація, у вас відбувається занадто багато речей - підтримка та розвиток - і вам слід подумати про зміну організації, щоб менше сталося.
Якщо робота, на яку береться команда, сприяє виконанню декількох релізів у спринті, відпускайте її так часто, як вам захочеться.
Те саме стосується випусків виправлень дефектів - якщо є сенс випустити їх, зробіть це.
Остання робота Agile, в якій я працював, випускала кожен спринт; код заморожували кожного другого четверга (двотижневі спринти), після чого продукт був упакований і опублікований на сервері UAT, з яким наші клієнти могли працювати. Це було під час початкової розробки продукту; для зрілого продукту, особливо дистрибутивної програми, а не веб-програми, ви, ймовірно, не хочете обтяжувати своїх користувачів оновленням кожні два-три тижні.
Практично всі наші випуски включали сукупність сюжетних моментів та дефектів (помилок). Дефекти зараховуються як "неідеальні години"; є 5 ідеальних годин у робочий день, тобто кодування новою роботою вниз. Інші три-чотири години на день - це зустрічі, дискусії, дизайн, іноді "шипи" (цілеспрямоване дослідження / розробка доказів концепції) та робота з дефектами; матеріал, який сприяє кращому продукту і є необхідною частиною процесу, але просто не може зайняти весь спринт всієї команди. Єдиний раз, коли ми робили випуски лише з дефектами, коли не було роботи з точки зору сюжетів у відставанні від IPM; тоді ми просто запланували спринт QA, де нам доручили "вбити якомога більше дефектів". Оскільки, не маючи вимог, готових до роботи, ВИНАГИ винна організація (і ОП працювала для клієнтів), ми можемо просто оформити повідомлення про зміну договору та попрацювати з тим, що у нас було. Звичайно, як тільки фактична робота над історією закінчилася, і ми були в розробці "гарантії", дефекти були все.
У добре керованому проекті Agile втрата вимог ніколи не повинна відбуватися; відставання завжди має бути готовим до роботи, спритненої для спринту. Але іноді виробничі підприємства отримують вимоги до виробничих вимог; іноді БА / тестувальники затримують випуск сюжетів з відставанням у розробці з причин, що стосуються якості вимог або конфліктів історії; Іноді команда вирішує, що їм доведеться «заграти» на історію, яка не була чітко визначеною або добре оціненою, і немає того, що може легко зайняти решту циклів. Коротше кажучи, навіть у Agile, лайно трапляється.
Що ви маєте на увазі під звільненням? Якщо ви маєте на увазі PSP - напевно, товар, який можна перевезти, у вас є два варіанти:
Основна відмінність між рівнем 2 та рівнем 3 полягає в тому, що на рівні 2 ви повинні докласти певних зусиль, щоб зробити кінцевий PSP в кінці спринту, але на рівні 3 ви вкладете трохи грошей і зусиль спочатку в свої інструменти та конфігурації, і у вас є підготовлений PSP автоматично весь час = ручних зусиль не задіяно. Повністю досягти рівня 3 зустрічається рідко.
В Scrum абсолютно немає правил щодо того, коли можуть бути розгорнуті нові функції. Кожна команда повинна мати "визначення готового", яке завжди повинно включати деякі критерії щодо тестування. Після того, як функція буде зроблена, вона готова до реального світу, і якщо немає інших залежностей або умов, які потрібно виконати, перш ніж її можна буде розгорнути, то немає ніяких причин чекати закінчення спринту до розгорнути його.
Жоден з них не означає, що він не представлений на зустрічі з огляду / планування спринту. Концепція полягає в тому, що все, що склала Команда, показано на ПП (та інших МСП клієнтів), щоб вони могли включити її у своє зростаюче розуміння системи в міру її розвитку.
Через пару тижнів ми знайшли хороше рішення, яке відповідає нашим потребам. Ми вирішуємо звільнити коли завгодно. Як ми це робимо:
Це воно. Ми використовуємо git та maven як систему CI, і ми маємо гарне тестове покриття. Це одна з причин, коли ми можемо зробити так.
Відповідь на питання, якому майже 2 роки, може бути трохи зайвим, але, сподіваюся, додасть значення для інших, хто приходить до цього питання, я хотів би додати 2 центри або близько того. :)
Щоб відповісти на запитання: бажано випустити те, що було здійснено у спринті, наприкінці цього спринту. Це стосується всіх інших частин / процесів / керівних принципів scrum, які спрямовані на отримання найкращої ділової цінності в потрібний час.
АЛЕ надзвичайні ситуації, помилки, несподівані події тощо можуть змусити вашу руку, і саме тут ідея, якщо "Планування випуску" може стати в нагоді. Під "Плануванням випусків" я не маю на увазі планування типу водоспадів, а скоріше планування очікувань, яке може допомогти керувати відставанням продукту та пріоритетом розповідей у спринтах.
Але, можливо, коментар Девіда щодо цього питання є найкращим для розгляду. Scrum - це не завжди правильна відповідь.