Это обычно известно как документация "как построено";есть огромное количество информации о паутинах.
Я предпочитаю разделить документацию на несколько разделов;каждый из них так же важен, как и другой, но вам не нужно тратить на них одинаковое количество времени.
Функциональный дизайн
Что должно делать приложение?Какое поведение ожидается?Каковы ключевые поездки пользователей?
Мне нравится использовать сценарии использования или истории пользователей для этого, с различными уровнями детализации.Системная контекстная диаграмма также помогает.Варианты использования могут быть как визуальными, так и текстовыми;часто достаточно пары часов для описания простого приложения
Нефункциональные требования
Такие вещи, как безопасность, производительность, поддержка браузера, SEO, доступность - перечисление вещейу вас есть приложение, и вы его еще не приняли, поэтому будущие разработчики знают, о чем беспокоиться и что проверять.
Концептуальный дизайн
Обзор высокого уровнясистема как построенная, определяющая основные компоненты, точки интеграции и зависимости.
Детальное проектирование
Это бит, который наиболее подвержен изменениям, и самая большая проблема, которую нужно поддерживать.Использование PHPDoc - отличный способ поддерживать это в актуальном состоянии.
Приемочные тесты
Даже если вы не участвуете в разработке через тестирование, оставление будущих разработок с методами тестирования работоспособности приложения - отличный способ сохранитьони в здравом уме.В идеале приемочные тесты должны быть автоматизированы / написаны с помощью сценариев (например, с использованием Selenium).
Известные ошибки
Предоставление списка известных ошибок будущим разработчикам мешает им вырвать свои волосы...
Все это может быть большой работой - так много команд используют "формальные" способы общения - вики, фотографии с досок, даже видео с командой, объясняющей дизайн.
Более формально, есть такие стандарты, как UML, которые помогают собирать документацию стандартным способом.