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

Post on 20-Jul-2015

104 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

План занятия

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

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

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

2

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

Этапы:

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

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

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

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

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

3

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

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

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

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

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

4

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

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

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

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

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

5

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

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

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

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

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

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

6

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

7

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

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

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

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

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

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

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

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

8

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

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

Минусы:

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

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

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

Плюсы

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

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

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

9

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

V-модель

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

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

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

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

10

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

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

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

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

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

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

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

5. goto 3

11

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

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

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

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

12

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

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

Минусы

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

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

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

Плюсы

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

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

13

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

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

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

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

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

Реализация

Проверка

Оценка

14

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

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

Плюсы

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

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

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

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

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

15

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

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

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

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

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

16

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

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

17

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

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

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

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

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

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

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

18

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

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

Риски

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

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

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

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

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

19

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

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

Риски

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

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

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

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

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

20

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

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

RUP — Rational Unified Process

RAD — Rapid Application Development

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

21

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

RAD — Rapid Application Development

Принципы:

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

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

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

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

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

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

22

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

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

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

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

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

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

23

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

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

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

Scrum

Канбан

Feature driven development

24

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

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

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

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

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

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

25

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

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

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

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

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

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

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

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

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

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

26

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

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

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

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

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

Рефакторинг

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

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

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

27

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

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

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

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

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

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

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

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

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

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

28

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

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

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

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

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

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

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

29

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

Scrum

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

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

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

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

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

30

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

Scrum

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

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

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

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

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

31

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

Scrum

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

Ежедневное

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

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

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

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

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

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

32

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

Канбан

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

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

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

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

33

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

Feature driven development

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

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

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

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

34

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

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

XP — 1-3 недели

Scrum — 2-4 недели

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

FDD — 2 недели

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

35

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

Гибкость

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

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

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

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

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

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

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

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

36

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

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

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

37

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

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

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

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

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

38

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

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

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

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

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

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

39

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

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

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

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

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

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

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

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

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

40

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

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

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

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

Scrum-стиль

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

41

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

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

42

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

Jira, scrum-стиль

43

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

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

44

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

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

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

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

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

45

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

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

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

46

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

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

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

47

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

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

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

48

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

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

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

49

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

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

50

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

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

51

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

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

52

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

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

53

Резюме

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

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

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

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

54

Вопросы?

Максим Бабич

tpark@maxbabich.ru

+7 916 9415275

top related