На больших проектах почти никогда не удается поддерживать актуальную документацию. Это происходит потому что «стоимость» такой документации сопоставима с разработкой, а польза сомнительна. Выход в том, чтобы выделить сценарии, при которых такая документация может понадобиться и смоделировать их в рамках проектной команды и процессов. Например, разделив команду на независимые и обособленные группы (ядро и модули) или отделив разработку и поддержку. Тогда необходимая документация будет.