Both, in my opinion. From incipient need (rfc, etc) to use-cases, to design specifications, tolerance acceptances, expectation management, support, and finally sunset/archival.
If the code is where the “why” is found, those who are the end goal consumers of the product will be frustrated, for a small example.