Обзор гибких методологий разработки ПО (Agile) Антон Бевзюк (Intel)
Проблема 1 Написание софта – сложная задача
Проблема 2 Очень мало успешных проектов Standish Group CHAOS Report
Проблема 3 Программа делает не то, что нужно пользователям CHAOS Chronicles v3.0
Проблема 4 Сложно вносить изменения Стоимость изменения Время Сбор требований Тестирование Поставка Традиционный проект Agile проект Усилия / Стоимость Сложный дизайн Поиск дефекта Исправление дефекта Деплой Эволюционирующий дизайн Меньше дефектов Постоянное тестирование Быстрая обратная связь
Методологии Waterfall Spirale Agile – Scrum – XP – Lean – …
Водопад Анализ требований Дизайн Разработка Тестирование Поддержка
В чем проблема? Единственный период, когда можно что-то узнать о проекте – начало. Тестирование откладывается на последнюю фазу, когда уже поздно что-то менять Обозначение проблемы становится проблемой Избыточная специализация «Это не моя проблема»
Чего мы хотим? Любое изменение, в любое время, в любом порядке Продуктивность, качество, низкая стоимость, высокая мораль Реальный прогресс Учиться на ошибках как можно раньше Меньше административной работы, больше работы, которая приносит пользу
Agile Manifesto Люди и их взаимодействие Процессы и инструменты Работающее программное обеспечение Взаимодействие с заказчиком Исчерпывающая документация Обсуждение контракта Реагировать на изменения Следовать плану важнее, чем
Что такое Agile методология? Прикладная методология – Набор лучших прикладных практик, позволяющие быстро создавать качественный программный продукт Управление проектом – Процесс управления проектом, предусматривающий постоянный контроль и адаптацию Лидерство – Философия лидерства, поощряющая командную работу и ответственность
Как происходит разработка Agile проекта? Итеративный (эволюционный) подход в тесно взаимодействующей самоорганизующейся команде с минимумом формальностей, который производит качественное ПО, которое соответствует постоянно меняющимсся требованиям, экономя время и деньги заказчиков.
Успешное использование Agile SCRUM is used by: – Microsoft – Yahoo – Google – Electronic Arts – Time Warner – Lockheed Martin – Philips – Siemens – Nokia – Capital One – BBC – Intuit – Intel
Простота
Тестируем все
Постоянная интеграция
Парное программирование
TDD Подумать! Красный Зеленый Рефакторинг Повторить
Тесное взаимодействие
Частые релизы
Видимый прогресс
Покупайте те, что вам нужно, а не то, что хотите
Есть чем похвастаться
Не верите? не верьте... думайте сами... попробуйте... посмотрите, что получилось... используйте
Вопросы
Спасибо за внимание!