Разработка веб-сервисов осень 2013 лекция 2

55
Разработка веб-сервисов Беседа 2: Методологии разработки

Transcript of Разработка веб-сервисов осень 2013 лекция 2

Page 1: Разработка веб-сервисов осень 2013 лекция 2

Разработкавеб-сервисов

Беседа 2: Методологии разработки

Page 2: Разработка веб-сервисов осень 2013 лекция 2

План занятия

Обзор основных методологий разработки

Практика работы по этим методологиям

Инструменты для управления процессом разработки

2

Page 3: Разработка веб-сервисов осень 2013 лекция 2

Этапы создания проекта

Этапы:

1. Анализ предметной области и постановка задачи

2. Проектирование, уточнение ТЗ

3. Разработка

4. Анализ разработанного продукта (ревью, тесты)

5. Ввод в эксплуатацию

3

Page 4: Разработка веб-сервисов осень 2013 лекция 2

Модель жизненного цикла

Модель жизненного цикла — обобщенное описание процесса развития

Принципиально разные подходы:

Интенсивное планирование

Гибкая разработка

4

Page 5: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Водопадная (каскадная) модель

Прототипирование

Итерационная модель

Спиральная модель

5

Page 6: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Водопадная (каскадная) модель

Первая описанная модель (1970 год)

Каждый этап — строго последовательно

Фаза начинается только после завершения предыдущей

Результат каждой фазы документируется

6

Page 7: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

7

Водопадная (каскадная) модель

Page 8: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Водопадная (каскадная) модель

Определение требований (анализ)

Планирование (проектирование) ПО (структуры данных, архитектура, алгоритмистика)

Реализация и тестирование модулей

Интеграция и тестирование системы

Эксплуатация и сопровождение

8

Page 9: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Водопадная (каскадная) модель

Минусы:

Недостаточная гибкость

Формальное (документоориентированное)управление проектом

Задержка в получении результатов

Плюсы

Подходит для больших проектов и команд

Снижает риски, делает проект прозрачным

Предсказуемость

9

Page 10: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

V-модель

Левая сторона: задачи разработки

Правая: задачи тестирования

Преимущества и недостатки

те же, что и у каскадной

10

Page 11: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Прототипирование

прототипирование — создание макетов

1. Определение требований

2. Создание первого прототипа

3. Изучение прототипа заказчиком, обратная связь

4. Улучшение прототипа

5. goto 3

11

Page 12: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Прототипирование

Быстрое — макет выбрасывается

Эволюционное — макет дорабатывается

12

Page 13: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Прототипирование

Минусы

недостаточный анализ

смешение прототипа и готовой системы

чрезмерное время на создание прототипа

Плюсы

уменьшение времени, стоимости и рисков

вовлечение заказчика, обратная связь

13

Page 14: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Итерационная модель

Работы параллельно с анализом результатов

Повторяющийся цикл

Планирование

Реализация

Проверка

Оценка

14

Page 15: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Итерационная модель

Плюсы

Эффективная обратная связь

Акцент на важные задачи

Непрерывное тестирование

Реальная оценка состояния

Затраты распределены равномерно

15

Page 16: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Спиральная модель

Описана в 1986 году

Упор на риски, влияющие на жизненный цикл

Виток — создание прототипа (или версии) ПО

16

Page 17: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Спиральная модель

17

Page 18: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Спиральная модель

Секторы спирали:

Постановка задач

Оценка и сокращение рисков

Разработка и тестирование

Планирование

18

Page 19: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Спиральная модель

Риски

Дефицит специалистов

Разная квалификация специалистов

Нереалистичные сроки и бюджет

Реализация несоответствующей функциональности

Разработка неправильного пользовательского интерфейса

19

Page 20: Разработка веб-сервисов осень 2013 лекция 2

Модели разработки

Спиральная модель

Риски

Перфекционизм, ненужная оптимизация и оттачивание деталей

Непрекращающийся поток изменений

Нехватка информации о внешних компонентах

Недостатки в работах, выполняемых внешними ресурсами

Недостаточная производительность сисоемы

20

Page 21: Разработка веб-сервисов осень 2013 лекция 2

Методологии разработки

Примеры методологий

RUP — Rational Unified Process

RAD — Rapid Application Development

Agile — гибкие методологии

21

Page 22: Разработка веб-сервисов осень 2013 лекция 2

Методологии разработки

RAD — Rapid Application Development

Принципы:

Инструментарий должен минимизировать время (3-4 месяца)

Управление проектом — тоже

Цикличность разработки

Создание прототипов (инкрементных)

Минимизация времени разработки за счет переноса кода

Небольшая команда (2-10 человек)

22

Page 23: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Основные идеи

люди и взаимодействие важнее процессов и инструментов

работающий продукт важнее исчерпывающей документации

сотрудничество с заказчиком важнее согласования условийконтракта

готовность к изменениям важнее следования первоначальному плану

23

Page 24: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Примеры методологий

Экстремальное программирование

Scrum

Канбан

Feature driven development

24

Page 25: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Экстремальное программирование (XP)

Короткий цикл обратной связи

Непрерывный процесс

Понимание и простота

Социальная защищенность

25

Page 26: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Экстремальное программирование (XP)

Короткий цикл обратной связи

Разработка через тестирование (TDD)

Игра в планирование

Заказчик рядом

Парное программирование

Непрерывный процесс

Понимание и простота

Социальная защищенность

26

Page 27: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Экстремальное программирование (XP)

Короткий цикл обратной связи

Непрерывный процесс

Непрерывная интеграция

Рефакторинг

Частые небольшие релизы

Понимание и простота

Социальная защищенность

27

Page 28: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Экстремальное программирование (XP)

Короткий цикл обратной связи

Непрерывный процесс

Понимание и простота

Простота дизайна

Архитектура (метафора) системы

Стандарты кодирования

Коллективная ответственность за код

Социальная защищенность

28

Page 29: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Экстремальное программирование (XP)

Короткий цикл обратной связи

Непрерывный процесс

Понимание и простота

Социальная защищенность

40-часовая рабочая неделя

29

Page 30: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Scrum

Небольшие многофункциональные команды

Хорошо декомпозированный список задач с приоритетами (бэклог продукта и спринта)

Контроль выполнения спринта

Итерации с итоговой демонстрацией

Ретроспектива процесса

30

Page 31: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Scrum

Этапы «спринта»:

Планирование

Ежедневное совещание (короткое)

Обзор и демонстрация итогов

Ретроспективное совещание

31

Page 32: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Scrum

Задачи совещаний

Ежедневное

Что сделано за день?

Что будет сделано за день?

Какие возникли проблемы?

Ретроспективное

Что было сделано хорошо?

Что нужно улучшить?

32

Page 33: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Канбан

Особенности:

визуализация разработки

ограничение текущего объема работы на каждом этапе

измерение времени выполнения и его уменьшение

33

Page 34: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Feature driven development

Особенности:

планирование набора фич

разделение разработчиков на два вида (старшие программисты и владельцы классов)

персональная ответственность за код

34

Page 35: Разработка веб-сервисов осень 2013 лекция 2

Гибкие методологии

Длина итерации

XP — 1-3 недели

Scrum — 2-4 недели

Канбан — без ограничений

FDD — 2 недели

Чем меньше длина итерации, тем проще реагировать на изменения

35

Page 36: Разработка веб-сервисов осень 2013 лекция 2

Гибкость или предсказуемость

Гибкость

Неясные или изменяющиеся требования к системе

Разработчики недостаточно знакомы с предметной областью

Ответственные и квалифицированные разработчики

Понимающий заказчик, участвующий в разработке

Предсказуемость

Требования стабильны, объем фиксирован

Большая команда разработчиков

Разработчики знакомы с предметной областью

36

Page 37: Разработка веб-сервисов осень 2013 лекция 2

Выбор методологии

Какая бы методология ни была бы выбрана,поначалу она не совсем вам подойдет

Вы должны контролировать процесс, отслеживать его и подстраивать под ваши конкретные нужды

37

Page 38: Разработка веб-сервисов осень 2013 лекция 2

Выбор методологии

Разные проекты — разные методологии

Разные этапы проекта — разные методологии

Можно комбинировать

Можно изменять (на то они и гибкие)

38

Page 39: Разработка веб-сервисов осень 2013 лекция 2

Выбор методологии

Методология Денег

Заказчиков много, владелец бэклога — один

Бэклог продукта – смесь приоритетов и рангов

Бэклог итерации – группировка по важности

Длина итерации — неделя

39

Page 40: Разработка веб-сервисов осень 2013 лекция 2

Выбор методологии

Методология Денег

Этапы и особенности:

постановка задач в план итерации

оценка сроков

формирование итогового списка задач

определение приоритетов

распределение задач и контроль выполнения

визуализация

40

Page 41: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Множество систем управления задачами

Mail.Ru: изначально своя, сейчас — Jira

Классическая система Рабочих столов

Scrum-стиль

Канбан-стиль

41

Page 42: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система Рабочих столов

42

Page 43: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, scrum-стиль

43

Page 44: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, канбан-стиль

44

Page 45: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система

Основные элементы:

Рабочие столы (Dashboards)

Гаджеты (фильтры, диаграммы, графики)

45

Page 46: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система

Гаджеты: фильтры

46

Page 47: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система

Гаджеты: диаграммы

47

Page 48: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система

Гаджеты: отчет о времени

48

Page 49: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Jira, классическая система

Гаджеты: не только списки задач!

49

Page 50: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Методология Денег. Бэклог продукта

50

Page 51: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Методология Денег. Недельный план

51

Page 52: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Методология Денег. Текущая итерация

52

Page 53: Разработка веб-сервисов осень 2013 лекция 2

Инструменты для управления

Методология Денег. Текущая итерация

53

Page 54: Разработка веб-сервисов осень 2013 лекция 2

Резюме

В веб-разработке наиболее актуальна итерационная модель

Гибких методологий много, на любой вкус

Методологии нужно пробовать и менять под себя

Технические средства упрощают управление

54

Page 55: Разработка веб-сервисов осень 2013 лекция 2

Вопросы?

Максим Бабич

[email protected]

+7 916 9415275