I see posts on LinkedIn all the time about training in writing API docs or how best to document software systems. Here in Silicon Valley, it's the hottest sub-discipline in techcomm. In fact, API docs are so popular, they have an API Docs training class on the day before TC Camp in January.
A while back, I saw a Facebook post by a software engineer in the SF bay area celebrating a website of Linux software documentation. He remarked that the docs were "excellently done," a model for software docs everywhere to emulate.
If you're interested in the seeing the docs, head on over to Brendan Gregg's website. It's a collation of links to various Linux software documentation that he's written, all gathered into one place.
There are a ton of illustrations that even I can understand (and I've never worked in the Linux kernel). They're not fancy docs, but they're clear and well-organized, and subdivided into categories that make it easy to follow ideas from the easy to complex. If you're looking for ideas on how to make your software docs better, you might start there.
Key Concepts:
basics, best practices, usability and user experience