Nothing a good search engine and proper requirements can fix.
In theory it should work like this:
I) "User should be able to do X" <- requirement
II) "X can be achieved by performing steps A, B, and C" <- description of the implementation (high-level, user-perspective)
III) "A works by using components 1 and 2" <- technical documentation (design-level, architecture perspective)
etc.
I) generates your index (what can I even do with the software)
II) generates the documentation (how can I do it)
III) and below is for technical use only (extending, modifying, porting)
Stuff like rationales for design decisions can be structured in the same layered way.
I don't know how something like this can be extracted after the fact, but no matter the development model (waterfall/agile), a structure like this should arise naturally anyway and the absolute amount of documentation isn't a problem. Lack of proper structure, however, is.
In theory it should work like this:
I) "User should be able to do X" <- requirement
II) "X can be achieved by performing steps A, B, and C" <- description of the implementation (high-level, user-perspective)
III) "A works by using components 1 and 2" <- technical documentation (design-level, architecture perspective)
etc.
I) generates your index (what can I even do with the software)
II) generates the documentation (how can I do it)
III) and below is for technical use only (extending, modifying, porting)
Stuff like rationales for design decisions can be structured in the same layered way.
I don't know how something like this can be extracted after the fact, but no matter the development model (waterfall/agile), a structure like this should arise naturally anyway and the absolute amount of documentation isn't a problem. Lack of proper structure, however, is.