Где хранить разные виды информации
Ниже перечислены стандартные области. Они необязательны: команда создаёт только те, которые ей нужны. Разделение на области реализует принцип «Различайте виды информации»: устойчивые знания, текущее состояние и правила изменения состояния служат разным целям. Область может быть представлена одним файлом или каталогом с INDEX.md; её структуру с самого начала рекомендуется строить модульно, закладывая разделы под будущее разделение на файлы. Пути в таблице показывают варианты с каталогами.
| Область | Что в ней находится | Пример |
|---|---|---|
FISS/knowledge/subject/ | Знания о предмете, с которым работает проект | Понятия, бизнес-правила, процессы, предметные ограничения |
FISS/knowledge/project/ | Устойчивые знания о самом проекте | Архитектура, проектная терминология, окружение, соглашения, практические приёмы |
FISS/state/ | Изменяемое состояние, влияющее на текущую работу | Открытые вопросы, действующие риски, временные ограничения |
FISS/overrides/ | Проектные правила применения навыков | Поведение и жизненные циклы навыков, шаблоны, проверка и правила участия человека |
FISS/human/knowledge/ | Самостоятельные материалы преимущественно для человека | Наблюдения, личный контекст, поясняющие заметки |
FISS/human/projection/ | Обзорные представления большого объёма знаний для понимания проекта и принятия решений человеком | Карта предметных понятий или обзор связей компонентов |
Команда может добавлять собственные области. На них распространяются общие правила структуры и навигации.
Знания: о предмете и о проекте
FISS/knowledge/subject/ отвечает на вопрос «Что нужно понимать о предметном мире?» Здесь описывают сущности, термины, процессы, правила и инварианты — условия, которые должны сохраняться. Название subject не связано с обязательным применением какой-либо методологии, в том числе DDD.
FISS/knowledge/project/ отвечает на вопрос «Что нужно знать об устройстве проекта и работе с ним?» Здесь описывают архитектуру, связи компонентов, окружение, инструменты, инфраструктуру, рабочие соглашения, типичные ошибки и известные способы их обхода.
Глоссарий может относиться к обеим областям. Предметные термины размещают в FISS/knowledge/subject/, а названия компонентов, внутренние сокращения и другие термины самого проекта — в FISS/knowledge/project/. Если одно и то же понятие имеет одинаковое значение в обеих областях, рекомендуется хранить его определение в одном месте, а из другой области давать ссылку. Если одинаковое слово имеет разные значения, определения следует хранить раздельно и явно указывать область каждого значения.
Долговременное знание тоже может меняться. Его отличие от текущего состояния — в назначении: оно помогает понимать проект и работать с ним на протяжении многих задач.
Состояние
FISS/state/ описывает текущую ситуацию, которая может повлиять на работу: открытые вопросы, действующие риски и временные ограничения.
Если текущее состояние уже ведётся во внешней системе, следует ссылаться на неё. Например, при учёте задач в трекере FISS не должен создавать второй реестр тех же задач. Правила изменения состояния, если проект хочет переопределить поведение навыка, размещаются в FISS/overrides/.
Материалы преимущественно для человека
Всё пространство должно быть понятно людям. Область FISS/human/ нужна, когда команда хочет отдельно разместить материалы, которые не требуется включать в обычный контекст агента.
FISS/human/knowledge/содержит самостоятельные знания и заметки, ориентированные прежде всего на человека.FISS/human/projection/помогает человеку понимать проект и принимать решения, когда знаний вFISS/knowledge/subject/иFISS/knowledge/project/накопилось слишком много, чтобы удерживать их в голове. Эта область предназначена для больших проектов с таким объёмом знаний; создавать её заранее не требуется.
Проекции могут представлять собой карты понятий, обзоры архитектуры и схемы связей. Они собирают существенное для человека из подробных материалов. Проекция не является самостоятельным источником истины: следует указывать исходные материалы и существенные упрощения, а при изменении исходного знания пересматривать связанные проекции. Для решения, требующего деталей, человек должен иметь возможность перейти к этим материалам.
Название FISS/human/ обозначает назначение материалов, а не ограничение доступа. Применимость материала определяется условиями чтения и правилами проекта.