Scrum – универсальная методология для управления проектами
Scrum (от англ. scrum «толкучка») — методология управления проектами, активно применяющаяся при разработке информационных систем для гибкой разработки программного обеспечения. Scrum чётко делает акцент на качественном контроле процесса разработки.
Scrum - адаптивная методология, бездумное применение которой может порождать культ Карго в IT.
Backlog — документ, который содержит список всех требований к проекту (виденье проекта, список того, что должно быть реализовано). Пункты списка упорядочены по степени важности. По ходу проекта список и приоритеты могут меняться, в зависимости от потребностей заказчика, новых идей или изменяющихся условий.
Да, в классическом Scrum подразумевается, что заказчик проекта может вносить любые изменения прямо по ходу проекта (но не в текущий этап разработки). Однако в случае разработки сайтов, бюджет по большей части фиксирован (исключение - некоторые startup-проекты). А значит, и возможности заказчика влиять на ход выполнения - тоже ограничены.
Тем не менее, я считаю, что потребность добавлять или менять какие-либо функции проекта для заказчика очень актуальна. Это помогает разработать проект, который действительно нужен клиенту, а не то, что формально описано в ТЗ. Поэтому, в качестве backlog-а у нас, как правило, используется перечень задач из технического задания, очерченных и закрепленных в договоре, плюс фиксированные в доп-соглашениях доработки, возникающие по ходу работы.
Scrum — простой процесс. Вначале так называемый «владелец продукта» — представитель заказчика или человек, который работает с заказчиком, — расставляет приоритеты в списке требований к программному продукту и передает этот список команде Scrum. Команда определяет, как много верхних элементов списка она в состоянии реализовать за 30 дней или меньше. Истоки Scrum лежат в принципах так называемого «экономного производства» (lean manufacturing), именно оттуда взят доказавший на практике свою эффективность принцип «вытягивания» требований. Для каждой очередной итерации команда «вытягивает» верхние элементы из списка приоритетов, разбивает полученный в результате список функций на список конкретных задач и начинает работать.
Scrum подразумевает ежедневные встречи команды, в которую входит семь плюс-минус два человека. На таких встречах каждый участник разработки отчитывается, что он сделал вчера, что должен сделать сегодня, какие проблемы у него возникли. В ходе общего сбора ищутся способы разрешения этих проблем. Как показывает опыт, такие ежедневные встречи способствуют продуктивности разработки.
Команда в Scrum работает на принципах самоорганизации: сама оценивает, какие функции из общего списка она в состоянии реализовать в тридцатидневный срок, и формирует соответствующий список работ, тем самым всегда стараясь выбрать наиболее быстрый способ построения приложения. Задача лидера команды — мастера Scrum — состоит в том, чтобы предоставить команде все возможности для реализации выбранных задач, но не диктовать, что должен делать каждый участник разработки. Директивный стиль управления, при котором менеджер определяет задачи членов команды, часто замедляет процесс, мешает людям самим выбирать, как выполнить работу наилучшим образом.
Посмотрите другие статьи по теме Личная эффективность: Постановка задач – метод SMART