What are some good practices to avoid this? What can help reduce friction in documenting this institutional knowledge? How can we make institutional knowledge more accessible within the company?
2. Reduce churn, both in employer turnover and in re-organizations.
3. Teams just need to talk to each other. It doesn't have to be everyone-to-everyone all the time because that's a function of quadratic order, but people should have a chance to ask each other questions.
4. Reduce scope.
My suggestions are mostly about avoiding the situation you're in. Legacy issues like yours are tough to tackle. The one obvious choice is a code freeze, then rewrite.
The best readme files write in english what the mode does, a sort of heat-map of the code ( often some parts are more used then others ) and pitfalls.
I’m also a big fan of short and succinct comments in appropriate places. I once broke production because I saw a private key being written to kafka. It felt odd so I removed that. Turns out something was reading that private key. There’s now a comment saying “When checkin data, double check this other module”
But the best thing is to have shared knowledge. I don’t think it’s useful or practical for regular engineers to know everything but the tech leads should be able to provide guidance across the larger cod base.
Most places I've worked have had people who are longer tenured fill this role unofficially but I think there would be value in having it be an official role.
Jira is difficult to search and gives teams too much flexibility on organization. The latter makes it difficult when going from one team to the other.
Someone needs to champion documenting. Especially getting knowledge out of slack and similar tools which also have terrible search. Whatever the tool IMO team members need to feel empowered to contribute and edit.
In my teams- Microsoft Word/Excel/POwerPoint is banned. It must go on Confluence or Gitlab Wiki.