Поделюсь своими мыслями, выводами и наблюдениями по поводу спецификаций требований к SharePoint (далее SP) проектам.
На этапе сбора требований я стараюсь сразу упорядочивать требования и создаю графические модели (мне с ними удобно работать и проще согласовывать с заинтересованными лицами). Далее опишу виды моделей, которые затем будут удобны с точки зрения SP:
Data Flow модель. Эта модель фиксирует границы системы. С ее помощью можно определить, нужно ли будет реализовывать какие-либо коннекторы к внешним сущностям по отношению к системе и оговорить этот момент с техническими специалистами и разработчиками, ведь платформа может налагать существенные ограничения.
Модели процессов (as is и/или to be). Из этих моделей далее можно вычленить варианты использования, MS SP workflows (рабочие процессы), сущности и артефакты предметной области, и участки для доработок.
Модель предметной области. С помощью данной модели можно спроектировать архитектуру системы, создать описание информационной структуры системы (списки, библиотеки, колонки, контент типы, свойства колонок и т.д.) и выявить участки для доработок.
Модель вариантов использования. Данная модель определяет будущие группы пользователей, права доступа, наследование прав доступа, опять таки участки для доработки. И естественно сами варианты использования :), с помощью этой модели можно относительно точно определить процент доработок.
Уровень и степень детализации моделей зависят от размера системы, специфики и требований заказчика, размера и состава команды, настроения и погоды за окном :oops: Далее эти модели могут существовать сами по себе или быть включены в различные документы (project vision and scope, SDD, BRR, URD, SRS,..), что опять же зависит от конкретных условий проекта. Про трассирование требований (а модели отражают требования) думаю все помнят.
На этапе проектирования системы создаются дополнительные модели (не только графические), а так же уточняются и расширяются существующие:
Прототип. Мне нравиться делать прототип сразу на SP, а для доработок делать мокапы в Balsamiq, например, или вставлять текстовое описание на страницы SP (для воркфлоу, например).
Presentation Layer Site Map. Старая добрая карта сайта: сайт коллекции-сайты-страницы-вебпарты.
Productivity Layer Map. На этом уровне в SP находятся списки, библиотеки документов, страниц, форм и дэшборды. На ней удобно указывать, например, какие списки на сайте будут справочными и куда они будут поставлять информацию.
Информационная матрица. Я делаю excel-файл, в который вношу данные по сущностям и их атрибутам. А затем определяю, какими типами полей эти атрибуты будут реализованы (в SP есть ограниченный набор типов полей, который можно расширять своими, но это не рекомендуют делать, т.к. при обновлениях от MS они могут сломаться). Далее указываю обязательность, уникальность, отображение/скрытие. Соотношу поля с контент типами, сайт колонками, списками и библиотеками, указываю порядок полей. В общем, получается достаточно большая матрица, но используя различные сортировки, фильтрации и другие excel-прелести ей очень удобно пользоваться и поддерживать ее в актуальном состоянии.
Permission матрица. Матрица прав доступа на уровни системы (сайт коллекции, сайты, списки, библиотеки, документы, записи в списках, папки, страницы): по вертикали - уровни, по горизонтали - группы пользователей, на пересечении - уровень доступа. Уровни доступа указываю в терминах SP.
Описание вариантов использования. Я стараюсь по минимуму описывать OOB варианты использования, обычно вставляю копии экранов и получается нечто вроде руководства пользователя. Но совсем не описывать у меня пока получалось не часто, это возможно только, если все члены команды и заказчик хорошо знакомы с возможностями SP. Степень детализации вариантов использования, которые требуют доработки, зависит от вшивости заказчика и уровня команды (для джедаев иногда приходиться писать очень формально и подробно).
Описание функциональных требований. Структура данного описания практически полностью дублирует Site Settings страницу на SP сайт коллекции. В таком варианте удобно настраивать новые сайты руками. Для каждого сайта в сайт коллекции (включая top-level сайт) описываются все секции, которые могут быть переопределены на Site Settings странице, причем если какое-то свойство не переопределяется, то я это так и пишу. Веб страницы (которые между прочим хранятся в отдельных библиотеках на productivity уровне) я описываю как обычные веб страницы гипотетического сайта :wink: .
Естественно между всеми этими моделями существуют трассируемость, которую нужно поддерживать. Модели, по возможности/необходимости включаются в документы.
А так же данный набор используется не на каждом проекте, а по мере необходимости. Например, если проект полностью на OOB, то многое не делаю.
Еще удобно на этапе сбора требований составить себе эдакий чек лист о чем нужно спросить из того, что важно для конфигурации SP: брендинг, права доступа, группы пользователей, информационная структура, события для воркфлоу, структура сайт коллекций, кто будет администрировать, каков процесс доставки на прод, пройтись по лимитам SP (если они актуальны для проекта), ...