Вид требований | Форматы документирования |
---|---|
Первичные (пользовательские) требования |
Произвольный текст - требование сформулировано на языке пользователя (пожелания, заявки, запросы на изменения). История пользователя - текст записан определенным образом, отражая цель и бизнес-контекст требуемой функциональности. |
Бизнес-требования |
Файлы, полученные из внешних источников (регламенты, законы, переписка и т.п.) Иерархически структурированные требования (документы) с вербальным описанием бизнес-процессов, бизнес-правил и бизнес-ограничений. Требования, записанные в форме бизнес-моделей, например, с использованием нотации BPMN. |
Системные требования |
Техническое задание - документ, содержащий требования разного типа и текст общего характера. Спецификация - документ, содержащий требования одного типа, касающиеся одной подсистемы. Use Cases (или варианты использования) - требование записано определенным образом, описывающим взаимодействия с системой. UML-модели - требования к информационным, структурным и поведенческим аспектам системы, записанные на общеизвестном языке моделирования. Макеты UI - требования к пользовательскому интерфейсу. |
Возможности WYSIWYG-редактора позволяют документировать:
В зависимости от условий проекта, сложности продукта, уровня профессионализма команды и многих других факторов, применяются различные схемы работы с требованиями.
При реализации простых и четких требований, не обязательно создавать детальные спецификации или документировать бизнес-процессы. Работа с документацией отнимает время, особенно, когда требования непрерывно меняются. Для одноразовых продуктов, прототипов и MVP, предварительное проектирование менее ценно, нежели скорость получения обратной связи от пользователей.
В этом случае разработка опирается на первичные (пользовательские) требования. Заказчик или его представители формулируют требования, уточняя их вместе с участниками проекта. После того, как треобвания станут понятными, команда их реализует и в виде работающего продукта передает пользователям заказчика для формирования обратной связи. Затем цикл повторяется до того момента, пока все пользовательские задачи не будут выполнены.
Пользовательские истории - один из удобных и распространенных способов записи пользовательских требований. Если кратко, то для записи пользовательской истории используется следующий формат:
Краткость это хорошо, но успех проекта будет зависеть от качества требований. Писать качественные истории нужно научиться. Используйте принципы INVEST, как чек-лист провеки качества разработанных историй.
Не следует путать описание функциональных требования в формате Use Cases и пользовательских требований в формате User Story - это два сильно разных взгляда на требования к ПО. В одной пользовательской истории могут содержаться несколько Use Cases. Пользовательские истории не являются способом структурирования требований к ПО.
Риски разработки ПО на основе пользовательских требований заключаются в том, что:
Снизить эти риски поможет практика разработки поддерживающих требований.
Перед реализацией пользовательской истории, в процессе ее реализации или сразу после этого, документируйте важные технические решения: макеты UI, алгоритмы, модели данных и др. С одной стороны эти системные требования будут связаны с историей и позволят качественно ее реализовать. С другой стороны - со временем вы накопите структурированные системные требования по всему продукту, что избавит от описанных ранее рисков.
Почему плохо записывать системные требования непосредственно в самой истории? История пользователя по определению должна быть небольшой. Критерии завершенности и критерии приемки увеличивают ее описание. Системные требования в виде макетов (и детальных требований к ним), алгоритмов и раличных моделей, сделают историю очень громоздкой и не удобной в работе. Более того, найти нужные системные требования затем станет просто невозможно, не говоря уже о внесении изменений в них.
Реализация продукта по отрывочным и поверхностным представлениям о его функциональности может привести к принятию быстрых, но недальновидных технических решений. В методиках быстрой разработки (Scrum, XP) это называется техническим долгом. Вместо того, чтобы сразу сделать правильно, придется часто переделывать ранее заложенную системную архитектуру. Это дополнительные потери времени и денег.
Понятие "конуса неопределенности" говорит нам о том, что чем менее детальные требования, тем больше ошибка в оценке их сложности или трудоемкости. Более точная оценка бюджета проекта, либо бюджета на изменения уже реализованных требований, возможны только при предварительной проработке требований и анализе влияния изменений на них.
Разработка основанная на требованиях (Requirements driven development, RDD) предполагает явное выделение цикла проектирования, на котором:
После цикла проектирования, на основе созданных задач на разработку (доработок) организуется цикл разработки:
В некоторых случаях проект может завершаться уже после проектировочного цикла, если целью проекта была разработка требований к ПО.
Иногда разработку по требованиям путают с каскадной разработкой (или разработкой по ГОСТ-ам). Объем проектируемых требований (размер инкремента) можно регулировать в соответствии с условиями проекта.
Требования могут быть распределены по разным проектам и связаны между собой:
С требованиями удобно работать как в форме документа, так и в форме произвольного набора атомарных требований (при помощи реестра или списка требований). Например, в виде документа может быть оформлено ТЗ или ЧТЗ. Однако, такие документы получаются большими и целиком их не реализуют. Реестр позволяет работать только с нужным подмножеством атомарных требований - оценивать, планировать, контролировать реализацию.
У документарного и спискового представления реестра есть свои плюсы и минусы:
Плюсы | Минусы | |
Документ требований |
На одном экране видны связанные друг с другом разделы документа. Цельное описание задачи. Можно выставлять/контролировать требования к полноте, непротиворечивости. Удобно согласовывать. Можно версионировать и создавать бейзлайны. |
Сложные системы состоят из тысяч требований, работать с которыми при помощи документа становится невозможным. Итерационная разработка предполагает реализацию требований частями. Группы требований могут состоять из участков документа, размещенных в разных его частях - попробуй, собери это в кучу. |
Реестр (список) требований |
Нет избытка информации (текста требований) при работе с атрибутами или связями требований. Можно быстро выполнять массовые операции: оценка, реализация. Легко контролировать трассировки на исходные/производные требования, на покрывающие артефакты: тестовую документацию, тесты, техническую документацию и т.п. |
На произвольном наборе требований невозможно проверить полноту непротиворечивость и целостность документации и продукта. Разные требования как правило семантически связаны между собой, но по одному лишь требованию этого нельзя проследить - нужны структурные связи, которые дает документарное представление. |
Для выполнения различных задач по документированию и управлению, выбирайте наиболее подходящее представление работы с документами, Devprom ALM поддерживает их все.
Загрузите ваши документы с требованиями в формате MSWord, OpenDocument или Excel. Приложение автоматически разберет их на разделы в соответствии со структурой, заданной в документе. Для разделения документа на требования используется разметка заголовочными стилями (Заголовок 1, Заголовок 2 и т.п.).
Вы можете самостоятельно реализовать логику конвертации импортируемого документа в требования. Для этого можно использовать Автоматические действия вместе со скриптами автоматизации. При импорте каждого раздела система выполнит ваш скрипт, который может проанализировать состав раздела и выделить в нем требования, классифицировать их, создать и добавить ссылки на них.
Например, для преобразования текста, содержащего фразу "Системное требование" в системные требования и сохранении ссылки на эти требования в разделе документа, вы можете разработать такой скрипт:
В результате импорта документа система создаст системные требования, а ссылки на них разместит в документе требований:
Вы можете выгружать произвольный набор требований, документ или несколько документов во внешние форматы. При выгрузке в MSWord вы можете указать шаблон (заготовку) документа, стили которого будут использованы при выгрузке. В этом шаблоне могут присутствовать титульные листы, то есть выгрузка может осуществляться в любое место в шаблоне. При помощи макросов WYSIWYG-редактора вы можете выгружать атрибуты документа и конкретных требований, например, выгрузить название документа в определенное место в шаблоне.
Перечень ранее использованных шаблонов для экспорта можно найти в настройках проекта, в модуле "Шаблоны выгрузки". В процессе "Разработка по требованиям" содержится пример выгрузки документов в шаблон по требованиям ГОСТ. Вы можете самостоятельно задавать формат формирования маркированных и нумерованных списков, для чего предназначены соответствующие поля в Шаблоне выгрузке на вкладке Дополнительно.
Для повторного импорта документов, измененных заинтересованными лицами вне системы, используйте опцию выгрузки "Экспортировать исходный код UML-моделей и формул". Таким образом, после импорта эти объекты вновь станут редактируемыми, так как при экспорте они преобразуются в изображения.
Для импорта откройте документ и в меню Действия выберите соответствующий пункт меню.
Если необходимо распечатать несколько разделов или целый документ, можно воспользоваться встроенными возможностями печати из браузера: