Если вы представили пользовательскую историю в предыдущем спринте, а затем вам нужно внести изменения в эту функцию в текущем спринте, что вы делаете?
Примеры:
Если вы представили пользовательскую историю в предыдущем спринте, а затем вам нужно изменить ее в новом спринте, что вы делаете?
Вы не знаете. Владелец продукта должен определить приоритеты всей работы в Бэклоге продукта, и никакие незапланированные истории не должны вводиться в текущую итерацию после завершения планирования спринта.
Если вы обнаружите работу, которую необходимо выполнить в будущем спринте, напишите новую пользовательскую историю и отправьте ее владельцу продукта для включения в бэклог продукта. Если это действительно тормоз, который блокирует прогресс в текущем спринте, поднимите этот вопрос внутри команды (например, во время ежедневного стендапа) и позвольте Скрам-мастеру передать его на более высокий уровень.
Рефакторинг не меняет поведение функции, он просто меняет внутреннюю реализацию. Возможно, вам придется реорганизовать существующий код, чтобы приспособить его к новой функции, но старый код должен в основном вести себя так же, и все ваши старые тесты должны пройти.
Кроме того, такие рефакторинги должны быть сведены к абсолютному минимуму, необходимому для реализации новой функции. Сейчас не время возвращаться назад и вносить улучшения или оптимизации, выходящие за рамки истории, над которой вы работаете.
Если вам нужно изменить поведение, улучшить пользовательский интерфейс или оптимизировать часть кода, это новая работа . Он должен быть добавлен в Бэклог Продукта, приоритизированный Владельцем Продукта во время Подготовки Бэклога, а затем добавлен в Бэклог Спринта во время Планирования Спринта для будущего спринта, а не для текущего.
Из каждого правила есть исключения. Вот некоторые примеры:
Scrum и другие agile-фреймворки не должны быть смирительной рубашкой. В системе достаточно гибкости, чтобы приспособиться к вариациям и крайним случаям. Тем не менее, команде действительно необходимо освоить базовые принципы, прежде чем пытаться нарушать такие принципы, как YAGNI , или обходить формальные средства контроля области действия, иначе она рискует превратить свою структуру в ScrumBut или его вызывающий сбой эквивалент.
Тодд А. Джейкобс