As an expert I often think things are obvious that are not. So it takes a few rounds to make useful documentation.
As an expert I often think things are obvious that are not. So it takes a few rounds to make useful documentation.
It takes discipline, as otherwise everyone skips the "write documentation" step, and it will annoy some people with high priority issues.
But IMHO, it's the only thing that actually scales if you truly want comprehensive, continuously-updated documentation.
Side note: An excellent way to generate drafts for missing content is have your new hires write them as they get up to speed. By definition they're looking everything up, so they'll notice gaps. And they have time, before they're fully up to speed. And as long as someone with knowledge proofs their draft, their lack of experience shouldn't matter.
We are currently in the process of creating a data dictionary for our company.
I put down a rule that we are not ever going to create a SEPARATE WordDoc/Wiki/Evernote/GenZ-tool.
If it is code, document its meaning (english explanation for laymen) in the doc string. If it is data, document its meaning in the column's metadata (all database systems provide a property/comment/description capability at table & column level). If it requires complex diagrams, put these in whatever files (doc/image/pdf/mp3), store it as a blob in a database and create a link it in original code comments/column metadata.
All this data is then constantly pulled into some data-mart on top of which a query-able UI is created.
Every documentation must be literally "Tied" to actual systems making money for the company.
If a new code/data is created or updated, and it's missing documentation, PR is not approved. Once the basic technical setup of tying code/data with comments/metadata is done, enforcing this rule of updating documentation is the job of management/CTO culture.
How do you deal with outdated info that's still useful to keep around?
I have a few internal wiki-pages which are 80% 'stuff I tried that doesn't work but I'd like to keep around because the tries are valuable in case I re-visit these angles', 20% 'stuff that worked in the end'. I find the 80% confuse newcomers, and I still have to explain which parts are important.
On the other hand if you have good version control over the wiki, and a way to search the version history as well, kill the zombies.
Just like killing zombies in your code, killing zombies in documentation sounds good. https://www.bitnative.com/2012/10/22/kill-the-zombies-in-you...
You separate out them out into 2 related parts of documentation. My guess is that you want them in the same wiki page because that's how you wrote it and that's how the information lives in your head since it's all for the same project, but from an information management point of view, they're two different pieces of information with mutually exclusive metadata properties.
More broadly, ideally you talk to other people and find out where THEIR 80% 'stuff I tried that doesn't work but I'd like to keep around because the tries are valuable in case I re-visit these angles' information lives and collect it all together and presented in a way where people know going in that they're looking at historical information for the sake of current decision making.
I rely on git repos using markdown because it's fast and I can search, however things like tables etc can get annoyingly complex to upkeep.