Upload
technopark
View
94
Download
5
Embed Size (px)
Citation preview
Разработкавеб-сервисов
Беседа 3: Техническое задание
План занятия
Принципы создания технического задания
Сбор требований, необходимость и достаточность
Согласование ТЗ и его изменений.
Дрейф требований
Декомпозиция технического задания
Оценка сроков выполнения задач, принципы оценки
2
Этапы создания проекта
Этапы:
1. Анализ предметной области и постановка задачи
2. Проектирование, уточнение ТЗ
3. Разработка
4. Анализ разработанного продукта (ревью, тесты)
5. Ввод в эксплуатацию
3
Зачем нужно ТЗ
Разработка — сложная и длительная работа
Заказчик и исполнитель говорят на разных языках
Все, что может быть понято не так,
будет именно не так и понято
ТЗ — инструмент коммуникаций
ТЗ позволяет увеличить шансы на успех
4
Примеры ТЗ
«Экран оплатить, выбор источника средств, если привязано меньше 2 карт, то предлагать привязать»
Формальное решение:
проверить, сколько карт у пользователя (1строка кода)
отобразить модальное всплывающее окно с вопросом о привязке карты (1 строка кода).
обработать результат и направить пользователя на экран регистрации новой карты в текущем стеке навигации (4 строки кода)
Общее время выполнения задачи: 15 минут, 6 строк кода
5
Примеры ТЗ
«Экран оплатить, выбор источника средств, если привязано меньше 2 карт, то предлагать привязать»
Что хотел менеджер:
На форме оплаты в селекторе выбора способа оплаты, при наличии у пользователя менее двух привязанных карт, добавить дополнительную опцию (привязать новую карту).
Реализация: проверка наличия карты и создание опции в селекторе выбора, добавление логики в обработчик событий селектора, реализация логики переключения между вкладками в правильный таб для регистрации новой карты
Общее время выполнения задачи: 2.5 часа, 40 строк кода
6
Зачем нужно ТЗ
ТЗ позволяет заказчику и исполнителю
Осознать, как будет выглядеть результат работ
Уменьшить число ошибок и несоответствий
Проверить результат в соответствии с исходными требованиями
Управлять изменениями во время разработки
7
Зачем нужно ТЗ
ТЗ позволяет заказчику
Спланировать ход работ, понять когда будут результаты
Определить затраты
Контролировать ход работ
Требовать соответствия всем условиям ТЗ
8
Зачем нужно ТЗ
ТЗ позволяет исполнителю
Понять суть задачи и показать заказчику как будет выглядеть результат
Оценить трудозатраты и потребности в ресурсах
Спланировать работы согласно принятым практикам
Отказаться от части работ, не попавших в ТЗ
9
Материалы для ТЗ
Наглядность повышает понимание
Одна диаграмма заменяет несколько страниц текста
«Много букав? Ниасилил!»
Эскизы, скриншоты, прототипы
10
Материалы для ТЗ
Документация
Приложите в таск!
Ведите учет!
Опишите сценарий!
Контакты специалистов
Кто заказчик?
Кто из сотрудников может помочь?
К кому обращаться за консультацией?
11
Особенности создания ТЗ
ТЗ — совместный труд заказчика и исполнителя
Заказчик знает предметную область
Исполнитель знает технические особенности
Оба — координируют поступление информации
12
Особенности создания ТЗ
ТЗ — лучше говорить, чем писать
Трудности понимания акцентов
Скорость обсуждения выше
Прочитал – повторил - понял
13
Особенности создания ТЗ
ТЗ — лучше писать, чем говорить
Нюансы могут забываться
ТЗ можно использовать как документацию
Обсудил голосом? Напиши резюме!
14
Этапы создания ТЗ
Сбор информации
Анализ и обработка информации
Написание документа
Согласование документа с участниками
15
Разделы ТЗ
Описание целей разработки и решаемых задач
Описание функциональных требований
Описание процесса запуска
Описание сроков и затрат
16
Разделы ТЗ
Описание целей разработки и решаемых задач
Зачем всё это?
Описание ключевых особенностей
Описание ограничений
Описание границ ответственности
17
Разделы ТЗ
Описание функциональных требований
Требования к системе в целом
Описание компонентов и взаимодействие между ними
Требования к отдельным компонентам
18
Разделы ТЗ
Описание процесса запуска
Что и как будет проверяться
Какова последовательность работ
Как определяется, что работа сделана успешно
19
Разделы ТЗ
Описание сроков и затрат
План-график работ
Необходимые затраты
Зависимости от внешних условий
20
Согласование ТЗ
Необходимые требования
Дрейф требований
waterfall
agile
21
Декомпозиция задачи
Цели декомпозиции
Снижение неопределенности
Повышение качества анализа предметной области
Повышение качества оценки затрат
Улучшение распределения ресурсов
Расстановка приоритетов
22
Декомпозиция задачи
Как декомпозировать?
Разные компоненты — разные задачи
Излишняя декомпозиция — зло
Размер подзадачи зависит от методологии
Задача не должна быть длиннее итерации
От 3-4 часов до 1-3 дней
23
Оценка сроков выполнения
Оценка времени
Позволяет оценивать необходимые ресурсы
Позволяет понимать прогресс по задачам
Нужно руководителю разработки
Нужно руководителю проекта
24
Оценка сроков выполнения
Методы оценки
«На глаз»
Совместная оценка
Учет, статистика и анализ
25
Оценка сроков выполнения
Совместная оценка
Вспоминаем Agile-методики
Привлекаем опытных разработчиков
Учитываем особенности исполнителя
26
Оценка сроков выполнения
Учет и ретроспективный анализ
Типы задачи — ограниченное множество
В задачах можно вести учет затраченного времени
Для повторяющихся задач видны закономерности
27
Оценка сроков выполнения
Учет и ретроспективный анализ
Что учитывать?
Как систематизировать?
28
Оценка сроков выполнения
Учет и ретроспективный анализ
Учет времени. Сколько?
На любую задачу тратится время.
Занесение времени — почетная обязанность
Возможны погрешности
Мелкие задачи — точность 5-15 минут
Средние задачи — точность 15-30 минут
Большие задачи — точность 30-60 минут
29
Оценка сроков выполнения
Учет и ретроспективный анализ
Учет времени. Когда?
Сразу же?
Несколько раз в день?
Раз-два в неделю?
В конце недели?
30
Оценка сроков выполнения
Учет и ретроспективный анализ
Учет времени. Когда?
1. Всё зависит от методологии
2. Учёт в конце итерации не работает
31
Оценка сроков выполнения
Учет и ретроспективный анализ
Как систематизировать?
Каждой задаче — свой тип
Каждой задаче — свои метки
32
Оценка сроков выполнения
Учет и ретроспективный анализ
Метки
33
Оценка сроков выполнения
Учет и ретроспективный анализ
Метки
34
Оценка сроков выполнения
Учет и ретроспективный анализ
35
Оценка сроков выполнения
Учет и ретроспективный анализ
36
Оценка сроков выполнения
Учет и ретроспективный анализ
37
Оценка сроков выполнения
Итог любого метода — приблизительная оценка затрат
Почему приблизительная?
38
Оценка сроков выполнения
Оценка времени
Everybody lies © сами знаете кто
Все программисты — оптимисты © Брукс
Всё будет хорошо
Психология — дело тонкое
Не легко признаваться в ошибках
39
Оценка сроков выполнения
Оценка времени
Не учитываются затраты на
Проектирование
Тестирование и ревью
40
Оценка сроков выполнения
Оценка времени
Не учитывается обмен данными
Попарное общение сотрудников
Общие совещания
Не учитывается переключение контекста
41
Оценка сроков выполнения
Оценка времени
Не учитывается передача знаний
Цели
Особенности
Технологии
План работ
42
Оценка сроков выполнения
Оценка времени
Что делать?
Оценивать и улучшать качество оценки
43
Резюме
Качество технического задания – качество продукта
Задачи меняются. И будут меняться всегда
Верить нельзя никому. Особенно разработчику
«Анализируй это»
44
Отчетность
45
Домашнее задание
создание технического задания, в котором прописано:
что должен из себя представлять проект в целом
описаны компоненты
описаны основные функции проекта
описаны интерфейсы (сделан прототип)
описаны сценарии использования