Slashdot Mirror


Ask Slashdot: What To Do About the Sorry State of FOSS Documentation?

First time accepted submitter TWX writes I've been out of computers as a serious home-hobby for many years and in returning I'm aghast at the state of documentation for Open Source projects. The software itself has changed significantly in the last decade, but the documentation has failed to keep pace; most of what I'm finding applies to versions long since passed or were the exact same documents from when I dropped-out of hobbyist computing years ago. Take Lightdm on Ubuntu 14.04 for example- its entire configuration file structure has been revamped, but none of the documentation for more specialized or advanced uses of Lightdm in previous versions of Ubuntu has been updated for this latest release. It's actually harder now to configure some features than it was a decade ago. TLDP is close to a decade out-of-date, fragmentation between distributions has grown to the point that answers from one distro won't readily apply to another, and web forums for even specific projects are full of questions without answers, or those that head off into completely unrelated discussion, or with snarky, "it's in the documentation, stupid!" responses. Where do you go for your FOSS documentation and self-help?

24 of 430 comments (clear)

  1. *BSD has best-of-breed documentation. by Anonymous Coward · · Score: 5, Insightful

    The one thing Linux really, really lacks, compared to the *BSDs is the quality of the documentation. Not even Google makes up for the deficiency.

  2. Real men by Raseri · · Score: 4, Insightful

    learn how to use a program by reading the source code!

    I jest, of course. It's not just open source projects that have this problem, though; plenty of commercial applications also have shit for documentation. The upside in open source being that you *can* read the source and build documentation from it, if you were so inclined.

    --
    Writhe your naked ass to the mindless groove.
    1. Re:Real men by NotDrWho · · Score: 4, Insightful

      That's because documentation isn't fun or glamorous. Everyone developing FOSS wants to do all the fun programming stuff. But no one wants to do the boring hard work of documentation, UI polishing, promotion/marketing, etc. That's why FOSS tends to suck in those areas compared to the commercial stuff (where they actually pay technical writers, designers, marketers, etc.)

      --
      SJW's don't eliminate discrimination. They just expropriate it for themselves.
  3. Re:Read the source code by Anonymous Coward · · Score: 5, Insightful

    That is completely unreasonable. If I have to read the source code just to be able to understand how to use the program, I will just wind up using proprietary software with proper documentation.

  4. Re:Read the source code by tomhath · · Score: 4, Insightful

    I've never seen JavaDocs that add anything to the source. It's okay if you need a list of methods or parameters, but usage is lacking.

    Documentation needs to have several *working* examples (not snippets) from a simple Hello World to more sophisticated but still commonly used. A single example that illustrates every imaginable feature and use case is rarely helpful.

  5. Yes! by war4peace · · Score: 5, Interesting

    I am saddened to say that the lack of proper, structured documentation, combined with bad experience every time I asked a question on OFSS forums kept me away from OFSS in general (and Linux, more specifically). Every year I try again and I am seeing the same results.
    I know I might ask questions perceived as "stupid" but everyone's been a newbie at some point in time. Maybe it's just my turn to be one. Thing is, once I get the correct, detailed answer I never ask the same question again but I almost never get the answer, just "RTFM" and "haha noob" with the obligatory variations.

    Of course, I've been trying to ask very specific questions, I've provided detailed information on my issue and was very polite myself. Still was met with smug and bile.

    In all fairness, creating documentation is something that almost nobody wants to do. I get that. However, politely answering a question shouldn't be that difficult.

    --
    ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    1. Re:Yes! by war4peace · · Score: 4, Interesting

      True words, I've seen people who behaved like that.
      Here's a funny story that I was involved in a couple years ago.

      My desk was at the time located on a developer-heavy floor, very silent, with everybody neck-deep into their code. They generally regarded me as "the uninitiated", treating me with contempt, at most. Hardly ever anyone talking to me. Two developers were sitting across my desk and they were smokers, so we occasionally ended up on the balcony together. One day, they were talking about an application UI bug which they were trying to fix. I, as a non-developer, was ignored, of course, but I was shamelessly eavesdropping in the hopes I would learn something from their... um, well, gibberish (of sorts). The UI bug was around some fields not being populated automatically when values were selected in others. Think of it as a chain of picklists with dynamically populated List-Of-Values.
      I gathered my strengths and asked them whether it could be the fact that some picklists are populated in the wrong chronological order. They looked at me in a weird way, said nothing, then thrown their cigarette butts and went inside. I felt like a kid asking "Mooom, what's a dick?" during Uncle Moke's funeral.
      Couple hours pass and they come to me and ask me whether I would join them for another cigarette. I was very much surprised. On the balcony, they told me I was actually right and the bug was fixed.
      Glad I could help.
      They respected me and talked to me a lot more after that, and I helped them crush a few more bugs by just listening to them while they explained what was wrong and brainstorming what might cause it. We still keep in touch even if they moved to a different company.

      While the above wall of text is a bit offtopic, the idea is that if a developer treats everyone else as if they are no good, he might miss opportunities.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
  6. Re:It's open source by war4peace · · Score: 4, Insightful

    That sort of attitude is the problem.
    Building the application and writing the code is half of the project. The other half is documenting it. Yes, you'll spend twice as much on the project, but that's counterbalanced by someone else picking up and improving it a lot faster.
    Also, undocumented code is a half-assed job, no matter how well it performs.

    --
    ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
  7. Big problem: Linux won by Dimwit · · Score: 4, Insightful

    A huge amount of documentation for various projects like GNU groff, GNU nano, Vim, and others, have implicit assumptions that users are familiar with those tools' traditional Unix counterparts. 'man nano' for example, doesn't describe any of the keybindings for the editor, instead assuming that users already know pico. The groff documentation in places explicitly states that it only documents the difference between groff and Unix troff.

    Linux has won. Most Linux users have never used a traditional Unix, and most never will.

    --
    ...but it's being eaten...by some...Linux or something...
  8. ARCH LINUX WIKI by hduff · · Score: 4, Informative

    I have found https://wiki.archlinux.org/, the Arch Linux Wiki to be the most useful single source of information taht is generalized enough to apply to most other distributions.

    As an early adopter of Linux, I too found the existing documentation appalling and started writing better documentation, which led to co-authoring RedHat/Fedora Unleashed with Bill Ball.

    My advice is to contribute to the documentation yourself since it appears that no one else, including the software authors, care much about it.

    But the barriers to contributing are high. You may not only need to learn about the application, but you need to learn any number of arcane editing and versioning tools, and then convince someone in authority to accept and include your changes. It's really no different that contributing code to a project and for your average writer, that's a huge hassle and likely a big part of why more writers don;t contribute.

    --
    "I believe in Karma. That means I can do bad things to people all day long and I assume they deserve it." : Dogbert
  9. Corrected Title by harl · · Score: 4, Insightful

    Ask Slashdot: What To Do About the Sorry State of All Software Documentation Everywhere?

    --
    I find being offended by me offensive.
  10. At least the neckbeards weren't hipsters. by Anonymous Coward · · Score: 4, Insightful

    You think it was bad then? Well, I'm not saying that it wasn't, but it has gotten a whole lot worse lately.

    The neckbeards you speak of are now in their 50s and 60s. A lot of them have, I'm afraid to say, died. They didn't live the healthiest lives when young, and they have perished because of this. A lot of the others have been marginalized as we've seen the hipster tide sweep in.

    At least the neckbeards had real experience. Most of them had gone to college, and a lot of them had graduate degrees and decades of industry experience. They may have been assholes at times, but at least they were competent. They wrote good code, even if they didn't always provide documentation.

    The hipsters have none of this. Most of them are in their early 20s, if not younger. They have no real education. Their knowledge is extremely limited, but they don't realize this. This is why they think JS is a good programming language, for example. They have absolutely no idea about anything else. The software they write is typically total crap, and documentation is completely foreign to them.

    At least the neckbeards could be depended upon to provide useful information about how their software worked. Maybe it'd take some fighting with them, but eventually the information would come out, and it would be correct. It's a different ballgame with hipsters. They don't know how the software works, even when they wrote it. When they claim to know how it works, they actually don't. So if you're trying to write documentation for their code, not only do you have to deal with shitty code (assuming you know how to), but you can't even rely on the developers themselves to know how it works, how to use it, or what it's even supposed to do.

    As somebody who has contributed documentation for several neckbeard-run projects and several hipster-run projects, I would be more than happy to deal with the neckbeards any day. It isn't a good experience, but it isn't a total clusterfuck like it is when dealing with hipsters.

  11. Re:Read the source code by james_pb · · Score: 4, Interesting

    This is silly. I've been trying to use Autodesk Fusion 360 - it's most definitely a proprietary bit of software from a large developer.

    The documentation is worse than awful; you'd be better off just reading the source.

    And iOS vs Android? iOS is pain layered on suffering. Reading the source would be _so_ much better than depending on Apple.

    Commercial != good doc.

  12. Hello Grumpynerd? by MRe_nl · · Score: 4, Insightful

    "Incomplete Documentation
    Open Source nerds don't have the discipline to write documentation because it's no fun. Writing new code is fun. Fixing bugs in old code is less fun. Writing documentation sucks. Which is why most open source software is buggy and features little to no documentation making it useless to everyone outside of the authors".

    http://www.grumpynerd.com/?p=1...

    --
    "Kill 'em all and let Root sort 'em out"
  13. Re:Software Documentation is bad everywhere by dskoll · · Score: 4, Informative

    Not everywhere. One free software project has the best documentation I've ever seen. We need to point people at shining examples of excellent documentation so they can realize how important it is.

  14. Re:Nothing by AmiMoJo · · Score: 4, Funny

    MOTHERFUCKER, IT DOESN'T WORK LIKE THAT. Fuck you in your goddamn asshole you fucking arrogant fucking pricks.

    Your documentation must have been epic.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  15. Re:Software Documentation is bad everywhere by johnwallace123 · · Score: 5, Insightful

    Have you ever USED IBM, Oracle or MS software?

    I've run into scenarios with both IBM and MS where I'm looking for a specific error code, and I get into this:
    Q: What is ERR:174027?
    A: That's EDONTKNOWWTF
    Q: What is EDONTKNOWWTF?
    A: That's ERR:174027
    *Bashes head into wall*

    Commercial software might have better documentation, but a lot of the help still comes from blogs of people having the same error, which IS NOT documentation!

  16. Terrible coding standards by Enry · · Score: 4, Informative

    I'm a rather odd duck. I did a lot of coding in college and my first job (writing software for hospitals) but have since moved to system administration/design and have a degree in technical documentation. I've written books on Linux and have documentation up on the LDP, some of which is still in use. So I've seen all the sides.

    Coders are too busy writing code and making changes to what they write to give time for accurate documentation to be written. The days of "read the code for documentation" are long gone when you have multiple layers of libraries and applications to go through to find what you're looking for. This kinda worked in the days when you could fit an entire Linux install on three floppies but now that you need a few GB there's no way a single human can keep track of it all. Documentation takes time to write and get right. In the age of using github as a distribution and code changes between today and tomorrow, the documentation is suddenly invalid before it's written. Even then, it requires a lot of stupid questions asked by the documentation staff to coders who think they have better things to do.

    As for TLDP there was a bunch of problems. Using DocBook was brilliant, but the toolsets were terrible to work with and difficult for people who never used SGML or XML. Linuxdoc was easier to use but really wasn't the way to go long term, especially since the tools were Linux-only and meant the tools were of limited use. Once Wikis took over online there wasn't enough enthusiasm in TLDP to convert and lead the charge.

  17. Re:Read the source code by FireFury03 · · Score: 4, Insightful

    That is completely unreasonable. If I have to read the source code just to be able to understand how to use the program, I will just wind up using proprietary software with proper documentation.

    On the other hand, I've noticed a steady decline in documentation for commercial software too. Manuals have gone from the thick reference books I remember from 20 years ago to little "quick start" books if you're lucky. More frequently no documentation at all.

    Self documentation is going downhill too - there seems to be a trend to removing UI hints such as the short cut keys from menus, so where you would discover stuff from clicking around in the UI and seeing it, now it frequently seems that you'll never figure this stuff out without googling for an answer.

    Error messages, too, have disappeared - back in the day you used to get a descriptive error that told you what broke. Ok, so the non-techies probably didn't understand them but at least they could ask a techie. Over the past few years, error messages have been replaced with generic "something broke" errors that give no one any hints as to what went wrong. Increasingly (especially on Android and iOS) apps don't display an error at all - if something breaks they often just plain don't work and its very difficult to figure out why.

  18. Re:It's open source by war4peace · · Score: 4, Insightful

    If someone comes along and gives you a free hamburger, you don't complain that they didn't bring fries and a drink.

    But if the hamburger tastes bad and you are not sure what's in it,. you might want to ask. And if you ask and are given an answer like "hey it's free, eat it or GTFO" it doesn't make the giver less of an asshole.

    --
    ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
  19. Re:Read the source code by Raseri · · Score: 5, Informative

    On the other hand, I've noticed a steady decline in documentation for commercial software too.

    Many of them seem to be going the route of "community-driven" documentation; i.e., dropping the cost of the manuals (and everything related, such as tech writers, printing, and so on), and shifting the burden of educating new users to more experienced ones. This is more or less how most FOSS projects have been documented for years, though out of necessity rather than a desire to cut yet another corner.

    --
    Writhe your naked ass to the mindless groove.
  20. Re:Nothing by Bob9113 · · Score: 4, Interesting

    MOTHERFUCKER, IT DOESN'T WORK LIKE THAT. Fuck you in your goddamn asshole you fucking arrogant fucking pricks...The fact of the matter is the majority of programmers are assholes that have no business operating in normal society. Lock them in the fucking closet and let them read the fucking source until they jizz all over their crusty beards while fantasizing about Stallman's brown pucker.

    Just a wild guess here, but hear me out: Is there any chance that your interpersonal skills could have contributed to the lack of communication?

  21. Hence, "Software Engineer" == MYTH by CanHasDIY · · Score: 4, Insightful

    ... and this is why the term "software engineer" is a bit of a misnomer.

    Could you imagine if, say, aerospace engineers didn't document their work? Automotive engineers? I can hear the shop talk now:

    "Hey, Jim, what's the recommended torque for head bolts on an '09 Madza 3?"

    "What's the manual say?"

    "Nothing, they didn't document that part."

    Ergo, coders who fail to document are anything but engineers, cocky attitudes aside.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  22. Re:Read the source code by sabri · · Score: 4, Insightful

    I think several here have different expectations of what constitutes "good documentation". Being a Linux sysadmin, I work in FOSS day in, day out, and documentation is always available and clear.

    Without knowing, you've hit the nail with the hammer.

    Here is why FOSS docs are so nice to you, but proprietary ones are not: audience analysis.

    The people who create FOSS documentation are often either the developers themselves, or very early adopters who spend a lot of time with the developers. They have a technical mindset, and will write documentation in that way. You have a very technical mindset, and like me, will probably prefer a well-commented configuration example over a nicely formatted .pdf document with all possible options.

    In large enterprises, things are different. That's where the professional technical writers come in (yes, that's a full-time job). These folks will come up with a target audience, secondary audience, initial outline for the documentation and (in their minds) well-written content and examples. Since this gets reviewed many times by people who all have an ego telling them that they must make at least some changes in order to show productivity to their bosses, the documentation ends up being a piece of crap. It may be correct, but it usually is a piece of crap. For example, let's take any routing vendor's documentation. You are looking to configure something as simple as an L3VPN. The easiest way to do this is by getting an example configuration and just change some IP addresses to match your own network, right? Well, the "professionals" think not. They will come up with this:

    Step 1: configure an IGP. For more information on how to configure an IGP, see chapter 12, section 3.
    Step 2: enable the appropriate interfaces for MPLS. For more information on how to enable interfaces for MPLS, see chapter 2, section 1.
    Step 3: create an LSP between the two PE nodes. For more information an how to configure LSPs, see chapter 2, section 10.
    Step 4: enable a signaling protocol such as BGP or LDP. For more information on how to configure BGP as an L3VPN signaling protocol, see chapter 10, section 9. For more information on how to configure (targeted) LDP as your L3VPN signaling protocol, see chapter 7, section 1.
    Step 5: configure the route-target: set route-target 12345:1. For more information on route-target configuration, see chapter 8, section 2.
    Step 6: configure the route-distinguisher: set route-distinguisher 12345:100. For more information on route-distinguisher configuration, see chapter 8, section 3.

    And that, my friend, is why commercial documentation sucks a monkey's ass.

    --
    I'm not a complete idiot... Some parts are missing.