Разработка веб-сервисов осень 2013 лекция 2
TRANSCRIPT
![Page 1: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/1.jpg)
Разработкавеб-сервисов
Беседа 2: Методологии разработки
![Page 2: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/2.jpg)
План занятия
Обзор основных методологий разработки
Практика работы по этим методологиям
Инструменты для управления процессом разработки
2
![Page 3: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/3.jpg)
Этапы создания проекта
Этапы:
1. Анализ предметной области и постановка задачи
2. Проектирование, уточнение ТЗ
3. Разработка
4. Анализ разработанного продукта (ревью, тесты)
5. Ввод в эксплуатацию
3
![Page 4: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/4.jpg)
Модель жизненного цикла
Модель жизненного цикла — обобщенное описание процесса развития
Принципиально разные подходы:
Интенсивное планирование
Гибкая разработка
4
![Page 5: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/5.jpg)
Модели разработки
Водопадная (каскадная) модель
Прототипирование
Итерационная модель
Спиральная модель
5
![Page 6: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/6.jpg)
Модели разработки
Водопадная (каскадная) модель
Первая описанная модель (1970 год)
Каждый этап — строго последовательно
Фаза начинается только после завершения предыдущей
Результат каждой фазы документируется
6
![Page 7: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/7.jpg)
Модели разработки
7
Водопадная (каскадная) модель
![Page 8: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/8.jpg)
Модели разработки
Водопадная (каскадная) модель
Определение требований (анализ)
Планирование (проектирование) ПО (структуры данных, архитектура, алгоритмистика)
Реализация и тестирование модулей
Интеграция и тестирование системы
Эксплуатация и сопровождение
8
![Page 9: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/9.jpg)
Модели разработки
Водопадная (каскадная) модель
Минусы:
Недостаточная гибкость
Формальное (документоориентированное)управление проектом
Задержка в получении результатов
Плюсы
Подходит для больших проектов и команд
Снижает риски, делает проект прозрачным
Предсказуемость
9
![Page 10: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/10.jpg)
Модели разработки
V-модель
Левая сторона: задачи разработки
Правая: задачи тестирования
Преимущества и недостатки
те же, что и у каскадной
10
![Page 11: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/11.jpg)
Модели разработки
Прототипирование
прототипирование — создание макетов
1. Определение требований
2. Создание первого прототипа
3. Изучение прототипа заказчиком, обратная связь
4. Улучшение прототипа
5. goto 3
11
![Page 12: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/12.jpg)
Модели разработки
Прототипирование
Быстрое — макет выбрасывается
Эволюционное — макет дорабатывается
12
![Page 13: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/13.jpg)
Модели разработки
Прототипирование
Минусы
недостаточный анализ
смешение прототипа и готовой системы
чрезмерное время на создание прототипа
Плюсы
уменьшение времени, стоимости и рисков
вовлечение заказчика, обратная связь
13
![Page 14: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/14.jpg)
Модели разработки
Итерационная модель
Работы параллельно с анализом результатов
Повторяющийся цикл
Планирование
Реализация
Проверка
Оценка
14
![Page 15: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/15.jpg)
Модели разработки
Итерационная модель
Плюсы
Эффективная обратная связь
Акцент на важные задачи
Непрерывное тестирование
Реальная оценка состояния
Затраты распределены равномерно
15
![Page 16: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/16.jpg)
Модели разработки
Спиральная модель
Описана в 1986 году
Упор на риски, влияющие на жизненный цикл
Виток — создание прототипа (или версии) ПО
16
![Page 17: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/17.jpg)
Модели разработки
Спиральная модель
17
![Page 18: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/18.jpg)
Модели разработки
Спиральная модель
Секторы спирали:
Постановка задач
Оценка и сокращение рисков
Разработка и тестирование
Планирование
18
![Page 19: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/19.jpg)
Модели разработки
Спиральная модель
Риски
Дефицит специалистов
Разная квалификация специалистов
Нереалистичные сроки и бюджет
Реализация несоответствующей функциональности
Разработка неправильного пользовательского интерфейса
19
![Page 20: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/20.jpg)
Модели разработки
Спиральная модель
Риски
Перфекционизм, ненужная оптимизация и оттачивание деталей
Непрекращающийся поток изменений
Нехватка информации о внешних компонентах
Недостатки в работах, выполняемых внешними ресурсами
Недостаточная производительность сисоемы
20
![Page 21: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/21.jpg)
Методологии разработки
Примеры методологий
RUP — Rational Unified Process
RAD — Rapid Application Development
Agile — гибкие методологии
21
![Page 22: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/22.jpg)
Методологии разработки
RAD — Rapid Application Development
Принципы:
Инструментарий должен минимизировать время (3-4 месяца)
Управление проектом — тоже
Цикличность разработки
Создание прототипов (инкрементных)
Минимизация времени разработки за счет переноса кода
Небольшая команда (2-10 человек)
22
![Page 23: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/23.jpg)
Гибкие методологии
Основные идеи
люди и взаимодействие важнее процессов и инструментов
работающий продукт важнее исчерпывающей документации
сотрудничество с заказчиком важнее согласования условийконтракта
готовность к изменениям важнее следования первоначальному плану
23
![Page 24: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/24.jpg)
Гибкие методологии
Примеры методологий
Экстремальное программирование
Scrum
Канбан
Feature driven development
24
![Page 25: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/25.jpg)
Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Понимание и простота
Социальная защищенность
25
![Page 26: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/26.jpg)
Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Разработка через тестирование (TDD)
Игра в планирование
Заказчик рядом
Парное программирование
Непрерывный процесс
Понимание и простота
Социальная защищенность
26
![Page 27: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/27.jpg)
Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Непрерывная интеграция
Рефакторинг
Частые небольшие релизы
Понимание и простота
Социальная защищенность
27
![Page 28: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/28.jpg)
Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Понимание и простота
Простота дизайна
Архитектура (метафора) системы
Стандарты кодирования
Коллективная ответственность за код
Социальная защищенность
28
![Page 29: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/29.jpg)
Гибкие методологии
Экстремальное программирование (XP)
Короткий цикл обратной связи
Непрерывный процесс
Понимание и простота
Социальная защищенность
40-часовая рабочая неделя
29
![Page 30: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/30.jpg)
Гибкие методологии
Scrum
Небольшие многофункциональные команды
Хорошо декомпозированный список задач с приоритетами (бэклог продукта и спринта)
Контроль выполнения спринта
Итерации с итоговой демонстрацией
Ретроспектива процесса
30
![Page 31: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/31.jpg)
Гибкие методологии
Scrum
Этапы «спринта»:
Планирование
Ежедневное совещание (короткое)
Обзор и демонстрация итогов
Ретроспективное совещание
31
![Page 32: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/32.jpg)
Гибкие методологии
Scrum
Задачи совещаний
Ежедневное
Что сделано за день?
Что будет сделано за день?
Какие возникли проблемы?
Ретроспективное
Что было сделано хорошо?
Что нужно улучшить?
32
![Page 33: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/33.jpg)
Гибкие методологии
Канбан
Особенности:
визуализация разработки
ограничение текущего объема работы на каждом этапе
измерение времени выполнения и его уменьшение
33
![Page 34: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/34.jpg)
Гибкие методологии
Feature driven development
Особенности:
планирование набора фич
разделение разработчиков на два вида (старшие программисты и владельцы классов)
персональная ответственность за код
34
![Page 35: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/35.jpg)
Гибкие методологии
Длина итерации
XP — 1-3 недели
Scrum — 2-4 недели
Канбан — без ограничений
FDD — 2 недели
Чем меньше длина итерации, тем проще реагировать на изменения
35
![Page 36: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/36.jpg)
Гибкость или предсказуемость
Гибкость
Неясные или изменяющиеся требования к системе
Разработчики недостаточно знакомы с предметной областью
Ответственные и квалифицированные разработчики
Понимающий заказчик, участвующий в разработке
Предсказуемость
Требования стабильны, объем фиксирован
Большая команда разработчиков
Разработчики знакомы с предметной областью
36
![Page 37: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/37.jpg)
Выбор методологии
Какая бы методология ни была бы выбрана,поначалу она не совсем вам подойдет
Вы должны контролировать процесс, отслеживать его и подстраивать под ваши конкретные нужды
37
![Page 38: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/38.jpg)
Выбор методологии
Разные проекты — разные методологии
Разные этапы проекта — разные методологии
Можно комбинировать
Можно изменять (на то они и гибкие)
38
![Page 39: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/39.jpg)
Выбор методологии
Методология Денег
Заказчиков много, владелец бэклога — один
Бэклог продукта – смесь приоритетов и рангов
Бэклог итерации – группировка по важности
Длина итерации — неделя
39
![Page 40: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/40.jpg)
Выбор методологии
Методология Денег
Этапы и особенности:
постановка задач в план итерации
оценка сроков
формирование итогового списка задач
определение приоритетов
распределение задач и контроль выполнения
визуализация
40
![Page 41: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/41.jpg)
Инструменты для управления
Множество систем управления задачами
Mail.Ru: изначально своя, сейчас — Jira
Классическая система Рабочих столов
Scrum-стиль
Канбан-стиль
41
![Page 42: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/42.jpg)
Инструменты для управления
Jira, классическая система Рабочих столов
42
![Page 43: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/43.jpg)
Инструменты для управления
Jira, scrum-стиль
43
![Page 44: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/44.jpg)
Инструменты для управления
Jira, канбан-стиль
44
![Page 45: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/45.jpg)
Инструменты для управления
Jira, классическая система
Основные элементы:
Рабочие столы (Dashboards)
Гаджеты (фильтры, диаграммы, графики)
45
![Page 46: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/46.jpg)
Инструменты для управления
Jira, классическая система
Гаджеты: фильтры
46
![Page 47: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/47.jpg)
Инструменты для управления
Jira, классическая система
Гаджеты: диаграммы
47
![Page 48: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/48.jpg)
Инструменты для управления
Jira, классическая система
Гаджеты: отчет о времени
48
![Page 49: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/49.jpg)
Инструменты для управления
Jira, классическая система
Гаджеты: не только списки задач!
49
![Page 50: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/50.jpg)
Инструменты для управления
Методология Денег. Бэклог продукта
50
![Page 51: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/51.jpg)
Инструменты для управления
Методология Денег. Недельный план
51
![Page 52: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/52.jpg)
Инструменты для управления
Методология Денег. Текущая итерация
52
![Page 53: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/53.jpg)
Инструменты для управления
Методология Денег. Текущая итерация
53
![Page 54: Разработка веб-сервисов осень 2013 лекция 2](https://reader034.vdocuments.net/reader034/viewer/2022042615/55abe2581a28abcc1f8b45cf/html5/thumbnails/54.jpg)
Резюме
В веб-разработке наиболее актуальна итерационная модель
Гибких методологий много, на любой вкус
Методологии нужно пробовать и менять под себя
Технические средства упрощают управление
54