Источник: http://wa.artel.by/
Методология SCRUM предназначена для маленьких команд.
Проект начинается с создания "резерва свойств системы" (backlog). Резерв свойств - это набор функций системы, которые необходимо реализовать. Сами функции могут быть описаны с помощью пользовательских сценариев или более традиционных требований. Контроль над резервом имеет только один человек, обычно это заказчик системы. Резерв постоянно изменяется, функции дополняются и сортируются по приоритетам.
После того, как резерв будет немного наполнен, начинается первая итерация. Весь проект делится на итерации (в SCRUM итерацию называют спринтом) длительностью в 30 дней. Правда, длительность итерации можно варьировать, это зависит от конкретного проекта. Для одной итерации выбирают функции, которые будут в ней реализованы. Самое важное условие - неизменность выбранных функций во время одной итерации. Это позволяет разбить весь большой проект с изменяющимися требованиями на некоторое количество фиксированных небольших итераций со стабильными требованиями.
Важно отметить, что запланированная дата окончания итерации должна жестко соблюдаться. Команда может не реализовать некоторые из выбранных для итерации функций, но дату окончания итерации переносить нельзя.
Отличительной чертой SCRUM является проведение ежедневных 15-30 минутных совещаний, которые так и называются scrum (потасовка). В ходе этих совещание лидер команды задает каждому следующие вопросы:
Это позволяет четко отслеживать ход проекта, быстро обнаруживать возникающие проблемы и, соответственно, быстро реагировать на них. Кроме того, такие ежедневные совещания укрепляют командный дух, что немаловажно.
В конце спринта команда представляет работающий продукт с запланированной функциональностью. После этого устраивается совещание, на котором обсуждаются все неожиданные моменты, с которыми столкнулись разработчики и планируется следующая итерация. Кроме того, на этом совещании можно изменять приоритеты и вообще все изменять.
Crystal - это не просто методология, это целое семейство методологий, разработанное Алистером Коберном Коберн весьма незаурядный человек, который отличается оригинальными взглядами ни создание ПО.
Коберн рассматривает процесс создания ПО как конечную целенаправленную игру и утверждает, что у этой игры есть всего две цели: главная и вспомогательная. Главная цель заключается в том, чтобы успешно закончить проект, то есть создать работающий продукт. Второстепенная цель - подготовиться к следующей игре. Для достижения этой цели может понадобиться документация, качественное написание кода, то есть все, что облегчает дальнейшее развитие и поддержку продукта.
Если в процессе разработки достигнуты обе цели, то проект считается успешным. Помимо конечного продукта, всегда создаются вспомогательные промежуточные продукты: модели, схемы, описания и т.п. Логично, что их должно быть ровно столько, сколько необходимо для достижения конечной цели. Проблема в том, что очень сложно заранее предсказать, какие промежуточные продукты нужны, а какие нет.
Ну конечно семейство методологий Crystal построено на итеративной разработке. Продолжительность итерации может изменяться в пределах от 1 месяца, до 4 месяцев. Чем меньше итерация, тем лучше.
Важной особенностью Crystal является непрерывная настройка методологии. Это позволяет постепенно адаптировать ее для конкретной команды и конкретного проекта. Пожалуй, ни в одной другой методологии настройке не уделяется такого внимания.
После каждой итерации команда собирается вместе и обсуждает, какие практики полезны и надо продолжать их использовать в дальнейшем, а какие надо исключить вовсе. Обсуждается необходимость промежуточных продуктов, имеющиеся недостатки и т.п. В результате принимается решение о том, какие практики помогут исправить недостатки, а затем с согласия разработчиков начинается их внедрение.
Семейство методологий построено по нескольким принципам. Коберн классифицирует проекты по двум параметрам: критичность и величина команды. Под критичностью понимается величина ущерба, нанесенного в результате использования продукта. Например, ошибка в ПО для космического корабля или для аппарата искусственного дыхания несравнима с ошибкой в ПО для форума на сайте. Жизненно-важные проекты имеют категорию L, а те, ошибка в которых обозначает потерю удобств, категорию C.
Степень важности нарастает по вертикально оси. Величина команды нарастает по горизонтальной оси. В результате получается семейство методологий, которые можно изобразить так:
Названия методологиям даются по величине команды. Например, методологию Crystal Clear можно использовать в проектах класса C-D для команд с численностью до 6 человек. Методологию Crystal Orange для проектов класса C-E с численностью до 40 человек.
Чем ниже критичность и чем меньше команда, тем более "легкую" методологию нужно использовать. Самой легкой из всего семейства является методология Crystal Clear.
Подходит для команд численностью до 6 человек. Главные принципы:
В команде выделяются следующие роли: спонсор, старший проектировщик-программист, проектировщик-программист, пользователь (должен присутствовать хотя бы часть времени). Самым главным в команде является старший проектировщик-программист, он должен быть самым опытным и помогать другим членам команды.
Практики проекта:
Может показаться, что данных практик маловато для нормального процесса. На самом деле существует достаточно много примеров успешного применения Crystal Clear.
Гибкие методологии имеют свои особенности. Они закреплены в манифесте быстрой разработки программного обеспечения, который был принят в 2001 году группой Agile Alliance. Небольшая цитата:
"Мы открываем новые способы разработки ПО, создавая его сами и помогая другим. Благодаря этой работы мы стали ценить:
Индивидуумов и взаимодействия выше процессов и инструментов Работающее ПО выше всеобъемлющей документации Сотрудничество с заказчиками выше согласования условий договора Реагирование на изменения выше соблюдения плана".
Нельзя не согласится с этими утверждениями.
Недавно в продаже появилась книга Алистера Коберна "Быстрая разработка программного обеспечения", очень советую. Пока ее можно купить в интернет-магазине Rodina.by