SlideShare a Scribd company logo
1 of 18
ИСПОЛЬЗОВАНИЕ 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. ЗАВЕРШЕНИЕ ПРОТОТИПИРОВАНИЯ
Области применения методики
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

What's hot

2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
2013-04-06 01 Максим Юнусов. Архитектура в agile-проекте
Омские ИТ-субботники
 
Создание прототипа как этап разработки сайта: задачи, методы, преимущества
Создание прототипа как этап разработки сайта: задачи, методы, преимуществаСоздание прототипа как этап разработки сайта: задачи, методы, преимущества
Создание прототипа как этап разработки сайта: задачи, методы, преимущества
Techart Marketing Group
 
статические анализаторы кода за и против
статические анализаторы кода  за и противстатические анализаторы кода  за и против
статические анализаторы кода за и против
Roman Kalita
 
Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
 

What's hot (20)

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

Viewers also liked

Viewers also liked (13)

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

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

5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
Ievgenii Katsan
 
О разработке сайтов в целом
О разработке сайтов в целомО разработке сайтов в целом
О разработке сайтов в целом
Uplab_University
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
Mykyta Hopkalo
 
Проект "Нихол"
Проект "Нихол"Проект "Нихол"
Проект "Нихол"
E-Journal ICT4D
 

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

5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 
Методики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1сМетодики управления развитием ис на базе 1с
Методики управления развитием ис на базе 1с
 
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно го...
 
О разработке сайтов в целом
О разработке сайтов в целомО разработке сайтов в целом
О разработке сайтов в целом
 
Общие темы. Тема 01.
Общие темы. Тема 01.Общие темы. Тема 01.
Общие темы. Тема 01.
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Benefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controllBenefits of unit-testing and inversion of controll
Benefits of unit-testing and inversion of controll
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60. Модуль 15. Лекция 59-60.
Модуль 15. Лекция 59-60.
 
Siebel open ui overview rus
Siebel open ui overview rusSiebel open ui overview rus
Siebel open ui overview rus
 
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворковМодуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
Модуль 2: Лекция 7-8. Обзор моделей, методологий и фреймворков
 
Аналитика мобильных приложений
Аналитика мобильных приложенийАналитика мобильных приложений
Аналитика мобильных приложений
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
Проект "Нихол"
Проект "Нихол"Проект "Нихол"
Проект "Нихол"
 
нек спо
нек спонек спо
нек спо
 
Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01Проектирование Программных Систем. Лекция 01
Проектирование Программных Систем. Лекция 01
 
определение и реализация требований к ИТ продукту
определение и реализация требований к ИТ продуктуопределение и реализация требований к ИТ продукту
определение и реализация требований к ИТ продукту
 
SQA Days 2009: Контроль качества интерфейсных решений на всех этапах процесса...
SQA Days 2009: Контроль качества интерфейсных решений на всех этапах процесса...SQA Days 2009: Контроль качества интерфейсных решений на всех этапах процесса...
SQA Days 2009: Контроль качества интерфейсных решений на всех этапах процесса...
 
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
РИТ-2008: Взаимодействие отдела проектирования интерфейсов и разработчиков в ...
 

More from SQALab

More from SQALab (20)

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