Основные алгоритмы в голове
Основные разработки на FS
Второстепенные проще забыть и выбросить.
Современные технологии настолько быстро прогрессируют,
что "знание" столь же быстро перерождается в инфо-мусор.
Настоящая беда - генеративное знание, а его уже много и им "пользуются".
Сейчас, обычно, по своему участку кода (подсистемы или ее части) есть внутренние эксперты. Если это код вендора - экспертиза на его стороне. Если специалист уходит, то или от его подсистемы отказываются (если можно), или кто-то титаническим трудом разбирается. Есть тимлиды, которые знают в продукте условно все. Есть аналитики, которые знают, как продукт работает со стороны пользователя. Есть тестировщики, которые тестят и помогают пользователям адаптироваться к новым механизмам или к изменению старых.
Документировать код - это хорошо. Хорошо написанный код - это уже неплохая документация. Но хорошо написанного кода всегда только небольшая часть проекта, основная часть проекта, который развивается, - это легаси. И код подвержен второму закону термодинамики, который в простой формулировке известен как "все сущее стремится к хаосу". И это связано с другими законами. Например, с законом, согласно которому работа занимает все отведенное на нее время. И это время тратится вовсе не на то, чтобы написать идеальный код.
Вообще, для того, чтобы код был хорошим, достаточно прилично именовать функции, давать переменным дальнего действия приличные имена, стараться поменьше использовать глубокие иерархические структуры (типа соответствия со структурами соответствий в соответствиях, соответствиями погоняемых и в массив покладенных. Это, кстати, не является нарушением стандартов, но код запутывает в разы больше ,чем односимвольные переменные не в счетчиках цикла (если они, конечно, умещаются на один экран и содержат простые вещи). Ну и не использовать по процедуре на каждый чих, когда модeль превращается в вызов тыщи процедур, особенно из разных модулей, код которых далек от идеала.