Ответ
Scrum — это фреймворк гибкой (Agile) разработки ПО, основанный на итеративной и инкрементальной поставке ценности.
Ключевые роли:
- Product Owner (Владелец продукта): Формирует и приоритизирует Product Backlog.
- Scrum Master: Обеспечивает понимание и соблюдение процессов Scrum, устраняет препятствия.
- Development Team (Команда разработки): Самоорганизующаяся кросс-функциональная команда, выполняющая работу.
Основные артефакты и события:
- Product Backlog: Упорядоченный список всех требований к продукту.
- Sprint Backlog: Набор элементов из Product Backlog, выбранных для реализации в текущем спринте.
- Спринт: Итерация фиксированной длины (обычно 2-4 недели).
- События:
- Sprint Planning: Планирование работ на спринт.
- Daily Scrum: Ежедневный 15-минутный митинг для синхронизации.
- Sprint Review: Демонстрация инкремента продукта стейкхолдерам.
- Sprint Retrospective: Ретроспектива для улучшения процессов команды.
Пример структуры элемента бэклога:
struct ProductBacklogItem {
let id: String
let title: String
let description: String
let priority: Int // Чем меньше число, тем выше приоритет
var estimate: Int? // Оценка в story points
}
// Пример использования
var backlog = [ProductBacklogItem]()
backlog.append(ProductBacklogItem(id: "US-42", title: "Реализовать OAuth-авторизацию", description: "Пользователь может войти через Google", priority: 1))
Преимущества: Прозрачность, адаптивность к изменениям, регулярная поставка работающего ПО и быстрая обратная связь.