2. План занятия
Обзор основных методологий разработки
Практика работы по этим методологиям
Инструменты для управления процессом разработки
2
3. Этапы создания проекта
Этапы:
1. Анализ предметной области и постановка задачи
2. Проектирование, уточнение ТЗ
3. Разработка
4. Анализ разработанного продукта (ревью, тесты)
5. Ввод в эксплуатацию
3
4. Модель жизненного цикла
Модель жизненного цикла — обобщенное описание
процесса развития
Принципиально разные подходы:
Интенсивное планирование
Гибкая разработка
4
6. Модели разработки
Водопадная (каскадная) модель
Первая описанная модель (1970 год)
Каждый этап — строго последовательно
Фаза начинается только после завершения предыдущей
Результат каждой фазы документируется
6
8. Модели разработки
Водопадная (каскадная) модель
Определение требований (анализ)
Планирование (проектирование) ПО
(структуры данных, архитектура, алгоритмистика)
Реализация и тестирование модулей
Интеграция и тестирование системы
Эксплуатация и сопровождение
8
9. Модели разработки
Водопадная (каскадная) модель
Минусы:
Недостаточная гибкость
Формальное (документоориентированное)
управление проектом
Задержка в получении результатов
Плюсы
Подходит для больших проектов и команд
Снижает риски, делает проект прозрачным
Предсказуемость
9
13. Модели разработки
Прототипирование
Минусы
недостаточный анализ
смешение прототипа и готовой системы
чрезмерное время на создание прототипа
Плюсы
уменьшение времени, стоимости и рисков
вовлечение заказчика, обратная связь
13
15. Модели разработки
Итерационная модель
Плюсы
Эффективная обратная связь
Акцент на важные задачи
Непрерывное тестирование
Реальная оценка состояния
Затраты распределены равномерно
15
16. Модели разработки
Спиральная модель
Описана в 1986 году
Упор на риски, влияющие на жизненный цикл
Виток — создание прототипа (или версии) ПО
16
19. Модели разработки
Спиральная модель
Риски
Дефицит специалистов
Разная квалификация специалистов
Нереалистичные сроки и бюджет
Реализация несоответствующей функциональности
Разработка неправильного пользовательского
интерфейса
19
20. Модели разработки
Спиральная модель
Риски
Перфекционизм, ненужная оптимизация и
оттачивание деталей
Непрекращающийся поток изменений
Нехватка информации о внешних компонентах
Недостатки в работах, выполняемых внешними
ресурсами
Недостаточная производительность сисоемы
20
22. Методологии разработки
RAD — Rapid Application Development
Принципы:
Инструментарий должен минимизировать время (3-4 месяца)
Управление проектом — тоже
Цикличность разработки
Создание прототипов (инкрементных)
Минимизация времени разработки за счет переноса кода
Небольшая команда (2-10 человек)
22
23. Гибкие методологии
Основные идеи
люди и взаимодействие важнее процессов и инструментов
работающий продукт важнее исчерпывающей документации
сотрудничество с заказчиком важнее согласования условий
контракта
готовность к изменениям важнее следования
первоначальному плану
23
26. Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Разработка через тестирование (TDD)
Игра в планирование
Заказчик рядом
Парное программирование
Непрерывный процесс
Понимание и простота
Социальная защищенность
26
27. Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Непрерывная интеграция
Рефакторинг
Частые небольшие релизы
Понимание и простота
Социальная защищенность
27
28. Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Понимание и простота
Простота дизайна
Архитектура (метафора) системы
Стандарты кодирования
Коллективная ответственность за код
Социальная защищенность
28
30. Гибкие методологии
Scrum
Небольшие многофункциональные команды
Хорошо декомпозированный список задач с
приоритетами (бэклог продукта и спринта)
Контроль выполнения спринта
Итерации с итоговой демонстрацией
Ретроспектива процесса
30
34. Гибкие методологии
Feature driven development
Особенности:
планирование набора фич
разделение разработчиков на два вида
(старшие программисты и владельцы классов)
персональная ответственность за код
34
35. Гибкие методологии
Длина итерации
XP
— 1-3 недели
Scrum
— 2-4 недели
Канбан
— без ограничений
FDD
— 2 недели
Чем меньше длина итерации, тем проще реагировать на изменения
35
36. Гибкость или предсказуемость
Гибкость
Неясные или изменяющиеся требования к системе
Разработчики недостаточно знакомы с предметной областью
Ответственные и квалифицированные разработчики
Понимающий заказчик, участвующий в разработке
Предсказуемость
Требования стабильны, объем фиксирован
Большая команда разработчиков
Разработчики знакомы с предметной областью
36
37. Выбор методологии
Какая бы методология ни была бы выбрана,
поначалу она не совсем вам подойдет
Вы должны контролировать процесс, отслеживать его
и подстраивать под ваши конкретные нужды
37
38. Выбор методологии
Разные проекты — разные методологии
Разные этапы проекта — разные методологии
Можно комбинировать
Можно изменять (на то они и гибкие)
38
39. Выбор методологии
Методология Денег
Заказчиков много, владелец бэклога — один
Бэклог продукта – смесь приоритетов и рангов
Бэклог итерации – группировка по важности
Длина итерации — неделя
39
40. Выбор методологии
Методология Денег
Этапы и особенности:
постановка задач в план итерации
оценка сроков
формирование итогового списка задач
определение приоритетов
распределение задач и контроль выполнения
визуализация
40
41. Инструменты для управления
Множество систем управления задачами
Mail.Ru: изначально своя, сейчас — Jira
Классическая система Рабочих столов
Scrum-стиль
Канбан-стиль
41
54. Резюме
В веб-разработке наиболее актуальна
итерационная модель
Гибких методологий много, на любой вкус
Методологии нужно пробовать и менять под себя
Технические средства упрощают управление
54