2. Привет!
• Ремизов Никита
• Руководитель Отдела ИТ компании Retail-Navigator
• Основная деятельность до недавнего времени: веб-разработка
Зачем тебе ТЗ?
3. Осознание проблемы
Работаем без ТЗ:
• Бесконечные "переделки",
• Продукт не соответствует ожиданиям клиента,
• Не видно конца проекта,
• Не оценить требуемые ресурсы.
Как исправить ситуацию?
- Может попробуем поработать с ТЗ?
4. Мысли и сомнения
• ТЗ не нужно, его ведь долго делать .
• ТЗ нужно только для заключения договора (223-ФЗ).
• Ну ладно, с ТЗ мы сможем защититься от клиента.
Воплощение или "Первый блин комом"
- Нашли пример ТЗ
- Попробовали заполнить
С ТЗ лучше, чем без него, но клиент не понимает ТЗ.
(ТЗ , ТП - не одно и тоже)
5. Что такое ТЗ?
Глазами клиента:
Техническое Задание - это описание того, что я хочу.
РазработчикКлиенты
ТЗ
Глазами разработчика:
Техническое Задание - это набор функций, которые я
должен реализовать.
6. ТЗ глазами Википедии
Техническое задание — исходный документ на проектирование технического объекта
(изделия). ТЗ устанавливает основное назначение разрабатываемого объекта, его
технические характеристики, показатели качества и технико-экономические требования,
предписание по выполнению необходимых стадий создания документации (конструкторской,
технологической, программной и т. д.) и её состав, а также специальные требования.
Техническое задание — это набор
требований к изделию (ПО).
7. Какие бывают требования?
• Бизнес-требование – высокоуровневая бизнес-цель организации
или заказчиков системы.
• Пользовательское требование – Задача, которую определенные
классы пользователей должны иметь возможность выполнять в
системе, или требуемый атрибут продукта.
• Функциональное требование – Описание требуемого поведения
системы в определенных условиях.
8. Нефункциональные требования
• Бизнес правило – Политика, предписание, стандарт или правило,
определяющее или ограничивающее некоторые стороны бизнес-
процессов. По своей сути это не требование к ПО, но оно служит
источником нескольких типов требований к ПО.
• Атрибут качества – описывающего характеристику сервиса или
производительности продукта
• Системное требование – требование верхнего уровня к продукту,
состоящему из многих подсистем, которые могут представлять собой
ПО ил совокупность ПО и оборудования
• Внешние интерфейсы – описывает взаимодействие между
пользователем и ПО, другой программной системой или устройством
• Ограничения – Ограничение на выбор вариантов, доступных
разработчику при проектировании и разработке продукта
11. Выявлениям требований
• Создаем атмосферу (права и обязанности клиента)
• Используем методы выявления: анкетирование, семинары,
интервью и др.
Разработка требований
12. Выявление требований – Классификация
предоставляемой информации
• Виды требований (Рис 1-1)
• Требования к данным
• Приоритеты
• Открытые проблемы
• Идеи решения
13. Анализ требований
• Модели анализа
• Сущность-связь
• Диаграмма перехода состояний
• Диаграмма потоков данных
• Др.
• Прототипы
• http://ninjamock.com/
• https://gomockingbird.com/
14. Использование шаблонов для ТЗ
• Шаблоны обеспечивают единообразие
• Увеличивают скорость разработки требований
Документирование требований
Документ концепции и границ (шаблон)
1. Бизнес-требования
1.1 Исходные данные
1.2 Возможности бизнеса
1.3 Бизнес-цели
1.4 Критерии успеха
1.5 Положение о концепции проекта
2. Рамки и ограничения проекта
2.1 Основные функции
2.2 Объем первоначально запланированной версии
2.3 Объем последующих версий
2.4 Ограничения и исключения
3. Бизнес-контекст
3.1 Профили заинтересованных лиц
3.2 Приоритеты проекта
3.3 Особенности развертывания
15. Помечаем источник
• Всегда можно найти инициатора требования
Нумеруем требования
• Связь между требованиями
• Удобство тестирования и разработки
• Пример: DE-ERP-F-1
Документирование требований
16. Инструменты для работы с требованиями
СУТ - система управления требованиями, должна позволить:
• Дать возможность переиспользовать требования
• Хранить историю изменений требований
• Выводить все требования в один документ
• Связывать требования и задачи в трекере задач
• Простая в использовании
17. Список СУТ и багтрекеров
Платные решения
• IBM Rational DOORS
• IBM Rational Requisite Pro
• Caliber
• Devprom - Онлайн Сервис
• Confluence + JIRA
Opensource
• RequirementsWin (Нету поддержки git)
• Open Source Requirements
Management Tool (Нету поддержки git)
• InfoQube Information Management
System (Нету поддержки git)
• Mantis (Нету поддержки git)
• Task Manager (Нету поддержки git)
Наш выбор
• BitBucket
18. Для успешной разработки требований
необходимо
• вовлекать представителей клиентов как можно раньше и шире;
• разрабатывать требования итеративно и поступательно;
• представлять требования различными способами, чтобы
удостовериться, что все понимают их;
• убедиться, что все группы заинтересованных лиц считают
требования полными и корректными;
• найти подходящие вспомогательные технологии и приемы,
которые позволят получить единое представление для всех
заинтересованных лиц и обеспечить целостность требований;
• контролировать внесение изменений в требования.
19. Где искать информацию
• Карл Вигерс и Джой Битти – Разработка требований к
программному обеспечению
• http://www.reqs.ru/ - Управление требованиями
• http://infostart.ru/ - Сообщество по автоматизации
бухгалтерского учета и управления
• https://msdn.microsoft.com – Сеть разработчиков Microsoft
21. С чего начать?
• Возьмите небольшой проект
• Попробуйте использовать указанную классификацию
требований и советы по документированию
• При возникновении вопросов пользуйтесь указанными
источниками информации
Editor's Notes
Здравствуйте меня зовут Ремизов Никита, основной моей деятельностью является веб-разработка. И сегодня я бы хотел поговорить о разработке ТЗ.
Почему если я веб-разработчик, я хочу поговорить о ТЗ?
Думаю многим разработчикам приходилось работать как с ТЗ, так и без него .В процессе работы без ТЗ, постоянно всплывали проблемы не соответсвия ожиданий клиента, бесконечные передлки, не видно конца проекта, нету возможности планировать дальнейшую работу. А в случае больших проектов, с новым клиентом, предлагать ему гибкую разработку не получается, так как он хочет платить за результат.
Все это привело к мысли о том, что нужно попробовать использовать ТЗ.
Ну хорошо, берем пример ТЗ из какой-нибудь крупной организации, и делаем по их примеру. В процессе оказывается, что ТЗ делается не быстро, может не нужно его делать? Но ТЗ нужно для заключения договора подряда, ладно поробуем защититься
Ну, что первый блин комом. Написана только половина ТЗ, и у меня была прекрасная возможность оценить результат работы с и без ТЗ.
Первая часть работ выполнена почти в срок, да были замечания, и более того как оказалось в последствии заказзчик подписал ТЗ которое не понимал.
Вторая часть, опять провал, все теже проблемы что и в начале, переделки, не соответсвие ожиданиям.
Ну что, видимо ТЗ это то что надо, давайте разбираться.
Техническое задание - Что это такое?
Если кратко, то это то, что хочет заказчик. Но что обычно хочет заказчик, - "чтобы был сайт, у него были деньги, и все у него было хорошо"
Т.е. ТЗ это набор хотелок заказчика? - Нет, не так, ТЗ это набор требований предъявляемых к изделию, которое хотят получить.
И все же мы составляем ТЗ. Так можно ли его использовать, ведь на его разработку уходит время, так может это время может окупится?
ТЗ минимизировать риски не соответствия ожиданиям. Иными словами, хочет получить что-то, сначала сформулируй четко, что хочешь.
Хорошее ТЗ уменьшает кол-во переделок. ТЗ - это мостик между исполнителем и клиентом, иногда этот мостик переходит клиент, а иногда это приходится делать разработчику.
Какие же бывают требования?
-Бизнес-требования (business requirements) описывают, почему организации нужна такая система, то есть цели, которые организация намерена достичь с ее помощью. Основное их содержание — бизнес-цели организации или клиента, заказывающих систему (Бизнес-требование определяет желаемый результат или высокоуровневую цель организации)
Бывают финансовые и нефинансовые
Пример: Снизить процент привлечения ИТ сотрудников для изменения содержимого сайта на 80%.
-- Пользовательские требования - описывают цели или задачи, которые пользователи должны иметь возможность выполнять с помощью продукта, который в свою очередь должен приносить пользу кому-то.
-- Функциональные требования - определяют, каким должно быть поведение продукта в тех или иных условиях. Они определяют, что разработчики должны создать, чтобы пользователи смогли выполнить свои задачи (пользовательские требования) в рамках бизнес-требований.
--Бизнес-правило Политика, предписание, стандарт или правило, определяющее или ограничивающее некоторые стороны бизнес-процессов. По своей сути это не требование к ПО, но оно служит источником нескольких типов требований к ПО.
-- Атрибуты качества - Вид нефункционального требования, описывающего характеристику сервиса или производительности продукта
-- Системные требование - Требование верхнего уровня к продукту, состоящему из многих подсистем, которые могут представлять собой ПО или совокупность ПО и оборудования. Например Инф. Система состоит из подсистем, например сайт состоит из системы навигации
-- Ограничение - Ограничение на выбор вариантов, доступных разработчику при проектировании и разработке продукта.
Тут напомощь пришел Карл Вигерс.
Карл Вигерс предлагает одновременно не только классификацию, но и определенную структуру документирование требований.
Бизнес требования входят в документ концепции и границ. – Данный документ описывает начальные данные, виденье будущего продукта, бизнес цели (ониже бизнес требования, описывает границы проекта, финансовые, временные, качественные)
На бизнес-требования влияют бизнес правила.
Например, система учета продуктовых товаров. По закону мы не можем продавать просроченные товары, значит бизнес цель будет : Уменьшить кол-ва трудочасов на утилизацию просроченных продуктов на процент…. Это же повлиять на пользовательские и функциональные требования.
-- Внешнее требование к интерфейсу - Описание взаимодействия между ПО и пользователем, другой программной системой или устройством
Как мы видим требований много, и структура документа большая. И вообще все это выглядит немного устрашающе, неужели этим должен заниматься разработчик? Нет, это роль выполняет бизнес аналитика.
Не совсем так. Выявлениям, документированием и анализом – всех этих требований занимается сразу несколько людей. Бизнес аналитик, системный аналитик и архитектор.
Хорошим пример как мне кажется может послужить Бизнес цель компании “Cократить стоимость, время на добавление новых страниц на сайт” и “Изменение структуры Сайта”
Процесс разработки требований цикличен и состоит из Выявления, Анализа, Спецификации. Выявляется часть требований, анализируется, формулируется, обнаруживается что по какой-то причине часть информации не хватает.
Подготавливаем клиента к работе (Билль о правах и обязанностях)
Билль о правах и обязанностях клиента
Право на: изменение требований, взаимное уважение, получить продукт который соответствует ожидания и др.
Клиент обязан: Своевременно сообщать об изменениях, потратить столько времени на уточнение требований сколько необходим, проверять требования и прототипы
Другие методы выявления: Семинары, наблюдение за пользователям
Помним про границы, и про то что мы фиксируем, что НЕ делаем.
Что дает такая классификация?
Требования к данным не показаны на рисунке 1.1. Функции манипулируют данными, и они могут располагаться на всех трех уровнях.
Почему это нужно делать, и как это можно использовать? - Для тестирования.
Можно использовать во множестве проектов.
Помечайте источник
Для разных типов проектов могут иметь разные шаблоны
Решения
Confluence + Jira
Платные
IBM Rational DOORS
IBM Rational Requisite Pro
Caliber
Devprom - Онлайн Сервис
Confuence
Ведение задач
JIRA
Trac
Redmine
Opensource
RequirementsWin (Нету поддержки git)
Open Source Requirements Management Tool (Нету поддержки git)
InfoQube Information Management System (Нету поддержки git)
Mantis (Нету поддержки git)
Task Manager (Нету поддержки git)
Дополнительная информация
Статья на хабре, в которой производится обзор выше перечисленное ПО - http://habrahabr.ru/post/114571/
Toster - Советы по выбору СУТ https://toster.ru/q/32741
Обсуждение Систем Управления Требований (СУТ) на форуме аналитиков - http://www.uml2.ru/forum/index.php?topic=208.45
Список СУТ - http://www.volere.co.uk/tools.htm
еще Список СУТ - http://www.paper-review.com/
Решения
Confluence + Jira
Платные
IBM Rational DOORS
IBM Rational Requisite Pro
Caliber
Devprom - Онлайн Сервис
Confuence
Ведение задач
JIRA
Trac
Redmine
Opensource
RequirementsWin (Нету поддержки git)
Open Source Requirements Management Tool (Нету поддержки git)
InfoQube Information Management System (Нету поддержки git)
Mantis (Нету поддержки git)
Task Manager (Нету поддержки git)
Дополнительная информация
Статья на хабре, в которой производится обзор выше перечисленное ПО - http://habrahabr.ru/post/114571/
Toster - Советы по выбору СУТ https://toster.ru/q/32741
Обсуждение Систем Управления Требований (СУТ) на форуме аналитиков - http://www.uml2.ru/forum/index.php?topic=208.45
Список СУТ - http://www.volere.co.uk/tools.htm
еще Список СУТ - http://www.paper-review.com/
Клиент должен понимать ТЗ
Just in time 214
Для кого нужно ТЗ 216