База Знаний: Вся информация одинаково бесполезна? - 3

Продолжаем рассматривать вопросы создания Базы Знаний (БЗ) в разработке ПО (продукт, система, сервис). Какие артефакты и разделы должны присутствовать в БЗ. Пишу с точки зрения аналитика, и в порядке важности (постараюсь дать обоснование, и в комментариях готов обсудить свою точку зрения).

Ставлю клиентскую документацию на первое место. Даже если у вас нет времени на внутреннее документирование вашего ПО, клиентскую документацию (User Guide, FAQ, спецификацию протокола) вы все равно будете делать.

Для команды выгодно делать данную документацию качественной, понятной и исчерпывающей. Важно закрыть потребности клиентов таким образом, чтобы они могли решить свои вопросы максимально самостоятельно и как можно меньше обращались в Сопровождение и команду разработки. В первую очередь следует обратить внимание пользователя на границы функциональности вашего ПО. Далее следует описать простым языком сценарии использования ПО и результат, который может получить пользователь. Следует не забывать описывать важные и ключевые технические особенности. При этом все из-них должны сопровождаться примерами. Дополнительно, с помощью клиентской документации вы транслируете на пользователей ваш словарь терминов. Это поможет при взаимодействии с ними, вам будет легче понимать друг друга. Это будет хорошо заметно при решении инцидентов.

Второй довод за клиентскую документацию - С помощью нее вы закрываете вопросы Бизнес Требований. Другими словами она автоматически становится реализованными БТ. Также ускоряется разработка новых БТ через правки уже имеющейся документации.

Третий довод - Техническая команда будет регулярно обращаться к данной документации по разнообразным вопросам. Нужно оговориться, что это работает в разработке большого и сложного ПО.Нужно изучить ПО новому сотруднику, нужно детально ознакомиться с процессом работы какого-то сервиса, нужно в процессе разработки сохранить обратную совместимость, нужно смоделировать поведение пользователя для unit-тестов, нужно организовать нагрузочное тестирование - существует множество ситуаций, когда данная документация будет дополнять другие источники и ускорять работу команды.