| In the repo, readme. Mostly. Each of my repos have an overview, installation, execution, testing, and deployment sections. I include images or links to Lucid for architecture diagrams. Sometimes I put readme into subdirectories as well if I think it’s warranted. (Rare) I really like markdown. It’s a great format for sharing information for technical folks especially newcomers to the code. As for documenting code itself, I try my best to write simple, clear, self explanatory code with good naming. All of my functions are single responsibility. Everything is clean and organized whether it’s structs or classes. I rarely write comments in code unless it’s for autodoc’ing library code. Not sure if this is what you were asking for - let me know if you mean something else. Interested to know more. |
FWIW, I'm struggling with documentation that support the mix of roles on the team in addition to coders/contributors - QA engineers, product owners, project managers, support teams, etc. A big part is the capture of requirements flowing into proposed solutions and out into support documentation.
In reply to _kb, it did occur to me that there are many job descriptions at play here, and that change is inevitable. Perhaps the answer is simply that it takes many people and several genres of software to keep things from falling through the cracks.