Кто будет читать документацию? Для чего будет использоваться документация? Это самые важные вопросы для ответа. Например, документация для разработчиков технического обслуживания будет в большей степени ориентирована на структуру, тогда как документация для разработчиков, интегрирующихся с продуктом, будет в большей степени сосредоточена на веб-службах и структуре базы данных.
В общем, делайте столько документации, сколько требуется и не более. Многим организациям нужна документация, потому что кто-то настаивал на том, что это лучшая практика, но в итоге документация пылилась
Предполагая, что люди действительно будут использовать документацию, не пытайтесь захватить код и базу данных до минимального уровня. Разработчики посмотрят код для мелочей. Вместо этого сосредоточьтесь на деталях, которые не видны в коде , например:
- Варианты использования, с которыми встречается продукт. Это может быть трудно, учитывая возраст продукта, но получение информации о том, для чего предназначен этот продукт, дает жизненно важный контекст нетехническим читателям и тестировщикам. Кто являются конкурентами на рынке (если есть)? Что-нибудь исключено из сферы действия продукта?
- Любые четкие нефункциональные требования . Например, был ли продукт написан для обработки определенного объема? Сколько лет могут быть данные? Где используется кэширование? Как проходят аутентификацию пользователей? Как работает контроль доступа?
- Контекст схема , показывающая взаимодействие с другими системами, такими как базы данных, источники аутентификации, резервное копирование, мониторинг и так далее.
- (Если известно) Риски и способы их снижения, а также реестр решений . Это, вероятно, сложно оглянуться назад, но часто есть важные решения, которые влияют на дизайн. Захватите все, что вы знаете.
- Общие шаблоны проектирования или рекомендации по проектированию . Например, есть ли стандартный способ доступа к базе данных? Существует ли стандарт кодирования или именования?
- Критические пути кода , обычно с использованием блок-схем или UML-операций или диаграмм последовательности. В проекте может не быть ни одного, но обычно это те, о которых бизнес-пользователи сформулировали.
Даже если вся эта информация недоступна, начните прямо сейчас . Разработчики, которые придут за вами, будут вам благодарны.
Хорошие автоматизированные модульные тесты или контрольные примеры также могут быть полезной документацией, хотя труднодоступными для менее технических специалистов.
Также звучит так, что вам нужно внести культурные изменения, чтобы включить документацию . Начните с малого, но, в идеале, проект не должен быть «завершен», пока он не будет иметь хотя бы минимальный уровень документации. Это, наверное, самый сложный шаг, потому что выше есть вещи, которые вы можете контролировать. Это то, что другие должны купить. Тем не менее, это также может быть наиболее полезным, особенно если следующий ваш проект идет с хорошей документацией.