SlideShare a Scribd company logo
ИСПОЛЬЗОВАНИЕ HTML-
ПРОТОТИПОВ ДЛЯ
РЕВЕРСИВНОГО АНАЛИЗА
ТРЕБОВАНИЙ: ЗА И ПРОТИВ
Николай Киреев
Студия WebMax.BY
www.webmax.by
Что выбрать?
Линус Торвальдс о
функциональных спецификациях:
«… Они практически бесполезны. Я не
видел ни одного крупного проекта, в
котором спецификации полностью
соответствовали реальности и при
этом действительно помогали
разработчикам.
Поверьте мне: разработка по спецификации — худший
способ создания приложений, так как он подразумевает,
что ваш проект будет делаться только по теории, без
оглядки на реальность.» [1]
Зато я видел множество неудавшихся
проектов, которые слепо полагались на
спецификации.
6 причин по которым
не стоит писать
функциональные спецификации:
1. Спецификация — это фикция. Она не имеет никакого отношения к
реальности… Спецификация никак не приближает проект к завершению —
ведь это не более чем слова на бумаге.
Эссе из книги «Getting Real», написанной в компании 37signals. [2]
2. Задача спецификации — угодить всем. В спецификации никогда
не идет речь о нахождении сложных компромиссов и выборе оптимальных
вариантов, а при разработке приложений без этого не обойтись.
3. Спецификация — лишь иллюзия соглашения. Множество
заверяющих подписей под несколькими страницами спецификации — это не
соглашение.
6 причин по которым
не стоит писать
функциональные спецификации:
4. Спецификация заставляет вас принимать самые важные
решения тогда, когда вы меньше всего знаете о проекте.
Меньше всего о проекте известно в самом начале работы. Так почему вы
должны принимать самые важные решения, даже не приступив к работе?
Эссе из книги «Getting Real», написанной в компании 37signals.
5. Использование спецификаций приводит к обрастанию
ненужной функциональностью. На момент написания спецификации
вас ничего не ограничивает, кроме вашей фантазии. Нет ничего легче, чем
дописать абзац текста или добавить еще один пункт в список.
6. Спецификация не позволяет вам развиваться, меняться и
оценивать пройденный путь. Само существование фиксированной
спецификации противоречит тому факту, что требования могут меняться в
процессе создания приложения.
Функциональные спецификации
«без фанатизма»:
являются: и НЕ являются:
 основой для приблизительной
оценки трудоёмкости и
стоимости проекта;
 промежуточным результатом в
процессе разработки ПО;
 архитектуро-определяющими и
служат источником для
проектирования архитектуры ПО;
 источником для внесения
изменений в архитектуру ПО в
процессе эксплуатации.
 продуктом, в котором
заинтересованы заказчики и
пользователи;
 основной целью аналитиков и
проектировщиков;
 основной целью процесса
разработки;
 полной и достаточной
информацией о программном
продукте;
 стабильными и очевидными как
в процессе разработки, так и в
дальнейшей эксплуатации.
Уровни видимости
функциональных
требований [4]
Может лучше
сразу писать
код, чем
«жевать»
требования?
Пишем и…
переписываем,
снова, снова и
снова…
Манифест «крутых»
программеров от
Зеда Шоу [3]
Разработка динамических прототипов вместо
функциональных спецификаций и кодирования
Ты сначала
требования
согласуй!
Процесс разработки требований
прототипированием
• Определяем пользователей (роли, включая абстрактные)
и основные функциональные сервисы (Use Cases),
которые должна им предоставить система.
• Расставляем приоритеты и составляем список
последовательности разработки итераций
• Согласуем краткие описания, по необходимости
наброски интерфейсов (wireframe) для уникальных (не
имеющих близких аналогов) сервисов.
1. ИНИЦИАЦИЯ
Процесс разработки требований
прототипированием
• Реализуем действующий html-прототип очередного
подлежащего разработке сервиса, добиваясь (по
возможности) полной имитации его функционирования.
• Тестируя, отрабатываем основной и альтернативные
потоки, а также меры по исключению ошибок
пользователей.
• Каждый разрабатываемый html-прототип размещается
в облаке и представляется для тестирования заказчику
• Внесение изменений (по результатам тестирования) в
прототип и окончательное согласование
функциональности. Завершение цикла.
2. РЕАЛИЗАЦИЯ ПРОТОТИПА (ИТЕРАЦИЯ)
Процесс разработки требований
прототипированием
• По завершению последней итерации, по
необходимости, создаются детальные UML-модели,
пишутся сценарии, спецификации требований
• Отдельные сервисы интегрируются в общую оболочку
• Последующая разработка приложения производится в
рамках стандартных моделей
3. ЗАВЕРШЕНИЕ ПРОТОТИПИРОВАНИЯ
Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ
Области применения методики
1. Для приложений с высоконагруженными
графическими интерфейсами
2. Для инновационных разработок, не
имеющих близких аналогов
3. Для приложений в которых следует
исключать риски ошибочных действий
пользователей
4. При неясных, нестабильных и изменяющихся
требованиях
ЗА & ПРОТИВ
ПРЕИМУЩЕСТВА
ПРОТОТИПИРОВАНИЯ
НЕДОСТАТКИ vs
Спецификация + Wireframes
НЕДОСТАТКИ vs
AGILE
1. Функционал
определятся не «на
бумаге», а тестированием
действующего прототипа
1. Требует затрат
времени
1. Требует затрат
времени на прототип, а
не на приложение
2. Определяются функции
бизнес-логики и UX,
уменьшающие ошибки
пользователей
2. Требует высокой
квалификации
2. Код прототипа не
используется в
последующей
разработке
3. Лёгкость внесения
изменений
3. Относительно узкая
область применения
3. Усложняется процесс
управления проектом
4. Интегрируется в
различных моделях
разработки
5. Возможность
распараллеливания работ
ПРИМЕР
ПРОТОТИПИРОВАНИЯ
http://www.webmax.by/docs/shicht/home.html
Список используемой литературы
1. Линус Торвальдс
http://gettingreal.37signals.com/ch11_Theres_Nothing_Functional_about_
a_Functional_Spec.php
2. Эссе из книги «Getting Real» ( http://gettingreal.37signals.com/ ),
перевод ресурс «Хорошие IT-статьи» http://factorized.tumblr.com/
3. Зед А. Шоу (Zed A. Shaw) Manifesto http://programming-
motherfucker.com/
4. Н. Киреев Что делать, когда даже Agile «не рулит?»
http://analyst.by/articles/chto-delat-kogda-dazhe-agile-ne-rulit
Спасибо за внимание!
Николай Киреев
студия WebMax.BY
info@webmax.by
www.webmax.by
Вебинары-тренинги аналитиков
WebMax.BY

More Related Content

PPTX
Roles happy dev-2013-tsepkov
PPTX
Clean architecture on Android
PPT
Разработка через приемочное тестирование с использованием FIT
PPT
Разработка через приемочное тестирование с FIT
ODP
Обзор и анализ инструментов проектирования и прототипирования интерфейсов
PPT
Проблемы и решения проектирования и прототипирования программных интерфейсов
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
PDF
Проектирование программных систем. Занятие 4
Roles happy dev-2013-tsepkov
Clean architecture on Android
Разработка через приемочное тестирование с использованием FIT
Разработка через приемочное тестирование с FIT
Обзор и анализ инструментов проектирования и прототипирования интерфейсов
Проблемы и решения проектирования и прототипирования программных интерфейсов
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Проектирование программных систем. Занятие 4

What's hot (20)

PPT
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
PPT
Архитектура в Agile проекте
PPTX
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
PPT
Новый процесс тестирования на "старом" проекте
PDF
Создание прототипа как этап разработки сайта: задачи, методы, преимущества
PDF
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PPTX
Software Design Patterns
PPTX
Способы организаций больших Java проектов по Автоматизированному тестированию
PPTX
статические анализаторы кода за и против
PPTX
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
PPTX
голубушин
PPTX
Аспектно-ориентированный подход на службе веб-приложений
PDF
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
PPT
«Розробка мобільних додатків від початку створення ТЗ до релізу»
PDF
UX-Среда №21: Дмитрий Щеглов — Мобильный дизайн в Сбербанке
PDF
Общие темы. Тема 03.
PPTX
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
PPTX
«Место юзабилити в процессе разработки» - Артем Костенко
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Архитектура в Agile проекте
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Новый процесс тестирования на "старом" проекте
Создание прототипа как этап разработки сайта: задачи, методы, преимущества
Droidcon Moscow 2015. Clean Architecture и MVP. Алексей Макаров - Zvooq
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Software Design Patterns
Способы организаций больших Java проектов по Автоматизированному тестированию
статические анализаторы кода за и против
Обзор средств сопровождения процесса разработки и тестирования (HP QC, Jira).
голубушин
Аспектно-ориентированный подход на службе веб-приложений
Роман Петров - юнит-тестирование мобильных приложений на примере платформы iOS
«Розробка мобільних додатків від початку створення ТЗ до релізу»
UX-Среда №21: Дмитрий Щеглов — Мобильный дизайн в Сбербанке
Общие темы. Тема 03.
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
«Место юзабилити в процессе разработки» - Артем Костенко
Ad

Viewers also liked (13)

PPTX
Управление функциональными и интерфейсными требованиями в смежных системах
PPTX
Особенности работы с требованиями при доработке продукта для заказчика
PPTX
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
PPTX
Особенности анализа в проектах по разработке сервисов
PPTX
Аналитик-первопроходец - проблемы и решения
PPTX
Вместо тысячи слов. Экологичные способы решения аналитических задач с помощью...
PPTX
Аналитик как золотоискатель: работа с требованиями при заказной разработке
PPTX
Аналитика в аналитике
PPTX
Как задавать требования к качеству ПО в цифрах
PPTX
Особенности аналитики сервисных компаний
PPTX
Особенности разработки требований для мобильных приложений
PPTX
Классические ошибки при разработке проекта
PPT
Business Analysis Techniques
Управление функциональными и интерфейсными требованиями в смежных системах
Особенности работы с требованиями при доработке продукта для заказчика
Особенности Системного Анализа особо крупных проектов построенных на базе Bus...
Особенности анализа в проектах по разработке сервисов
Аналитик-первопроходец - проблемы и решения
Вместо тысячи слов. Экологичные способы решения аналитических задач с помощью...
Аналитик как золотоискатель: работа с требованиями при заказной разработке
Аналитика в аналитике
Как задавать требования к качеству ПО в цифрах
Особенности аналитики сервисных компаний
Особенности разработки требований для мобильных приложений
Классические ошибки при разработке проекта
Business Analysis Techniques
Ad

Similar to Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ (20)

PPTX
Req Labs'2011. Коммуникация нефункциональных требований
PPTX
Как выбрать для проекта практики проектирования и работы с требованиями
PDF
Как выбрать для проекта практики проектирования и работы с требованиями
PDF
Choose method for requirements Tsepkov Analyst Days-2017
PPTX
Тестирование требований
PPTX
ППК л2 2011
PPT
Требования к по
PPT
Прагматичный подход к документированию Веб-проектов
PPTX
Msf Dz
PPTX
Compilable specifications by Dmytro Mindra
PPTX
Что сделать, чтобы сто раз все не переделывать
PDF
Как жить в согласии с SOLID?
PPT
Anatol filin pragmatic documentation 1_r
PPTX
Никита Ремизов - Введение в разработку ТЗ
PPTX
Нефункциональные требования
PPTX
PPTX
лаф2013
PDF
Саша Куценко: "Cпецификация формы и поведения — зачем, кому, когда и как?" (p...
PDF
Саша Куценко: "Cпецификация формы и поведения — зачем, кому и как?"
PDF
"Написание спецификации формы и поведения: зачем, кому и как." Саша Куценко ...
Req Labs'2011. Коммуникация нефункциональных требований
Как выбрать для проекта практики проектирования и работы с требованиями
Как выбрать для проекта практики проектирования и работы с требованиями
Choose method for requirements Tsepkov Analyst Days-2017
Тестирование требований
ППК л2 2011
Требования к по
Прагматичный подход к документированию Веб-проектов
Msf Dz
Compilable specifications by Dmytro Mindra
Что сделать, чтобы сто раз все не переделывать
Как жить в согласии с SOLID?
Anatol filin pragmatic documentation 1_r
Никита Ремизов - Введение в разработку ТЗ
Нефункциональные требования
лаф2013
Саша Куценко: "Cпецификация формы и поведения — зачем, кому, когда и как?" (p...
Саша Куценко: "Cпецификация формы и поведения — зачем, кому и как?"
"Написание спецификации формы и поведения: зачем, кому и как." Саша Куценко ...

More from SQALab (20)

PDF
Готовим стажировку
PPTX
Куда приводят мечты? или Искусство развития тестировщика
PPT
Оптимизация Selenium тестов и ускорение их поддержки
PPT
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
PPTX
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
PPTX
Continuous performance testing
PDF
Конфиги вместо костылей. Pytestconfig и зачем он нужен
PPT
Команда чемпионов в ИТ стихии
PPTX
API. Серебряная пуля в магазине советов
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PPT
Делаем автоматизацию проектных KPIs
PDF
Вредные привычки в тест-менеджменте
PPTX
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PPTX
Стили лидерства и тестирование
PPT
"Давайте не будем про качество"
PDF
Apache.JMeter для .NET-проектов
PPTX
Тестирование геолокационных систем
PPTX
Лидер или босс? Вот в чем вопрос
PPTX
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Готовим стажировку
Куда приводят мечты? или Искусство развития тестировщика
Оптимизация Selenium тестов и ускорение их поддержки
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Continuous performance testing
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Команда чемпионов в ИТ стихии
API. Серебряная пуля в магазине советов
Добиваемся эффективности каждого из 9000+ UI-тестов
Делаем автоматизацию проектных KPIs
Вредные привычки в тест-менеджменте
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Стили лидерства и тестирование
"Давайте не будем про качество"
Apache.JMeter для .NET-проектов
Тестирование геолокационных систем
Лидер или босс? Вот в чем вопрос
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...

Использование html-прототипов для реверсивного анализа требований: ЗА и ПРОТИВ

  • 1. ИСПОЛЬЗОВАНИЕ HTML- ПРОТОТИПОВ ДЛЯ РЕВЕРСИВНОГО АНАЛИЗА ТРЕБОВАНИЙ: ЗА И ПРОТИВ Николай Киреев Студия WebMax.BY www.webmax.by
  • 3. Линус Торвальдс о функциональных спецификациях: «… Они практически бесполезны. Я не видел ни одного крупного проекта, в котором спецификации полностью соответствовали реальности и при этом действительно помогали разработчикам. Поверьте мне: разработка по спецификации — худший способ создания приложений, так как он подразумевает, что ваш проект будет делаться только по теории, без оглядки на реальность.» [1] Зато я видел множество неудавшихся проектов, которые слепо полагались на спецификации.
  • 4. 6 причин по которым не стоит писать функциональные спецификации: 1. Спецификация — это фикция. Она не имеет никакого отношения к реальности… Спецификация никак не приближает проект к завершению — ведь это не более чем слова на бумаге. Эссе из книги «Getting Real», написанной в компании 37signals. [2] 2. Задача спецификации — угодить всем. В спецификации никогда не идет речь о нахождении сложных компромиссов и выборе оптимальных вариантов, а при разработке приложений без этого не обойтись. 3. Спецификация — лишь иллюзия соглашения. Множество заверяющих подписей под несколькими страницами спецификации — это не соглашение.
  • 5. 6 причин по которым не стоит писать функциональные спецификации: 4. Спецификация заставляет вас принимать самые важные решения тогда, когда вы меньше всего знаете о проекте. Меньше всего о проекте известно в самом начале работы. Так почему вы должны принимать самые важные решения, даже не приступив к работе? Эссе из книги «Getting Real», написанной в компании 37signals. 5. Использование спецификаций приводит к обрастанию ненужной функциональностью. На момент написания спецификации вас ничего не ограничивает, кроме вашей фантазии. Нет ничего легче, чем дописать абзац текста или добавить еще один пункт в список. 6. Спецификация не позволяет вам развиваться, меняться и оценивать пройденный путь. Само существование фиксированной спецификации противоречит тому факту, что требования могут меняться в процессе создания приложения.
  • 6. Функциональные спецификации «без фанатизма»: являются: и НЕ являются:  основой для приблизительной оценки трудоёмкости и стоимости проекта;  промежуточным результатом в процессе разработки ПО;  архитектуро-определяющими и служат источником для проектирования архитектуры ПО;  источником для внесения изменений в архитектуру ПО в процессе эксплуатации.  продуктом, в котором заинтересованы заказчики и пользователи;  основной целью аналитиков и проектировщиков;  основной целью процесса разработки;  полной и достаточной информацией о программном продукте;  стабильными и очевидными как в процессе разработки, так и в дальнейшей эксплуатации.
  • 8. Может лучше сразу писать код, чем «жевать» требования? Пишем и… переписываем, снова, снова и снова… Манифест «крутых» программеров от Зеда Шоу [3]
  • 9. Разработка динамических прототипов вместо функциональных спецификаций и кодирования Ты сначала требования согласуй!
  • 10. Процесс разработки требований прототипированием • Определяем пользователей (роли, включая абстрактные) и основные функциональные сервисы (Use Cases), которые должна им предоставить система. • Расставляем приоритеты и составляем список последовательности разработки итераций • Согласуем краткие описания, по необходимости наброски интерфейсов (wireframe) для уникальных (не имеющих близких аналогов) сервисов. 1. ИНИЦИАЦИЯ
  • 11. Процесс разработки требований прототипированием • Реализуем действующий html-прототип очередного подлежащего разработке сервиса, добиваясь (по возможности) полной имитации его функционирования. • Тестируя, отрабатываем основной и альтернативные потоки, а также меры по исключению ошибок пользователей. • Каждый разрабатываемый html-прототип размещается в облаке и представляется для тестирования заказчику • Внесение изменений (по результатам тестирования) в прототип и окончательное согласование функциональности. Завершение цикла. 2. РЕАЛИЗАЦИЯ ПРОТОТИПА (ИТЕРАЦИЯ)
  • 12. Процесс разработки требований прототипированием • По завершению последней итерации, по необходимости, создаются детальные UML-модели, пишутся сценарии, спецификации требований • Отдельные сервисы интегрируются в общую оболочку • Последующая разработка приложения производится в рамках стандартных моделей 3. ЗАВЕРШЕНИЕ ПРОТОТИПИРОВАНИЯ
  • 14. Области применения методики 1. Для приложений с высоконагруженными графическими интерфейсами 2. Для инновационных разработок, не имеющих близких аналогов 3. Для приложений в которых следует исключать риски ошибочных действий пользователей 4. При неясных, нестабильных и изменяющихся требованиях
  • 15. ЗА & ПРОТИВ ПРЕИМУЩЕСТВА ПРОТОТИПИРОВАНИЯ НЕДОСТАТКИ vs Спецификация + Wireframes НЕДОСТАТКИ vs AGILE 1. Функционал определятся не «на бумаге», а тестированием действующего прототипа 1. Требует затрат времени 1. Требует затрат времени на прототип, а не на приложение 2. Определяются функции бизнес-логики и UX, уменьшающие ошибки пользователей 2. Требует высокой квалификации 2. Код прототипа не используется в последующей разработке 3. Лёгкость внесения изменений 3. Относительно узкая область применения 3. Усложняется процесс управления проектом 4. Интегрируется в различных моделях разработки 5. Возможность распараллеливания работ
  • 17. Список используемой литературы 1. Линус Торвальдс http://gettingreal.37signals.com/ch11_Theres_Nothing_Functional_about_ a_Functional_Spec.php 2. Эссе из книги «Getting Real» ( http://gettingreal.37signals.com/ ), перевод ресурс «Хорошие IT-статьи» http://factorized.tumblr.com/ 3. Зед А. Шоу (Zed A. Shaw) Manifesto http://programming- motherfucker.com/ 4. Н. Киреев Что делать, когда даже Agile «не рулит?» http://analyst.by/articles/chto-delat-kogda-dazhe-agile-ne-rulit
  • 18. Спасибо за внимание! Николай Киреев студия WebMax.BY info@webmax.by www.webmax.by Вебинары-тренинги аналитиков WebMax.BY