Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

"this framework isn't comprehensive; there are other types of critical documents that aren't explained"

Do you have more examples for things missing here?



Introductions. The Divio site itself starts with an introduction yet it's not listed as one of the content types! You could argue that introductions fall into the understanding-oriented category but when I read the guidelines about explanations it's not particularly clear how to write a good introduction, and the goal feels somewhat different. I think the principles of information foraging [1] are probably most helpful towards understanding how to create a good introduction.

Announcements (similar to release notes but focused on a single topic). We do these a lot on web.dev. Journalistic principles can help a lot towards creating useful announcements: answer the 5 Ws [2], inverted pyramid [3], etc.

Case studies. In this case the goal is to persuade the reader to make a change and to do that you need to focus on what's in it for them. The journalistic principles mentioned earlier are also very helpful here.

Code samples. How do you organize a big collection of code samples for easy discoverability? Some projects make small code samples in the spirit of how-to guides (i.e. the code samples only show how to do one particular task), other people do them more in the spirit of tutorials (i.e. it shows you a working end-to-end realistic application). The best approach is probably to do both. Again I think the Divio framework can help guide these decisions, but looking at the Divio framework narrowly, there's nothing explicitly focused on code samples. One might argue that code samples aren't documentation, but in my experience a single good code sample sometimes gets the job done much better than any of content types that Divio mentions.

[1] https://en.wikipedia.org/wiki/Information_foraging

[2] https://en.wikipedia.org/wiki/Five_Ws

[3] https://en.wikipedia.org/wiki/Inverted_pyramid_(journalism)


Thanks for the kind words!

You are quite right, there are various things that aren't included in the scheme, that ought to be included in a complete set of documentation.

Other examples could be: release notes (though you could include them in reference), contribution guide (though it could be part of how-to) and of course, the Introduction you mention.

Mostly I think that these things probably belong outside the scheme, in the same way that say an appendix or an introduction falls outside main body of text in a book.

An introduction (in documentation) is basically marketing: a reason for someone to keep reading.

For me the scheme is not so much a complete list of every kind of thing that must be written (I think it goes without saying that you need to create useful contents tables for example) as a guide to how I should be writing and a reminder why I am writing.


I honestly also think it is worth mentioning introductions as an essential part. I somewhat disagree that it is outside the scope of a scheme of documentation.

An introduction to both the system goals and overall architecture provide essential context for the rest of the documentation, and can even provide the scaffold to structure it around.

It is all too common for writers of documentation (deeply embedded in the project) to forget that the person reading the documentation may have no clue what the whole system is trying to achieve (especially so in public-facing documentation... how many times do you see a link on HN to a documentation page with no explanation of what "a BUZZY GRAPHEME WRANGLER" actually is?).

Also... by your analogy, I am fairly certain that a guide to writing a technical book would dedicate a fairly considerable amount of space to the topic of a good introduction ;)


I don't disagree about the importance of introductions.

I can't count the number of times I've looked at the home page of documentation for some product and it has felt like stumbling into a teenagers' conversation conducted entirely incomprehensible references, slang and in-jokes.

An introduction needs to say what the thing is, what it does and why someone might want to use it. Usually that can be expressed in a few sentences.

I don't really see it as a mode of documentation in the way that the four components I describe are.

I wouldn't worry too much though. The framework isn't intended as a "do this, all this and nothing but this or you're doing it wrong" final statement on the art of documentation.

It's more a tool for thinking about what you are writing, for whom, and how you can best write it for them. It's to be used however someone finds it useful.


> Mostly I think that these things probably belong outside the scheme

Yeah, I think somethings count as "meta documentation" and are "documentation about the documentation" instead of the actual documentation.

"contribution guides" to me are definitely that, "introductions" are mostly that. I reckon licenses are probably "meta documentation" too (since they'll also be in the source code). "release notes" are a bit of a grey area in my head (I'd consider at least major version update release notes and any depreciation/removal of features to be "part of the doco".


You should submit a talk to one of our Write the Docs conferences (https://www.writethedocs.org/) -- this is a great start to a talk abstract :)


Daniele Procida already has a great Write the Docs talk on this subject already. It is indeed a fantastic talk.

https://youtu.be/qK-AnF5FJTs


Thank you for your summary of these items and for providing references.


Speaking for myself, two items I often find missing: the overall summary and the rationale.

Many times I've gone to a set of documentation wondering what exactly the thing _is_. Let's take the JavaScript language, for example. The very first thing that should be documented is a short description of what exactly JavaScript _is_. This could be a single sentence, should probably be at least a paragraph, and should be no more than a page. It boggles my mind how often this critical piece of information is omitted entirely.

The rationale quickly orients the reader to the landscape of similar solutions. It's very rare that something has no peer of any kind, and it's quite useful to understand why this particular thing exists, and how it can be distinguished from other similar solutions. The Python language, for example, has a number of attributes that separate it from other computer languages. This can be concrete (it comes with constraints that lend themselves to readable programs), or they can be aspirational (Python aspires to be an easy language to pick up, particularly for non developers). This can go deep, and rapidly descends into matter that my be quite useful and interesting, but belongs in an appendix or other separate matter.


Greg Wilson writes about a useful tool for thinking about types of documentation [0] incorporating the novice-competent practitioner-expert framework.

It looks like he was at least partly inspired by this article [1].

[0] https://third-bit.com/2019/08/08/documentation-types/

[1] https://third-bit.com/2018/10/18/four-forms-of-docs/


Implementation experience reports come to mind.


FAQs and code comments don't really fall cleanly into any of these categories.


Also curious myself..




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: