46
Разработка веб-сервисов Беседа 3: Техническое задание

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

Embed Size (px)

Citation preview

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

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

Беседа 3: Техническое задание

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

План занятия

Принципы создания технического задания

Сбор требований, необходимость и достаточность

Согласование ТЗ и его изменений.

Дрейф требований

Декомпозиция технического задания

Оценка сроков выполнения задач, принципы оценки

2

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

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

Этапы:

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

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

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

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

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

3

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

Зачем нужно ТЗ

Разработка — сложная и длительная работа

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

Все, что может быть понято не так,

будет именно не так и понято

ТЗ — инструмент коммуникаций

ТЗ позволяет увеличить шансы на успех

4

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

Примеры ТЗ

«Экран оплатить, выбор источника средств, если привязано меньше 2 карт, то предлагать привязать»

Формальное решение:

проверить, сколько карт у пользователя (1строка кода)

отобразить модальное всплывающее окно с вопросом о привязке карты (1 строка кода).

обработать результат и направить пользователя на экран регистрации новой карты в текущем стеке навигации (4 строки кода)

Общее время выполнения задачи: 15 минут, 6 строк кода

5

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

Примеры ТЗ

«Экран оплатить, выбор источника средств, если привязано меньше 2 карт, то предлагать привязать»

Что хотел менеджер:

На форме оплаты в селекторе выбора способа оплаты, при наличии у пользователя менее двух привязанных карт, добавить дополнительную опцию (привязать новую карту).

Реализация: проверка наличия карты и создание опции в селекторе выбора, добавление логики в обработчик событий селектора, реализация логики переключения между вкладками в правильный таб для регистрации новой карты

Общее время выполнения задачи: 2.5 часа, 40 строк кода

6

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

Зачем нужно ТЗ

ТЗ позволяет заказчику и исполнителю

Осознать, как будет выглядеть результат работ

Уменьшить число ошибок и несоответствий

Проверить результат в соответствии с исходными требованиями

Управлять изменениями во время разработки

7

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

Зачем нужно ТЗ

ТЗ позволяет заказчику

Спланировать ход работ, понять когда будут результаты

Определить затраты

Контролировать ход работ

Требовать соответствия всем условиям ТЗ

8

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

Зачем нужно ТЗ

ТЗ позволяет исполнителю

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

Оценить трудозатраты и потребности в ресурсах

Спланировать работы согласно принятым практикам

Отказаться от части работ, не попавших в ТЗ

9

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

Материалы для ТЗ

Наглядность повышает понимание

Одна диаграмма заменяет несколько страниц текста

«Много букав? Ниасилил!»

Эскизы, скриншоты, прототипы

10

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

Материалы для ТЗ

Документация

Приложите в таск!

Ведите учет!

Опишите сценарий!

Контакты специалистов

Кто заказчик?

Кто из сотрудников может помочь?

К кому обращаться за консультацией?

11

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

Особенности создания ТЗ

ТЗ — совместный труд заказчика и исполнителя

Заказчик знает предметную область

Исполнитель знает технические особенности

Оба — координируют поступление информации

12

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

Особенности создания ТЗ

ТЗ — лучше говорить, чем писать

Трудности понимания акцентов

Скорость обсуждения выше

Прочитал – повторил - понял

13

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

Особенности создания ТЗ

ТЗ — лучше писать, чем говорить

Нюансы могут забываться

ТЗ можно использовать как документацию

Обсудил голосом? Напиши резюме!

14

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

Этапы создания ТЗ

Сбор информации

Анализ и обработка информации

Написание документа

Согласование документа с участниками

15

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

Разделы ТЗ

Описание целей разработки и решаемых задач

Описание функциональных требований

Описание процесса запуска

Описание сроков и затрат

16

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

Разделы ТЗ

Описание целей разработки и решаемых задач

Зачем всё это?

Описание ключевых особенностей

Описание ограничений

Описание границ ответственности

17

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

Разделы ТЗ

Описание функциональных требований

Требования к системе в целом

Описание компонентов и взаимодействие между ними

Требования к отдельным компонентам

18

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

Разделы ТЗ

Описание процесса запуска

Что и как будет проверяться

Какова последовательность работ

Как определяется, что работа сделана успешно

19

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

Разделы ТЗ

Описание сроков и затрат

План-график работ

Необходимые затраты

Зависимости от внешних условий

20

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

Согласование ТЗ

Необходимые требования

Дрейф требований

waterfall

agile

21

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

Декомпозиция задачи

Цели декомпозиции

Снижение неопределенности

Повышение качества анализа предметной области

Повышение качества оценки затрат

Улучшение распределения ресурсов

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

22

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

Декомпозиция задачи

Как декомпозировать?

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

Излишняя декомпозиция — зло

Размер подзадачи зависит от методологии

Задача не должна быть длиннее итерации

От 3-4 часов до 1-3 дней

23

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

Оценка сроков выполнения

Оценка времени

Позволяет оценивать необходимые ресурсы

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

Нужно руководителю разработки

Нужно руководителю проекта

24

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

Оценка сроков выполнения

Методы оценки

«На глаз»

Совместная оценка

Учет, статистика и анализ

25

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

Оценка сроков выполнения

Совместная оценка

Вспоминаем Agile-методики

Привлекаем опытных разработчиков

Учитываем особенности исполнителя

26

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Типы задачи — ограниченное множество

В задачах можно вести учет затраченного времени

Для повторяющихся задач видны закономерности

27

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Что учитывать?

Как систематизировать?

28

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Учет времени. Сколько?

На любую задачу тратится время.

Занесение времени — почетная обязанность

Возможны погрешности

Мелкие задачи — точность 5-15 минут

Средние задачи — точность 15-30 минут

Большие задачи — точность 30-60 минут

29

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Учет времени. Когда?

Сразу же?

Несколько раз в день?

Раз-два в неделю?

В конце недели?

30

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Учет времени. Когда?

1. Всё зависит от методологии

2. Учёт в конце итерации не работает

31

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Как систематизировать?

Каждой задаче — свой тип

Каждой задаче — свои метки

32

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Метки

33

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

Оценка сроков выполнения

Учет и ретроспективный анализ

Метки

34

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

Оценка сроков выполнения

Учет и ретроспективный анализ

35

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

Оценка сроков выполнения

Учет и ретроспективный анализ

36

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

Оценка сроков выполнения

Учет и ретроспективный анализ

37

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

Оценка сроков выполнения

Итог любого метода — приблизительная оценка затрат

Почему приблизительная?

38

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

Оценка сроков выполнения

Оценка времени

Everybody lies © сами знаете кто

Все программисты — оптимисты © Брукс

Всё будет хорошо

Психология — дело тонкое

Не легко признаваться в ошибках

39

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

Оценка сроков выполнения

Оценка времени

Не учитываются затраты на

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

Тестирование и ревью

40

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

Оценка сроков выполнения

Оценка времени

Не учитывается обмен данными

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

Общие совещания

Не учитывается переключение контекста

41

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

Оценка сроков выполнения

Оценка времени

Не учитывается передача знаний

Цели

Особенности

Технологии

План работ

42

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

Оценка сроков выполнения

Оценка времени

Что делать?

Оценивать и улучшать качество оценки

43

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

Резюме

Качество технического задания – качество продукта

Задачи меняются. И будут меняться всегда

Верить нельзя никому. Особенно разработчику

«Анализируй это»

44

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

Отчетность

45

Домашнее задание

создание технического задания, в котором прописано:

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

описаны компоненты

описаны основные функции проекта

описаны интерфейсы (сделан прототип)

описаны сценарии использования

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

Вопросы?

Максим Бабич

[email protected]

+7 916 9415275