Какова связь между Scrum Agile и RUP?
Существует связь между Agile и RUP. На самом деле, я думал, что Agile-разработка была своего рода RUP. В статье от IBM выше вы можете видеть, что они подгоняют модель к RUP.
Есть ли у кого-нибудь практическое объяснение связи между этими тремя интересными понятиями.
6 ответов
Они обе итерационные модели, которые кажутся похожими, но обе они сильно различаются. RUP - это структура для организаций и групп, в то время как Scrum предназначена для группы разработчиков продуктов со строгими правилами.
Agile в общем смысле для таких методов, как XP, Scrum, Crystal, DSDM, FDD,... которые разделяют общие принципы. Унифицированный процесс - это структура, которая может использоваться для описания процесса разработки, RUP является одним из экземпляров UP на основе инструментов Rational. UP предшествует большинству Agile-методов и может или не может рассматриваться как Agile. Общим для них является то, что и Agile-методы, и UP являются методами итеративной и инкрементальной разработки (IID).
RUP - это всеобъемлющий итеративный и инкрементный шаблон процесса. Вы создаете "Вариант разработки", который информирует вас о том, какие компоненты процесса вам понадобятся в вашем экземпляре процесса разработки. Затем вы извлекаете необходимые компоненты процесса из RUP, например, выбираете элементы из меню.
"Agile" - это общий термин, который описывает набор процессов, которые основаны на предположении, что разработка программного обеспечения - это процесс обучения, а не определенный процесс, и что большинство артефактов и практик высокой церемонии препятствуют процессу обучения.
SCRUM - это особый процесс управления Agile-проектами. В нем нет положений о том, как на самом деле проектировать и разрабатывать создаваемую систему.
Ну, RUP - это "суп" из практики... Вы должны настроить его так, чтобы он выпивал свой "собственный" суп... В противном случае он "убьет" ваш проект...
- В гибком управлении проектами, методы адаптированы из теории сложных адаптивных динамических систем... Он имеет нежный контакт с "человеком"... RUP мало что говорит о "кадровом" управлении проектами...
- Гибкие методы говорят о "эмерджентной" архитектуре... Где RUP ориентирован на архитектуру... Хочет от вас сначала установить стабильную архитектуру.
Но вы можете применять RUP гибким способом... Или вы можете скрыть / украсть много технических приемов (супы / рецепты супа) из него...
Agile и RUP росли раздельно, RUP на основе UML, и теперь IBM пытается догнать гибкую волну, потому что в RUP больше нет большого шума.
Agile - это подход к разработке программного обеспечения:
(цитируется с сайта Agile Alliance)
Что такое гибкая разработка программного обеспечения?
В конце 1990-х несколько методологий стали привлекать все большее внимание общественности. У каждого было своеобразное сочетание старых идей, новых идей и трансмутированных старых идей. Но все они подчеркивали тесное сотрудничество между командой программистов и бизнес-экспертами; личное общение (как более эффективное, чем письменная документация); частая поставка новой развертываемой коммерческой ценности; плотные, самоорганизующиеся команды; и способы создания кода и команды таким образом, чтобы неизбежный отток требований не был кризисом.
Scrum и RUP - это специальные методы разработки программного обеспечения, которые могут обеспечить гибкую разработку программного обеспечения. Эти методы (и другие, такие как XP) не являются взаимоисключающими и могут комбинироваться многими способами для адаптации гибкого процесса, подходящего для конкретного проекта. Это хорошая статья, описывающая, как эти методы могут быть объединены.