Методологии проектного управления
Гибридная методология
«Каскадная/водопадная методология» - Waterfall
Основные этапы Waterfall
Определение требований
Проектирование
Реализация
Тестирование
Техническая поддержка
Основные принципы Waterfall
Жесткая последовательность этапов разработки
Переход к новому этапу только после успешного завершения предыдущего
Фиксированная стоимость продукта
Заказчик не привлекается к непосредственному процессу разработки
Изменения могут быть внесены только после полного завершения всего процесса разработки
Преимущества методологии Waterfall
Понятная и простая структура процесса разработки
Удобная отчетность
Стабильность задач
Оценка стоимости и сроков проекта
Недостатки методологии Waterfall
Инерционность
Лишенный гибкости процесс
Повышенный риск
Стойкость к изменениям
Гибкая методология - Agile
Принципы Agile
Наивысшим приоритетом для нас является удовлетворение потребностей заказчика, благодаря регулярной и ранней поставке ценного программного обеспечения
Изменение требований приветствуется даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения конкурентного преимущества заказчика
Работающий продукт следует выпускать как можно чаще, с периодичностью от двух недель до двух месяцев
На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе
Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте им условия, обеспечьте поддержку — и полностью им доверьтесь
Непосредственное общение — наиболее практичный и эффективный способ обмена информацией как с самой командой, так и внутри команды
Работающий продукт — основной показатель прогресса
Agile помогает наладить устойчивый процесс разработки. Инвесторы, разработчики и пользователи должны иметь возможность бесконечно поддерживать постоянный ритм Многие команды поначалу показывают бурный прогресс, который не получается сохранить до конца проекта
Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта
Простота как искусство сократить до минимума лишнюю работу крайне необходима
Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд
Команда должна систематически анализировать возможные способы улучшения эффективности и соответственно корректировать стиль своей работы
4 главные идеи Agile
Люди и взаимодействие важнее процессов и инструментов
Работающий продукт важнее исчерпывающей документации
Сотрудничество с заказчиком важнее согласования условий контракта
Готовность к изменениям важнее следования первоначальному плану
Преимущества методологии Agile
Во главе угла стоит рабочий продукт как основной показатель прогресса проекта
Короткие и понятные итерации
Минимизация рисков, благодаря гибкой системе внесения изменений
Высокая степень вовлеченности исполнителей, организаторов и заказчиков проекта
Недостатки методологии Agile
Философский характер методологии Agile
Стимулирование постоянных изменений проекта
Сложность подсчета итоговой суммы работы
Повышенные требования к квалификации и опыту команды
Методы Agile
Scrum
Шаги по использованию методики
Выбор владельца продукта
Сбор команды проекта
Поиск Scrum-мастера
Составление бэклог продукта
Планирование спринтов
Организация ежедневных пятиминутных "мит-апов"
Проведение обзора рабочих частей продукта
Проведение ретроспективы
Основные элементы
Product backlog
Sprint backlog
Sprint goal
Sprint burndown chart
Преимущества Scrum
Работающий улучшенный продукт после каждой итерации
Самоорганизованные команды
Легко адаптировать продукт к рынку
Легко масштабируется
Подходит для всего
Недостатки Scrum
Требуется экспертиза в команде
Страх отпустить вожжи
Если известны все требования к продукту - нецелесообразно
Требует дополнительной роли Scrum-мастера
Плохо подходит для больших команд
Kanban
Преимущества Kanban
Визуализация потока предоставления ценности
Быстрое понимание узких мест системы
Обеспечение качества
Недостатки Kanban
Большой уровень гибкости, можно уйти не туда
Рушит российский менталитет ТК РФ
Extreme programming
Feature driven development
Lean software development
Crystal methodologists
Dynamic systems development method