Slashdot Mirror


RTFM? How To Write a Manual Worth Reading

An anonymous reader writes with a link to Rich Bowen's insightful, detail laden piece at Opensource.com about improving documentation: Have you noticed that the more frequently a particular open source community tells you to RTFM, the worse the FM is likely to be? I've been contemplating this for years, and have concluded that this is because patience and empathy are the basis of good documentation, much as they are the basis for being a decent person. What's the best example you know of for open-source documentation? How about the worst?

38 of 244 comments (clear)

  1. One thing to keep in mind... by Penguinisto · · Score: 3, Insightful

    Make it conversational as well as informative. You don't have to write a novel or make it into a drama play, but at least do something to help illustrate a bit more than some short and often mis-communicated list of what the options do. In technical speak? No problem: less man page, more info page (speaking of which, an actual info page would be a nice thing to have for a few of the projects out there, eh?)

    --
    Quo usque tandem abutere, Nimbus, patientia nostra?
    1. Re:One thing to keep in mind... by Anonymous+Brave+Guy · · Score: 4, Insightful

      Make it conversational as well as informative.

      On a related note, often with OSS there are more than two parties in the conversation.

      If I'm configuring some sort of local mail store, I don't just need to know how to set up Dovecot. I need to know how to set up Dovecot, Postfix, Roundcube, and so on, and I need to know how to set them up together.

      If I'm configuring some sort of Linux server, I don't just need to know how to set up RAID, I need to know how to do it with logical volumes for future-proofing, and I need to install a bootloader that understands. And then I need status monitoring, and procedures for recovering after failure, adding more capacity, and so on.

      Frequently with OSS, particularly sysadmin-type stuff, I find there is more detail than you would likely ever need about any one part of the system, but the real problem is figuring out how to connect it all up in practice.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:One thing to keep in mind... by Anonymous+Brave+Guy · · Score: 5, Insightful

      Strongly disagree, documentation should get straight to the point.

      Detailed reference documentation, yes.

      But more often than not, the problem with OSS seems to be that no-one wrote the introduction/overview/big picture stuff, and the developers instead expected that users would just magically discover that kind of understanding from 1,943 man pages with cryptic names and no context or navigation to show them where to start.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:One thing to keep in mind... by Anonymous Coward · · Score: 2, Insightful

      That's a different thing from a conversational tone.

      Yes, there should be an overview and lots of examples but it still should be written concisely.

    4. Re:One thing to keep in mind... by Bite+The+Pillow · · Score: 2

      Not really. We can debate the meaning of tone, but 6 sentences that meet your criteria stop being conversational if they are out of order, or missing.

    5. Re:One thing to keep in mind... by ezakimak · · Score: 4, Informative

      I totally agree.
      I've seen countless man pages that don't even bother to say what the command *does*, let alone *why* you would want to do that. They assume it is all self evident (I'm guessing the author's logic was: "or else why would you be reading about the flags if you didn't already know you needed it and for what?").
      Also, sometimes explanations are vague--being precise about the behavior (especially if it is altering data) is important.

    6. Re:One thing to keep in mind... by cyberchondriac · · Score: 3, Informative

      This is what happened to the "For Dummies" books, IMO. The old classics like "DOS for Dummies" was great for a beginner, but it seemed like a lot of the later books went way too heavy into the realm of comedy or stretched tangential analogies, and it distracted from the key information itself.
      Nobody likes dry reading. but they got soppy dripping wet. ;)

      --

      Look back up at my post, now look back down, you're on the Internet. Now look back up. I'm a signature.
    7. Re:One thing to keep in mind... by gsslay · · Score: 3, Insightful

      This is not just a problem you see in command line or open source software. You find it in the documentation of many niche applications and it's invariably because it was written by one of the developers. Someone who has spent months working on the software, so it doesn't occur to them how someone completely unfamiliar with the software might approach it, or what they might want to know. So you get online documentation that dives right into technical details, scarcely touching on an overview of what it actually does.

      And this happens even with software where the developer wants you to buy it. Just how many sales they get when the potential customer has to first puzzle out what it is, I don't know.

    8. Re:One thing to keep in mind... by DuckDodgers · · Score: 2

      The Head First books are a training introduction for complete novices. They were never designed as reference books, and in fact their back covers and introductions usually emphasize that point. I found the Head First books I bought very useful when I was new to a topic, and then useless afterwards - but that means they worked as intended.

  2. OSS needs technical writers more than coders by NotDrWho · · Score: 4, Insightful

    Coders they got. Projects whose "documentation" consists of anything more than a technical list of bugfixes they don't.

    OSS needs to realize that well-written documentation is just as important as well-written code.

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
    1. Re:OSS needs technical writers more than coders by TWX · · Score: 2

      I remember when the Linux Documentation Project and Howto.org (if I'm remembering the URL right) had just about everything. Then the UI-side exploded and went crazy, no one kept the docs up to date, and it all fell on its face.

      --
      Do not look into laser with remaining eye.
    2. Re:OSS needs technical writers more than coders by Maxwell · · Score: 4, Insightful
      Incorrect, and arrogant. It IS hard to write well, it is a skill, it can be learned, and not many in the tech community have it.

      "It isn't hard to code well, it just takes time" - said no writer, ever.

    3. Re:OSS needs technical writers more than coders by Z00L00K · · Score: 2

      Good documentation takes special skill - you have to write it in a way that's easy to understand as well as being advanced enough to be useful.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re:OSS needs technical writers more than coders by Enry · · Score: 3, Informative

      TLDP had a lot of problems and they weren't all internal to TLDP. I think the biggest one was that we were trying to balance between documentation style and authoring while trying to make it easy for people with little documentation skills to write. It isn't as easy as writing a word doc and uploading it - we were trying to make it so you could read documentation on any format: PalmOS, PDF, Word, printed, HTML. Docbook and linuxdoc made that process easy, but it was a markup language and the best way to write it was as by doing the markup yourself (think writing HTML by hand) and there was a lot of infighting about going back to linuxdoc. As the documents became more complex it was difficult to do technical reviews since a lot of the people were more documentors than technical. As Linux grew and advanced, nobody was available to update old documentation because they were working on new ones, so much of the existing content became stale.

    5. Re:OSS needs technical writers more than coders by Hognoxious · · Score: 3, Interesting

      It isn't hard to write good documentation. It just takes time.

      I once took over from a guy who left me a 400 page binder. He must, presumably, have spent some time on it.

      It was brilliant if you wanted to know what program fiddlydiddly did or what table doodlefoodle controls, i.e. bottom up.

      if you wanted to work top down, i.e. you need to find what causes a specific thing, it was worse than useless.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    6. Re:OSS needs technical writers more than coders by NJRoadfan · · Score: 5, Insightful

      I am in the process of documenting a system I added to an open source project. Its not easy to write, particularly if one doesn't have a background in technical writing. The basic process the same though, you have to write for your audience, and revise.... a lot. In my case, I have been sending drafts of my work to other developers in the project to not only proofread, but to actually read through the directions and perform the listed tasks as an end-user would. So far the feedback has resulted in changes in both the documentation and the program to make things easier/clearer for the user.

      I guess what I'm trying to say is, don't skip review and just post the documentation. Give the documentation and software to someone not familiar with it and see how they interpret and understand it. Listen to their feedback. Way too many developers don't (I'm looking at your Google!). Wikis are supposed to address this, but don't seem to engage enough people to actually contribute.

    7. Re:OSS needs technical writers more than coders by Archangel+Michael · · Score: 2

      I am a tad arrogant, but that is not the problem here. Good Documentation isn't hard, it is time consuming.

      It is time consuming because you have to use it, and test it, and revise it for cases you never thought about. Writing itself isn't hard. Getting the writing usable is just time consuming.

      IF you don't put in the time, the writing isn't going to take care of itself, and therefore only appears "hard". Sometimes, it seems the best skill I have is patience ;-)

      If you do enough Documentation, you can get much closer to a good final product out of the gate, because you can anticipate things better. I am sure coding is similar. In fact, I would suggest to you that Documentation is Coding, just for humans instead of machines :-D

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    8. Re:OSS needs technical writers more than coders by BronsCon · · Score: 2

      You nailed it with your last sentence. In fact, I prefer to start with good technical (why/how) documentation and code from that, commenting usage (which eventually translates into user documentation) along the way. With the theoretical and technical documentation out of the way before coding even begins, and the bulk of the user documentation written alongside the code itself (still needing to be compiled into a coherent document and edited, of course), all that's really left is to provide some usage examples, which can be done during final editing of the documentation.

      Because the theoretical and technical documentation do not need to follow the program (it happens the other way around in this case), they become much easier to write. Coding becomes easier, as well, because the theoretical and technical documentation define everything (and if it doesn't, it gets kicked back to the author to be fixed while the developer takes a coffee break). That whole process just moves more smoothly and quickly, at that point. Having the developer detail usage in their code comments means the person who best knows how to use the code is the one documenting how to use the code; of course, a technical writer should compile those comments into a coherent document, then edit it. As a final test of that documentation, that technical writer should, while editing the user documentation, write a series of usage examples and have the developer verify that the examples are correct. Any corrections to the examples should result in similar corrections to the documentation, as well.

      This seems to reduce the number of revision cycles while, at the same time, ensuring that the documentation and application are in sync.

      I always tell my clients, if they're not willing to work with me to write the technical documentation before I begin development, my development quote doubles and only minimal documentation will be provided. I only have one client who chooses that option; they also prefer to pay me to maintain everything, so I guess it's a win-win.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  3. Old DOS Borland Developer Tools. by jellomizer · · Score: 3, Interesting

    I was able to teach myself Pascal and C++ with the quality online Documentation in the Old DOS Borland Developer tools.

    There are levels to the documentation.
    Theoretical: Why is it here.
    Actual: What does it do
    Physical: working examples.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    1. Re:Old DOS Borland Developer Tools. by weilawei · · Score: 2

      I initially taught myself Commodore BASIC v2 from the reference manual. That was my first programming language, and I was a very small child of 4 at the time. Clearly, that was a well written manual. I also have fond memories of QBASIC (yes, fond).

      Shortly after, I had the aid of some series of books aimed at children, which taught BASIC. As I recall, they were slim red hardcover books, and one of the examples included a little racing game. I wish I could recall what they actually were titled, as I'd love to own copies for nostalgia (I borrowed them from my local library). I also had some of those young adult books where you type in some BASIC code to see the resulting part of a story. In one of them, you were a time traveler and one of the examples decrypted a secret message. That kickstarted a serious interest in cryptography--with computers, not just a pencil and graph paper.

      Then, I learned Pascal, then C, 8086 ASM, and C++, but largely from giant books loaned from other family members (a goodly chunk of my family are/were programmers) and various text files. Later, online tutorials were a huge help.

  4. Re:Best example by TWX · · Score: 2

    Honestly I go back to UNIX books that were not actually intended for Linux specifically at all; those for System V worked great when it came to administering early Linux.

    I've found later literature to not be as well written, and I've found many projects that aren't well documented at all, like the various GUI windowmanagers and login managers lately.

    I suppose this bias toward old, good documentation is contributing to my dislike of Systemd, I don't see the same docs for Systemd that I saw for System V and BSD init structures.

    --
    Do not look into laser with remaining eye.
  5. Counterargument: OpenBSD by Anonymous Coward · · Score: 2, Interesting

    How can your theory explain that one of the best documented projects is developed by the most widely recognized assholes of the open source community?

  6. The best manuals by Registered+Coward+v2 · · Score: 2

    are targeted to a specific audience. What is best depends on the audience. A manual aimed at a programmer may be written differently than one targeted at an end user, for example. While the basic content may be the same (examples, definitions, explanation of menus, etc.) how they are presented and in what detail may be very different. the main problem I see with manuals is they are often written by someone who may be a good programmer but has no idea who the audience is or what they need; which results in an end product that fails to meet the needs of the audience.

    --
    I'm a consultant - I convert gibberish into cash-flow.
  7. Bullet Physics by Anonymous Coward · · Score: 2

    The first hint that it's shit is that the Documentation link goes to a wiki. It gets progressively darker after that.

  8. Prioritize example usage by Anonymous Coward · · Score: 2, Insightful

    An important area to concentrate on is providing example usage. The more, the better.

  9. Re:Truism by NotDrWho · · Score: 3, Insightful

    10% of people want to write documentation without getting paid to

    FTFY. Everyone on an OSS project wants the front-line job of coding (and are even willing to do it for free). No one wants to be the guy doing the hard, less cool but no less essential, job of writing the docs.

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
  10. Language, Density, and Whitespace by EmagGeek · · Score: 3, Funny

    What I've learned from decades of reading professionally-written manuals can be summed up in two steps:

    The first step in writing a good manual is to have a very weak grasp of the language used by your target audience. It is important to use many grammatical and spelling errors, just to make sure the reader stays on their toes and pays attention. Research has also shown that users do not like to read manuals that use advanced vocabulary or complex grammatical structures.

    The second step is to manage the density of information on the pages properly. A piece of paper is pretty large, and so are most screens, so a lot of information can be included on a single pane of view. It is important to make the most of this space and convey as much information as possible, as densely as possible. The more information a user can see without having to turn pages, the better. Use of separating devices, indications, and other correlative marks should be avoided, as it takes away from space that can be used for more information. They also can cause there to be more whitespace on a page, which should be avoided at all costs.

  11. Story time, my method. by pecosdave · · Score: 5, Interesting

    So years ago I was in varying positions at an ISP, but regardless of title "head tech" pretty much applied. We kept getting kids right out of high school that claimed to know computers well but had never used a command line, didn't know what an IRQ was etc.. As this was the Windows 95/98 era and this was a dial-up ISP some manuals had to be written.

    I of course wrote them.

    I made flow charts for email troubleshooting (I hated Visio so I used a graphical editor instead), I had grids for IRQ/Address settings, I had step by steps for undoing AOL I.P. stack sabotage (how many of you remember that?) Fact was I wrote really good documentation that anyone from teenager to adult could use to troubleshoot the "normal" day to day issues a worker at an ISP faces without making a condescending script. If you used it for reference it was an answer key, if you read every word you often would know why that problem occurred. I'm of the belief understanding an issue is always better than just knowing what the fix is.

    Long story short - the documents leaked out of the company. On the north side of town there was a help-desk outsourcing company that tended to have a lot of employee migration with our own - in both directions. A buddy of mine went to work at a different ISP and saw my documents turn up there with my name replaced on the credit line (he knew I wrote them - he watched and knew the marks I put in things that were dead giveaways it was my stuff).

    I no longer worked at the old company and was still finding out about my documents leaking all over the damned place. I decided to put the documentation GPL on the things and throw them out on my webserver. If figured if I put them out on the web myself then there was a verifiable copy out in the wild, it would shine a light on the plagiarizers, and I was hoping to maybe get offered jobs or something. Later I was criticized with "that really should have been Creative Commons". Fuck you, I did this before Creative Commons even existed.

    My web server and the backups were physically stolen from my home, but there's still an archive. To this day I still write in the "explain it, don't step it" method.

    Turns out lots of places want idiot guides and don't care to understand.

    --
    The preceding post was not a Slashvertisement.
  12. Re:How about the worst? by ArcadeMan · · Score: 2

    For everything else, there's MasterCard.

  13. How not by Crass+Spektakel · · Score: 3, Interesting

    I am already happy when the author has read http://www.xkcd.com/1343/ and some early manpages of sudoers (imho the worst, by far).

    Todays "sudoers" manpage has already been cleaned up a lot and is still a horrible read. But in the past it was something like "the relevant configuration is a hierarchical list of geometrical weighted values. Each one represents a position in a list relative to its anchor". And yes, that was just a weird way of saying "/etc/sudoers contains configuration keywords with options".

    Overall I had the impression the author was a sociopath showing off his mathematical skills while keeping the core knowledge unavailable to others.

    --
    "Life is short and in most cases it ends with death." Sir Sinclair
  14. Documentation Requirements by hhawk · · Score: 2

    Based on the work I did in 1985 at Bell Labs as part of my assignment to create documentation requirements for the Acorn Network Control System -- Good documentation should have at least 4 parts. Each particular user persona would use the 4 parts in different ways. Part of the documentation would appeal to potential customers, novice users, intermediate users, users with limited but deep domain expertise, users who previously had fluency with the product but who lost that fluency due to lack of use.

    #1 The first in additional to typical table of contents found in each manual there should be a documentation MAP, that combines all of the various documentation and training for a specific product into a visual map; typically this is done with a task orientation. Much like a web page site map, this will allow a potential readers with a wide range of user cases to find the right document or the correct chapter, section, and should include online training, videos, Etc.

    #2 A quick reference guide which I think most users would be familiar with. This instruction is typically very linear, and walks at a high level users through the major steps for the most typical cases.

    #3 A "cook book" best for coding applications but has broad application to most technologies. Each section of this manual details how to perform a particular task, in it's entirety; e.g., a recipe. Recipes should cover a range of users types (novice, intermediate, expert, or with specific previous domain expertise). A non-coding example would be: Recipe for setting up a mix minus recording using the Behringer Xenyx 1202fx mixer; the ingredients would include all cables, software, Etc. used in the recipe.

    #4 A complete and full reference guide. Again typically found in manuals but often (today) the ONLY section of the manual. Each sub-section is a full and complete deep dive on each part, instruction, or option. This is typically used by experts. It can be used by those who are using the cookbook to look for recipe options and substitutions. It can also be used by potential customers to see if a particular use case is supported.

    --
    http://www.hawknest.com/
  15. Re:Exception by ahodgson · · Score: 2

    The Arch documentation is excellent.

    Much of the Gentoo docs are really good, too.

  16. Re:Love me some FM by Yunzil · · Score: 2

    If you spend all your time cobbling together enormous stacks from hugely bloated libraries with no maintainer,

    So, in other words, the real world?

  17. As in most teaching situations ... by CaptainDork · · Score: 2

    ... it's important to remember what it's like to not know.

    --
    It little behooves the best of us to comment on the rest of us.
  18. Re:Ditch the Passive Voice by HornWumpus · · Score: 2

    That should read:

    Passive voice, should not be used.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  19. A Lot of Software Defies Easy Explanation by careysub · · Score: 2

    And not because it has to be that way. The software is just poorly designed.

    In an ideal world, user documentation would be written before the software so that an understandable, consistent, UI would exist. This sometimes happens, but even then, the implementation may not match the documentation (yes, I have seen this more than once).

    Design principles like: simple things (and common tasks, even if not exactly simple) should be simple to do; the same technique should work in all contexts; etc. are often ignored in OS projects.

    I have come to despair in trying to find a nice open source (Linux) object-drawing program that is intuitive (and thus easy to learn), has consistent behavior, and allows the quick creation of clean basic diagrams, and maybe has an additional level of finer controls for more precise work. The original Macintosh had this back in the 1980s with MacDraw, and the even more awesome MacDraw II. Complete novices could take the program and discover how to make good looking "boxologies" in minutes just by playing with the tools. Maybe such programs are still available on the Mac platform (I haven't had one in years), but no OS object drawing or 2D CAD program on Linux seems able to grasp what one of the first such pieces of software on the market was able to accomplish.

    (Another really annoying thing to find in user documentation is self-praise about the product and accompanying documentation: making promises about how great the product is, and how wonderful the documentation you are looking at is, that are rarely kept.)

    --
    Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
  20. Ask the users. by Kwyj1b0 · · Score: 3, Insightful

    The problem with a lot of documentation is that they aren't written from a user's perspective - they are written by people who wrote the software, and know what to do. Letting go of your design assumptions is almost impossible.

    I have long felt that the first draft of documentation must not be written by the person who wrote it; you have to allow your users to "send" you the first draft (either through email questions/screenshots/etc.). Then you realize how many assumptions you made that are non-obvious to your users.

    Obviously, this isn't really practical for OSS - you might not be able to pay for usability testing and feedback. Which is why I prefer to include screen shots in documentation as much as possible. Also, I try to follow this basic formula for documentation: What (what is the user trying to do - make it clear what this section of the documentation address), How (how can the user achiever her goals), Why (this is where you might, if you choose, try to explain a design/implementation philosophy - it comes third, so that someone who doesn't care doesn't skip the entire section. Clarity and brevity are important.).

    This is the principle I follow for user stories as well - create an end-to-end user workflow (which is basically just many small What/How/Why sections tied together).

  21. Perl man pages by Anonymous Coward · · Score: 2, Informative

    One of my favorite sets of open source documentation are the perl man pages. They are written in an informal yet instructional style, and are *loaded* with useful, practical examples of how to use the language. Heck, I refer to "man perlretut" even when I'm not using perl, but I need a general reference for regular expressions. Sooooo useful!