4 ms·
Brevity. Assume your users are intermediate developers and only tell them what they need to know. The worst documentation I had to parse recently was react-bea
by jackcodes 7y ago
Brevity. Assume your users are intermediate developers and only tell them what they need to know.
The worst documentation I had to parse recently was react-beautiful-dnd, and I’m saying this somewhat conservatively as it’s evident a lot of effort has went into producing something comprehensive. But I was paralysed by the volume of it, reams and reams of methodology and design decisions, how to contribute, and the history of the project. In the end I had to use one of the community codepen examples to get where I needed. Without meaning to stereotype too heavily I see this mostly in junior friendly React projects where you have more people contributing emojis to markdown than you have architecting your APIs. In case anyone from react-beautiful-dnd/Atlassian reads this, you have all the documentation you need, but make it less like a textbook and more like a two page CV.
The best documentation I’ve seen is spider-gazelle (crystal). It’s the prefect balance of plain-English explanation and example code. It probably helps that is was architected and written by the same person, and they were able to really hone down on exactly the right information to transfer.
Edit; I’ve just realised that your specific example is for an internal enterprise project, rather than a public facing library so the variables you optimise change slightly. I’d be maintaining and developing this software as a contributor, and the documentation is specifically for on-boarding me. I’d want to see more of the architecture rationale, point-in-time thought process, and explanations of business constraints that led to certain decisions being made (e.g. what prevented optimal architecture first time around)
- jnxx 7y ago> Brevity. Assume your users are intermediate developers and only tell them what they need to know. Sorry for an interjection. The documentation I am having in mind is technical documentation for future developers of a code base (its implementation). Not users of the API a code base. Also, it would be possible to document the wrong stuff or stuff that people really already know, but it is basically not possible to document too much, because of the time constraint.
- jackcodes 7y agoApologies for this, I’ve clarified this in my edit. I’d realised immediately after I’d submitted that it’s for a different purpose. Hope the edit clears it up a bit more.
- jnxx 7y agoBrevity is clearly an important quality aspect for all writing. But it does not come for free. For many people, writing concise documents is rather time-consuming, and there are certainly cases where you'd rather want to have a document at all, even if it is painfully bloated, than nothing.
- jackcodes 7y agoI agree, and one of the examples is your use case - undocumented enterprise software. To go back to the title, brevity makes the documentation good, but I’d rather have bloated in-date documentation than no documentation.