Slashdot Mirror


WTFM: Write the Freaking Manual

theodp writes "Blogger Floopsy complains that he would love to RTFM, but can't do so if no one will WTFM. 'You spend hours, days, months, perhaps years refining your masterpiece,' Floopsy laments to creators of otherwise excellent programming language, framework, and projects. 'It is an expression of your life's work, heart and soul. Why, then, would you shortchange yourself by providing poor or no documentation for the rest of us?' One problem with new program languages, a wise CS instructor of mine noted in the early look-Ma-no-documentation days of C++, is that their creators are not typically professional writers and shy away from the effort it takes to produce even less-than-satisfactory manuals. But without these early efforts, he explained, the language or technology may never gain enough traction for the Big Dogs like O'Reilly to come in and write the professional-caliber books that are necessary for truly widespread adoption. So, how important is quality documentation to you as a creator or potential user of new technologies? And how useful do you find the documentation that tech giants like Google (Go), Twitter (Bootstrap), Facebook (iOS 6 Facebook Integration), Microsoft (Windows Store apps), and Apple (Create Apps for IOS 6) produce to promote their nascent technologies? Is it useful on its own, or do you have to turn to other 'store-bought' documentation to really understand how to get things done?"

299 comments

  1. and what does the kama sutra have to do with this? by RobertLTux · · Score: 3, Interesting

    Whenever i get a response of RTFM most of the time its either
    1 WTFM first (or update it with the new changes)

    2 The Kama Sutra covers the subject better

    Challenge for the SlashMind locate a current (2.6*) copy of the Blender manual in PDF format.

    --
    Any person using FTFY or editing my postings agrees to a US$50.00 charge
  2. Examples by tomhath · · Score: 4, Insightful

    First provide some *working* examples. Then some real documentation (not Java Docs).

    1. Re:Examples by Gorath99 · · Score: 4, Insightful

      And then keep both the examples and docs up to date, for god's sake! The only thing worse than no documentation is useless documentation.

    2. Re:Examples by Anonymous Coward · · Score: 1

      Depending on what you want to do, JavaDoc can be the best way to give documentation. For example, the Java standard library Pattern class is well documented and gives a good overview of the whole regular expression implementation. More complicated things require higher level documentation, though. Javadoc is almost useless or even harmful when trying to create a user interface, and other documentation on the subject is either not too good or not easy to find.

      And giving JavaDoc to those who don't use the API but instead use the end program is obviously a bad way to do documentation.

    3. Re:Examples by cheesybagel · · Score: 4, Insightful

      Actually if it is an API we are talking about Javadocs work great. Examples are also nice. Real documentation? If the API cannot be understood just by reading the Javadocs then You Are Doing It Wrong! The API sucks.

    4. Re:Examples by Anonymous Coward · · Score: 0

      First provide some unit tests and regression tests that run under continuous integration. Then some real documentation (not Java Docs).

      FTFY.

    5. Re:Examples by Anonymous Coward · · Score: 0

      Stop the blind and ignorant Java Docs bashing. The API docs are the reference. (And a great one.) One subdirectory of a parent directory (which you passed to get to the API docs) that contains extensive complete well-written guides, tutorials, blueprints, and a whole load of more information.

      All of which you conveniently ignored, to make your bullshit "argument"

    6. Re:Examples by tomhath · · Score: 1

      No, I didn't ignore all of that; it's exactly what I asked for. Java Docs alone are just what you say, a reference to the interface. They do not take the place of guides and tutorials for someone trying to use a language or framework.

    7. Re:Examples by fast+turtle · · Score: 2

      This JavaDocs - What Is? Never heard of it and don't run Java on my system but I have used QT Torrent, QT-Web, Firefox, Palemoon along with Notepad++ yet the quality of the docs tend to suck pretty badly. A good example is the Firefox Docs. They're online only and insist on trying to connect using Firefox only, which is a problem when Firefox is borked. QT-Web is a nice app but docs? What Docs? There's a few entries and FAQ pages but docs simply don't exist. QT Torrent suffers the same problem. It's more common then not to encounter no docs with any app and that's just plain pitiful. I'll take a FAQ and Wiki over nothing at all but I'd prefer a decent set of general purpose docs. Detail can be easily provided by a FAQ/Wiki online with any examples and the latest information/changes there.

      --
      Mod me up/Mod me down: I wont frown as I've no crown
    8. Re:Examples by aaron552 · · Score: 2

      In general, yes. But if you spend any time using larger APIs, examples of "how to do basic task X" become much more important. Examples of usage are a key part of any (large) API documentation.

      For example, if the method foobar() in class Foo does what I want, how am I supposed to find it? Especially if the library has hundreds of classes spread across multiple namespaces.

      --
      I had a sig once. It was lost in the great storm of '09.
    9. Re:Examples by sodul · · Score: 1

      This is something that drove me to Python and then Django. Python might not be the best scripting language nowadays, though I still consider it one of the most productive languages from small to large size projects (as long as pure speed is not a hard requirement). Django is also probably not the most full featured web framework around but the documentation is rather good. And yes with examples. Usually the Python community also takes unittesting seriously and that also is a form of documentation and examples of how the original coder expected the classes/methods to be used.

    10. Re:Examples by spauldo · · Score: 3, Informative

      JavaDocs are documentation that you include with java classes. They fill the same niche as sections 2 and 3 of the UNIX man pages.

      If you've ever used perl POD documentation, they work kind of like that on a conceptual level.

      This is all documentation aimed at programmers, of course, not application or system documentation. If you want to provide documentation for a java application, you generally don't do it with JavaDoc.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    11. Re:Examples by Anonymous Coward · · Score: 0

      Where I work, all the example snippets in the docs are actually pulled in from real source code, which is unit tested, ensuring that the examples always compile and do what they meant to do

    12. Re:Examples by TheRaven64 · · Score: 4, Insightful

      Javadoc / doxygen style documentation is great for understanding the details. It is terrible for giving an overview. Look at the Cocoa documentation, for example. If you get all of the Headerdoc (Apple's doxygen equivalent) documentation, it comes to about 8,000 pages. You really, really, don't want to have to read all of that to know how to use the APIs - most people can't keep that much detail in their heads anyway. You want a few high-level overview documents that you can read in their entirety and then refer to the API documentation for reference.

      For an open source example, look at LLVM. They have doxygen docs and they have some high-level subsystem docs (e.g. 'How to write an LLVM backend'). The bits that are the easiest to work with are the bits that have both.

      --
      I am TheRaven on Soylent News
    13. Re:Examples by Anonymous Coward · · Score: 0

      (not Java Docs).

      The java documentation is one of the finest examples of good documentation I've ever used. What's the problem? Or are you referring to most third-party libraries or the javadoc notation (neither of which are particularly good)?

    14. Re:Examples by jones_supa · · Score: 1

      First provide some *working* examples. Then some real documentation (not Java Docs).

      This is a thing that constantly bugs me with UNIX man pages. A couple of examples would get through the task much faster rather than by learning to be a ninja with the complete syntax. I was surprised to find that Windows PowerShell actually seems to have plenty of good examples for a lot of commands (for starters, you can try the command "get-help dir -examples").

    15. Re:Examples by Compaqt · · Score: 1

      Well, one thing you can do is give examples of usage in the class Javadoc, which is supposed to be a kind of overview of usage for the entire class. The method Javadoc will, of course, be more specific.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    16. Re:Examples by TheRaven64 · · Score: 2

      A class is not a framework. A framework typically includes dozens or hundreds of classes. To understand how to use it, you need to know which classes are used together, what sort of workflow the framework was designed for, and how the components fit together. An overview of a class is obviously important, but it is a long way away from being a high-level doc.

      --
      I am TheRaven on Soylent News
    17. Re:Examples by PurplePhase · · Score: 1

      Javadocs are worthwhile as long as you include details that no one ever includes in Javadocs: every actual @precondition, @postcondition, @side_effect, all the runtime exception subclasses thrown (and when necessary, what they mean).... You know: everything that isn't generated automatically and that developers never note unless there is a bug report about it.

      Your code still needs at least one main page of typical usage (Factory? Singleton? uses Spring/XML files? AOP? WHAT??), all the dependencies (JARs, APIs...) and hopefully all the interaction models and modes....

      Short answer: you are incorrect, except for the extremely basic level of being a code monkey.

      8-PP

    18. Re:Examples by cfulton · · Score: 1

      Well first read the Javadocs before you start. I agree that the best way to provide good documentation for developers is to have some good examples of using the API. You need a "Manual", but more than that you need good examples and good Javadocs. I have found that if the Javadocs are good I can spend an hour or so reading through the classes that make up the public API. Run some of the examples that do close to what I need to be done. Then I am ready to code and usually do so without issue. The only time this doesn't work is when some "obvious" thing (to the original developers) has been left out of all the documentation. You know, the PATH variable you have to setup or the property file that has to be in classpath. That lack of stating the "obvious" is the worst.

      --
      No sigs in BETA. Beta SUCKS.
    19. Re:Examples by cfulton · · Score: 2

      Not saying this is some kind of a cure all, but I've seen package level javadocs that run to pages and provide a very good overview of the system and how to use it.

      --
      No sigs in BETA. Beta SUCKS.
    20. Re:Examples by turgid · · Score: 1

      What's the view of the night sky like on planet Xarg? :-)

    21. Re:Examples by jwhitener · · Score: 1

      I'd mod you to infinity if I could.

      If you can't find up to date docs and examples on the main site, you have to turn to the horrors of google for your answer. And then you have to wade through years of outdated blog posts showing non-working example after example before you find one that partially works to do what you are trying to do.

      At this point I'm assuming that various devs are getting kickbacks from contractors who specialize in installing and configuring their software to keep the docs and examples messed up. Either that, or a large portion of devs secretly delight in thinking about the thousands of people wasting their time trying to make outdated examples work.

  3. Smart people don't read the manual anyway by Anonymous Coward · · Score: 0

    Besides, with GUI or AJAX interfaces applications no longer need manuals. I remember having a shelf of computer books next to my computer desk. both the shelf and desk are gone.

    1. Re:Smart people don't read the manual anyway by Alain+Williams · · Score: 1

      Not everything is an application that is ''obvious'' to use. If you are writing that AJAX application you need to know how to call the JQuery (or whatever) functions that do the work; for that you need a manual. I agree with Floopsy, a lot of FLOSS is let down by poor documentation, the programmer gets the job done and often has not got the interest to write documentation. The meme ''read the code'' is not always a good one, especially if the code has few comments or just says ''how'' rather than ''why''. Also you might understand individual components but the intention of how it is to be used is not always easy to deduce. The best guy to write this sort of thing is the designer who, in many FLOSS projects, is the guy who writes the code. With stuff that I do, I often find that writing the documentation can take about the same sort of time that it takes to write the code.

      Even if you are talking about an application with a GUI, you may need a manual for obscure or complex things, eg: exporting data and importing it to somewhere else.

    2. Re:Smart people don't read the manual anyway by rs79 · · Score: 2

      " The meme ''read the code'' is not always a good one, especially if the code has few comments or just says ''how'' rather than ''why''."

      "Comments lie. Code never lies" - Keith Doyle

      --
      Need Mercedes parts ?
    3. Re:Smart people don't read the manual anyway by tilante · · Score: 1

      Code doesn't lie - but it may not be answering the question you needed answered. Or it may be wrong. Particularly when you're developing, comments that tell you what code is supposed to be doing can be very valuable.

  4. In addition... by Anonymous Coward · · Score: 5, Informative

    to WTFM, please oh please oh please stop writing flowery, circumlocutious prose.

    Succinct... Precise... Concise...

    Bullet points, short paragraphs, and simple descriptions are fine in most circumstances; this is not an expository writing project. I don't want to have to wade through your awful prose to decipher what the hell you're trying to say.

    If I want to read a fucking story, I'll read a novel.

    1. Re:In addition... by Anonymous Coward · · Score: 1

      to WTFM, please oh please oh please stop writing flowery, circumlocutious prose

      I'm US based, we had an intern who was a decent engineering programmer but his documentation was horribly flowery, 2x or 3x longer than needed. When I asked him where he learned to write this way, he said that was how writing was taught in India--all the grade school students were expected to expand as much as possible.

    2. Re:In addition... by mrmeval · · Score: 1

      I'm reading Jules Verne and while a fascinating story it could be cut by 20,000 words of travelogue and could still use some pruning. That loquacious verbiage of the evacuation of core is just boring.

      --
      I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
    3. Re:In addition... by TheRaven64 · · Score: 1

      That's not limited to India. In the UK and, from what I've heard, the USA, essays are expected to be of a certain length. If you succinctly make all of the relevant points in half as much space, you get fewer marks than if you pad it.

      --
      I am TheRaven on Soylent News
    4. Re:In addition... by SuricouRaven · · Score: 1

      I was taught in English class to write my answers as long as I could, because the more text I write the more potential places there are to earn marks.

    5. Re:In addition... by Anonymous Coward · · Score: 0

      Shorter:
      TL; But did read.

    6. Re:In addition... by orgelspieler · · Score: 4, Funny

      Depends on the professor. I was taught that prose should be like a miniskirt: long enough to cover the subject, but short enough to be interesting.

    7. Re:In addition... by Parker+Lewis · · Score: 1

      And please, do not use buzz words. Like "powerful", "rich" and other "impossible to measure/no meaning" words.

    8. Re:In addition... by TheRaven64 · · Score: 0

      Professor? We're talking about school, not university.

      --
      I am TheRaven on Soylent News
  5. Documentation? by fahrbot-bot · · Score: 5, Funny

    Real programmers don't document. If it was hard to write, it should be hard to understand. :-)
    You youngsters always want things "explained" - geesh.

    Seriously, get your hands dirty and work for it.

    --
    It must have been something you assimilated. . . .
    1. Re:Documentation? by Anonymous Coward · · Score: 1

      It's you youngsters who aren't writing the documentation. The reason "RTFM" is a thing we old geezers say is because we actually write TFM in the first place.

    2. Re:Documentation? by Anonymous Coward · · Score: 1

      Goto Hades :Hades Goto Heck :Heck Goto top

    3. Re:Documentation? by Anonymous Coward · · Score: 1

      There have been a few free software and/or open source software projects that I would have joined as a programmer except there was no usable documentation about the software. A couple programming examples and an overview of the "architecture" is NOT documentation. I would have written the documentation if I could identify any structural coherence to the source code. Write the damn documentation first, then write the code, then revise the documentation as each portion of the code is finalized.

    4. Re:Documentation? by SailorSpork · · Score: 1

      Funny with a touch of truth, but it doesn't work so well in the world of multiple platforms and languages competing with each other for adoption. For instance, if am am the manger of a company writing a mobile app, and the iOS manual is clean and easy to read with no issue, and the Android manual is cryptic and would take gobs of trial & error to get working, iOS is language is the platform the app will be written for first and best, and we'll get around to the Android one later, if at all. I'm not saying the above example is true, just using it for sake of hypothetical example. Not everyone's manger has the patience to let you learn nuances of each language and platform. The manual almost needs as much effort and attention as the marketing materials, and probably more.

    5. Re:Documentation? by Anonymous Coward · · Score: 0

      While this kind of mentality DOES have it's merits, as there is no way to learn but actually DOING it, there's a limit as to how far it should be taken.

      i.e.: the way people are responded to when they ask for help from the linux community. When others become elitist towards the new folk, that's when it's gone too far.

    6. Re:Documentation? by cheesybagel · · Score: 1

      I'll trade the supposed mess of learning Android which is mostly plain standard Java with its own UI and mobile specific APIs to learning Objective-C and a whole enchilada of Apple designed APIs which are not used anywhere else thanks.

    7. Re:Documentation? by Anonymous Coward · · Score: 0

      Yeah-- what were these whipper-snappers thinking?

      A. V. Aho, B. W. Kernighan, and P. J. Weinberger, The AWK Programming Language. Addison-Wesley, 1988. ISBN 978-0-201-07981-4

      It is an excellent manual for the language; a very good read.

    8. Re:Documentation? by Anonymous Coward · · Score: 0

      It's you youngsters who aren't writing the documentation. The reason "RTFM" is a thing we old geezers say is because we actually write TFM in the first place.

      man pages do not count as documentation (for the most part) - yeah, they tell you everything that the program does, but rarely give examples, and are often horribly organized. You might as well put in the switch-case statements into the documentation.

    9. Re:Documentation? by Anonymous Coward · · Score: 0

      Sounds like troll bait to me. But putting your sarcasm aside, it's that attitude which causes two things to happen 1. everything is _far_ harder than it should be and 2. people make the _wrong_ choices because they haven't got time to study every last detail of something which is complex. And then other people build upon that wrongness. And so on. Then, we end up with the sprawling, bloated, broken, over-complex, undocumented crap which is almost all OSS today.

    10. Re:Documentation? by Sectoid_Dev · · Score: 1

      My first consideration in either using FOSS or buying closed software is to take a look at the documentation.
      I have enough dirt for my hands working on my own project, I don't have enough time to sift through manure.

    11. Re:Documentation? by tilante · · Score: 1

      Then those are badly-written man pages. The good ones give you plentiful examples of common use cases.

      And even when they don't give you examples, a halfway-decent man page at least tells you what option switches are available. And I can actually read the damn thing without having to learn someone's idea of a keyboard-based hypertext system. I can tell you I'd much rather have a halfway-decent man page than a wonderful info page.

    12. Re:Documentation? by draconx · · Score: 1

      And I can actually read the damn thing without having to learn someone's idea of a keyboard-based hypertext system. I can tell you I'd much rather have a halfway-decent man page than a wonderful info page.

      I agree that the GNU info program has a rather annoying interface (presumably it makes perfect sense to GNU Emacs users). But the Texinfo source from which info documents are generated will target multiple outputs, including PDF and HTML. For packages using the GNU build system these are built with "make pdf" and "make html" respectively. Moreover, GNU packages typically make the manual available for download in a number of formats on the package website.

      Just use the all-on-one-page HTML version in w3m and you have something that is essentially identical to a giant man page, except with internal cross-references and hyperlinks.

    13. Re:Documentation? by tilante · · Score: 1

      I agree that the GNU info program has a rather annoying interface (presumably it makes perfect sense to GNU Emacs users). But the Texinfo source from which info documents are generated will target multiple outputs, including PDF and HTML. For packages using the GNU build system these are built with "make pdf" and "make html" respectively. Moreover, GNU packages typically make the manual available for download in a number of formats on the package website.

      Just use the all-on-one-page HTML version in w3m and you have something that is essentially identical to a giant man page, except with internal cross-references and hyperlinks.

      Thanks for the hint -- I'll have to give that a try next time I need to use an info page!

  6. Documentation can make a standrd by xtal · · Score: 5, Insightful

    I consider it no accident that the defacto standard language C (aka, "portable assembler") has a lot to do with not only it being the language of choice for UNIX, but the fact that it was accompanied by one of the masterpieces of programming documentation - "The C Programming Language" - By K&R, who most know also designed and developed the language itself.

    Your ideas are no good if they can't be communicated to others. Often, inability to communicate good ideas is more an indicator the ideas aren't that good, than the documentation is lacking.

    --
    ..don't panic
    1. Re:Documentation can make a standrd by Mormz · · Score: 0

      Just the example I was going to use. When I was in elementary I borrowed the first edition of K&R from dad's colleague. It's still sitting on my shelf. It's still relevant, and it taught me C. It's the standard on C, been standardised by ANSI, and I'm really considering buying a new one.

      Relatively small book, about 300 pages, but it tells you everything you need to know to write C. Everything. When writing docs for my own software I always use this book as a guide. Small, short and to the point. Don't shy away from explaining the implementation, but don't skip on the part how to use it also.

      Also Douglas Crockford's, Javascript - The Good Parts, which is also a great book. And Demistified C++ from Kent is also very good (half of my country developer workforce literally learnt C++ based on that book). On the broad coverage scale, Java - The Complete Reference. Both as a murder weapon (1000+ pages), and in the detail of showing various features and quirks of the language and the platform.

      And yeah, there was this great book about Pascal I read as a teenager, but I hated programming in Pascal (since I did a lot of C back then), so I forgot the author of the book :( Book was great, the language was not.

      --
      Imagination is more important than knowledge. Having both makes one a genius.
    2. Re:Documentation can make a standrd by Anonymous Coward · · Score: 0

      Point of information (via Wikipedia):

      Kernighan has said that he had no part in the design of the C language ("it's entirely Dennis Ritchie's work").

    3. Re:Documentation can make a standrd by znigelz · · Score: 3, Interesting
      I second this post. K&R is the evolution of the C specification, and some versions of C compilers were written entirely from the book itself. C++ was developed in 1979, but not released to the public until 1983 (the year I was born, coincidence? I think not). Bjarne Stroustrup worked for Bell labs. Bell kept the official documentation, "The C++ Programming Language", under wraps until 1985. Wow, two whole years (though I'm sure too long for some of your old wizards). It is without question the best meta/template programming manual ever written.

      inability to communicate good ideas is more an indicator the ideas aren't that good

      If you find his book too complicated, then check out Stroustrup's other book, "Programming Principles and Practice using C++", which is more like a high school text book. Or check out his amazing and simplistic site for the aggregation of information crucial to c++, http://www.stroustrup.com/C++.html

      He may not be the greatest writer, or the most congenial, but his ideas were great, and no one can argue against it. No language is as dominant and most crucial to the world's infrastructure, and his books (and his online material) are a great companion in your time of need.

    4. Re:Documentation can make a standrd by Anonymous Coward · · Score: 5, Funny

      When I was in elementary I borrowed the first edition of K&R from dad's colleague. It's still sitting on my shelf.

      It's your dad's colleague here, and I'm still waiting for you to return my damn book!. Kids these days, no respect.

    5. Re:Documentation can make a standrd by cheesybagel · · Score: 1

      Nah he just designed AWK and helped design UTF-8.

    6. Re:Documentation can make a standrd by cheesybagel · · Score: 1

      Oops UTF-8 was Ken Thompson and Rob Pike. Oh well AWK it is.

    7. Re:Documentation can make a standrd by blade8086 · · Score: 2

      Not to mention that UNIX's 1st 'official' funding at bell labs was to develop TYPESETTING applications for DOCUMENTS

      (see nroff - which is used to render man pages.. aka TFM of RTFM on a unix system)

    8. Re:Documentation can make a standrd by cheesybagel · · Score: 1, Troll

      If you want something simple you don't program in C++. It's a convoluted mess of a language so of course no amount of documentation is going to solve that problem. Unfortunately there are little choices (except C of course) if you want to write reasonably portable high performance code.

    9. Re:Documentation can make a standrd by robthebloke · · Score: 2

      but his ideas were great, and no one can argue against it.

      There are plenty of people who can argue against the design choices in C++, and plenty of people who think his ideas don't translate very well into large scale maintainable systems. He's made a huge computer to computer science, but that does not mean he hasn't made a few mistakes along the way.

      No language is as dominant and most crucial to the world's infrastructure

      Only if you are one of those people who refuse to acknoweldge the existence of C.

    10. Re:Documentation can make a standrd by robthebloke · · Score: 1

      He's made a huge contribution to computer science..... Sigh.

    11. Re:Documentation can make a standrd by Ksevio · · Score: 4, Insightful

      K&R was a great documentation in the days where it worked best to have a book next to the keyboard - Just the function reference saved me plenty of time. I'd say a more modern equivalent is with PHP. Sure the language isn't that great - it has all sorts of weird quirks and inconsistencies- but the documentation is exceptional. Almost all of the pages have a good description, an example, links to related functions, and a comment area where other people can extend it. There's no way PHP would have become as popular with documentation like Java

    12. Re:Documentation can make a standrd by Longjmp · · Score: 1

      I started programming in C mid 80s. K&R C that is. No type-checking etc, "lint" was your friend.
      Late 80's I read about C++ and there were two thoughts that came to my mind simultaneously:

      a) C++ is a wonderful language to write efficient, fast and comprehensive code.
      b) C++ is a wonderful language to write extremely bloated, slow and unmaintainable code.

      Take your pick.

      --
      There are fewer illiterates than people who can't read.
    13. Re:Documentation can make a standrd by Mormz · · Score: 1

      LIAR!!! My dad's colleagues do not post as ACs :P And these days were were 15 years ago :)))

      --
      Imagination is more important than knowledge. Having both makes one a genius.
    14. Re:Documentation can make a standrd by aaron552 · · Score: 1

      The two aren't mutually exclusive. For example, I've seen fast, yet bloated and unmaintainable C++.

      --
      I had a sig once. It was lost in the great storm of '09.
    15. Re:Documentation can make a standrd by mbkennel · · Score: 1

      "Unfortunately there are little choices (except C of course) if you want to write reasonably portable high performance code."

      Sure there is. It's called Fortran. (Of course I mean at least Fortran 2003, and not some irrelevant ancient tome).

    16. Re:Documentation can make a standrd by Anonymous Coward · · Score: 0

      The two aren't mutually exclusive. For example, I've seen fast, yet bloated and unmaintainable C++.

      That could have been one of mine, I don't do calculations, I prefer look-up tables.

    17. Re:Documentation can make a standrd by dkf · · Score: 1

      the documentation [of PHP] is exceptional

      I see you're setting the bar for "exceptional" fairly low; PHP's documentation is merely mid-tier.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    18. Re:Documentation can make a standrd by octoberman · · Score: 1

      I'm curious - could you give an example of a programming language with 'top-tier' documentation in your opinion? If you're going to call someone out as being incorrect, please back it up.

    19. Re:Documentation can make a standrd by kbrannen · · Score: 1

      Gotta agree, I don't find PHP docs to be all that good. Much of the stuff I need in the docs are only found in the "comments section".

      Top-tier docs? Perl jumps to mind. You can't release a module on CPAN without it having docs. Java's pretty decent with JavaDocs for the library and bookshelves of "paper" docs to buy; C is the same way.

  7. The fucking manual by Anonymous Coward · · Score: 0

    I'm pretty sure it's never been "freaking" unless you're one of those awkward persons who are in the mid-ground between wearing a tie and wearing sandals to work.

  8. Re:and what does the kama sutra have to do with th by Anonymous Coward · · Score: 0

    Meh, at least the 2.6 manual is up on the wiki. Though... it's not done yet.

  9. If it ain't in writing by k6mfw · · Score: 4, Insightful

    it doesn't exist. OK so a bad tagline but I've encountered so many devices, systems, etc. with no documentation. Now I can understand if someone throws together a contraption late at night, then have a few hours sleep, next morning they move on to their next gadget. However, I have little tolerance of people bragging of how great their thing is, everyone else's systems are inferior, etc, etc, etc but they have no paperwork. Or else they have tons and tons (but in PDF format to not cut down a huge forest) which basically is same as none existance because you will be dead of old age by the time you get through all that material. If they don't have much documentation then be honest about it. There are a lot of smart people that design and build neat stuff, their strengths are not in well written documents. That's when you bring in applications engineers and tech writers.

    --
    mfwright@batnet.com
    1. Re:If it ain't in writing by fm6 · · Score: 1

      It's a perfectly good tagline, one I've used myself many times. Though to be consistent,you should say "it don't exist".

    2. Re:If it ain't in writing by cusco · · Score: 1

      I work in the physical security industry, and the short-sightedness of executives never fails to amaze me. We have received lots of interesting equipment over the years, but because the manufacturer wasn't willing to cough up the resources to have an engineer spend a couple of days documenting the process of installation and configuration we're stuck with a demo product that we can't sell to a customer.

      Twice now a customer has asked us to set up a new product but the lack of documentation has forced us to spend so much time on the install that the manufacturer has had to reimburse us. I don't know what they pay their engineers, but I'm quite sure that it's less than my employer charged them for my time.

      --
      "Think about how stupid the average person is. Now, realise that half of them are dumber than that." - George Carlin
  10. good docs make a big difference by Anonymous Coward · · Score: 0

    In making a decision on whether or not to use a technology or one from a number of competing technologies, one criteria I use is does it have documentation and how good is it? In a professional environment where speed is important because of deadlines and budgets, not having good docs (which forces me to poke and prod myself to figure out what's going on) is a big negative. I find PHP to have top of the line documentation, Microsoft and MySQL above average but occasionally confusing or less than relevant documentation. Google is also uneven - sometimes it's very helpful, sometimes it's so convoluted that I spend hours just trying to figure what the they're talking about. Just my 2 cents.

  11. Oh, crap, it's a wiki by Animats · · Score: 5, Insightful

    I once tried Inkscape and realized in disgust that the "manual" was a wiki.

    When I was working in aerospace, we would often write the manual first, then implement. This forces developers to deal with ugly problems cleanly, rather than having some elaborate after-the-fact explanation of how to work around some limitation.

    1. Re:Oh, crap, it's a wiki by menno_h · · Score: 5, Interesting

      When I was working in aerospace, we would often write the manual first, then implement. This forces developers to deal with ugly problems cleanly, rather than having some elaborate after-the-fact explanation of how to work around some limitation.

      Also, this gives you a design plan that you can follow while coding.

      --
      AccountKiller
    2. Re:Oh, crap, it's a wiki by Hentes · · Score: 2

      The problem is not when it's a wiki, but when there are only like 3 articles in it.

    3. Re:Oh, crap, it's a wiki by fm6 · · Score: 1

      As a tech writer, I've been fighting a losing battle against the wiki-docs approach for years. Nobody seems to grasp that Wikis undo a couple decades of progress in writing well-structured, process-driven docs. Confluence even pushes its own wiki as docs tool. Needless to say, documentation is the weak point in Confluence's otherwise excellent products.

      The design-by-document approach just isn't going to fly in this age of minimalist organization and agile development.

    4. Re:Oh, crap, it's a wiki by cheesybagel · · Score: 3, Insightful

      Wiki documentation can be great if the people editing the wiki aren't a bunch of morons. Make of that what you will.

    5. Re:Oh, crap, it's a wiki by cheesybagel · · Score: 1

      That is a great idea assuming you already know how your solution is supposed to work and behave within the boundaries of available resources. In which case you probably already did the application before. If you already did the application before why are you coding it again? Copying your own code isn't exactly hard.

    6. Re:Oh, crap, it's a wiki by Tsu+Dho+Nimh · · Score: 3, Informative

      When I was working in aerospace, we would often write the manual first, then implement. This forces developers to deal with ugly problems cleanly, rather than having some elaborate after-the-fact explanation of how to work around some limitation.

      I used to get paid to WTFMs. If there was a good functional specification for the hardware or software, I could have the first draft done about the same time the early testing started, and much of it was lifted from the specs. You don't have to see it working to describe what it is supposed to do.

      If I had to WTFM for something with a bad spec or no spec, something that was being developed ad hoc ... it took a lot longer.

    7. Re:Oh, crap, it's a wiki by mdfst13 · · Score: 2

      The design-by-document approach just isn't going to fly in this age of minimalist organization and agile development.

      There is no reason why you can't write the documents first in agile development. You just can't finish the documentation before starting coding. You can write documentation of the next set of code to be written before writing it. Agile mixes well with extreme, test first programming. Do the documentation the same way. Write a bit of documentation; write the tests that match it; write the code to make the tests work. Repeat until finished. At that time, you will have complete documentation, a test suite, and working code.

      The big difference between agile and waterfall is that agile is more incremental based. Good agile development follows the same steps as good waterfall. It just processes them in smaller chunks.

      The good thing about agile development is that it is adaptive. The bad thing about agile is that you don't know what the final product will be until you are finished. Whether it works for your circumstances depends on whether it is more important to know the specifications of the final product early or to adapt to changing circumstances.

    8. Re:Oh, crap, it's a wiki by Anonymous Coward · · Score: 0

      I am a hardware designer. I used to work for the Defense, Telecom industry and commercial sector.

      We always write a requirement spec and have everybody (essential down stream such as the architects, software people, manufacturing, manufacturing testing people, mechanical, thermal, supply management etc) all agree on it, then implement. After implementation, there is a verification which makes sure that the implementation is what it is supposed to be.

    9. Re:Oh, crap, it's a wiki by Anonymous Coward · · Score: 0

      Wikis are the spaghetti code of technical writing. A twisty maze of links, all of which look alike. (Oh, you wanted /new-features, not /new_features, the /new_features page hasn't been updated in 3 years. Meanwhile, what you actually want was moved from /new-features into /features/new by the information architect last week.) Framer 4 life, yo.

    10. Re:Oh, crap, it's a wiki by shiftless · · Score: 0

      I love it when you have skimmed over and read 20 or 30 pages from a wiki, and yet still can't figure out the overall idea of what the fuck this web site is even about, because the authors can't be bothered to include one simple summary paragraph briefly describing the product and its uses. Wikis can be useful, but more often they are installed by morons who have no business being anywhere near a word processor.

    11. Re:Oh, crap, it's a wiki by dylan_- · · Score: 2

      I once tried Inkscape and realized in disgust that the "manual" was a wiki.

      No, it's not. What gave you that idea?

      What you really need to try, though, are the Tutorials. They're under the Help menu and actually consist of SVG documents opened in a normal Inkscape window. It's simple yet brilliant -- when talking about a feature it simply suggests you try it there and then on that document. You should give it a try. Inkscape is an example of documentation done *right*!

      --
      Igor Presnyakov stole my hat
    12. Re:Oh, crap, it's a wiki by AntEater · · Score: 1

      The design-by-document approach just isn't going to fly in this age of minimalist organization and agile development.

      That's really too bad. At this point in my life/career, I'd rather be doing documentation than slapping some junk together that will need to be fixed two times over once it is in the users' hands just because of someone's arbitrary deadline.

      Regarding the parent coment, I've seen way too many open source projects that use a wiki that is both very poorly structured and inadequately populated as a substitute for documentation/manual.

      --
      Alex, I'll take keybindings not used by Emacs for $400....
    13. Re:Oh, crap, it's a wiki by fm6 · · Score: 1

      I have an interesting relationship with Agile. Such projects tend to be reluctant to hire me as a tech writer. They look at my resume, full of experience at big, bureaucratic organizations like Sun, and also at my gray hairs, and assume I'll never adapt to their more informal methods.

      But in fact I find Agile pretty refreshing. I've sat through too many boring, endless meetings and seen too many projects fall victim to politics and Paralysis by Analysis not to see the merits of Agile. It's adaptive, it responds to changing perceptions of what's needed. In short, it's for the real world, not some imaginary universe designed by marketeers and project managers.

      Alas, when you throw out all the old-fashioned highly-structured software methodologies, you end up throwing out all the highly structured documentation methodologies (Docbook, DITA, CMS) that evolved to work with them. The documentation tools I've seen in Agile projects (Wikis, Markdown and [shudder] Google Docs) are too primitive to replace them.

      All in all, scary and fun. No danger of my job getting boring any time soon.

    14. Re:Oh, crap, it's a wiki by FoolishOwl · · Score: 1

      Oh, so horribly true. Especially when those three articles are incomplete, inaccurate, or years out of date.

    15. Re:Oh, crap, it's a wiki by Anonymous Coward · · Score: 0

      Also, this requires that the manual is always out of date.

    16. Re:Oh, crap, it's a wiki by lahvak · · Score: 1

      When I was working in aerospace, we would often write the manual first, then implement.

      I remember back in 80's having to deal with a manual that was obviously written this way. It was the C api for the INFORMIX database system. The first third of the manual was basically the specification, each function was listed with its prototype, description etc. When I started reading it, it seems like an excellent, very powerful system. The problem was that the remaining two thirds of the manual were a list of errors. Few examples: Error 234: such and such function only works with integer arguments. Error 135: such and such function only works with strings that are no longer than 128 characters. There were hundreds of them, in no particular order. It seems that they first wrote the specification, then someone wrote a really shitty incomplete implementation, and then, during testing, every time they ran into a bug or a limitation, instead of fixing the bug or at least changing the specification to reflect the limitation, they made the code to generate an error message with a specific number, and they added a description of the error to the back of the manual. Needles to say, the whole thing was a freaking nightmare to use.

      --
      AccountKiller
    17. Re:Oh, crap, it's a wiki by TheRaven64 · · Score: 2

      Wikis are great as a communications tool between developers and documentation writers on an open source project. A lot of developers have English as a second language, so really don't want to be writing English documentation. Of the English speakers, many are not very good at writing informative documentation. Get them to stick their notes on a wiki, however, and you have an up-to-date reference for the docs team to work from.

      --
      I am TheRaven on Soylent News
    18. Re:Oh, crap, it's a wiki by fm6 · · Score: 1

      Absolutely agree. I've used Wikis that way myself. I just think they suck as a writing tool.

    19. Re:Oh, crap, it's a wiki by Anonymous Coward · · Score: 0

      And even more so when there used to be perfectly good documentation that was replaced with a wiki because wikis were cool.

    20. Re:Oh, crap, it's a wiki by Anonymous Coward · · Score: 0

      Oh yes, UNREAL ENGINE 3, I am looking DIRECTLY at you, you MULTI-MILLION DOLLAR piece of WORTHLESS SHIT.

    21. Re:Oh, crap, it's a wiki by bazorg · · Score: 1

      I'm OK with Wikis as manuals. I trust that reputable organisations will have some sort of instructions that are current when I buy the product but I do appreciate having updates to it I can refer to as and when I need them.

      Silly example from the consumer electronics world: Last week I bought a Behringer iAxe USB guitar which according to the paper manuals had drivers for Windows XP and OS X. The consumer reviews from a few years ago were good, the recent were bad because people would not get the thing to work with Windows Vista and 7. I bought it as "clearance" with about 60% off the price of a few years ago.

      After a few hours of trial and error, I got it right and have the guitar working with Windows 7 64 bits. I have added my step-by-step explanation to the reviews in the retailer's website but feel that it will be difficult that other people out there will find it. The site shows there's still 20 in stock, despite the sizeable discount and that the guitar will work plugged in to a normal amp. If my instructions were copied over to some official wiki, perhaps the last 20 would move for a normal non-clearance price and the previous buyers would feel less annoyed with Behringer.

    22. Re:Oh, crap, it's a wiki by penguinstorm · · Score: 1

      A Wiki isn't an inherently bad or good form of documentation: like a light saber, its power can be used for good or evil.

      If it's properly maintained and _key documents are managed and controlled_ it works well.

      --
      Skot Nelson music is my saviour / i was maimed by rock and roll
    23. Re:Oh, crap, it's a wiki by Zero__Kelvin · · Score: 1

      I once tried Inkscape and realized in disgust that the "manual" was a wiki.

      Yes. I hate when errors in the documentation can be fixed easily, and you can deviate from an approach where the documentation and development process happen concurrently in realtime, if you so choose. In other words, they don't really enforce a particular process on you. You get to choose. I hate that. I really hate that wikis let you mix links to external references including source repositories, right in with the content. How will I keep my typing skills and window manipulation chops up??!!!

      "When I was working in aerospace, we would often write the manual first, then implement"

      Did it ever occur to you that you can still do that very thing, but introduce the ability to track revision changes as you do the design, as well as changes made after design release, and separate them from each other during analysis to see how well the design process maps to the implementation process, for example? You can even continue to do it imposing upon yourselves every single limitation that a word processor imposes if you so desire. Just make your whole wiki a single page, or have them correspond to book pages. Never mind. I just realized that won't work. You'd still get extra benefits for nothing. You'd still have immediately linked tables of context and the ability to traverse the content via hyperlinks :-(

      You don't understand that Wikis are just a way of capturing, editing, and presenting documentation, but with many added benefits including the ability to revision control every change, which is always owned by some user thereby enabling accountability. Not every wiki is set up as like wikipedia. For example, you cannot make changes without logging in on the Inkscape wiki.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    24. Re:Oh, crap, it's a wiki by GrantRobertson · · Score: 1

      Amen!

      If you can't easily explain how to do it to a regular user, then you shouldn't design your program that way.

      Far too many programs are "designed" based on what is easy or interesting to CODE rather than on what works for regular users.

  12. More than a few assumptions here by Kjella · · Score: 2

    The first assumption is that you're actually writing it for somebody else and not yourself. In many cases if you've scratched your own itch, then you're happy and any comments are notes to self, not documentation for others. The second assumption is that you could, that it's only a lack of willpower. To many people coding a piece of software makes the logic of it so apparently obvious that they don't understand why it needs documentation, at least not any that's useful to anyone with a black box understanding of the code. The third assumption is that they're not once bitten, twice shy from useless or even misleading documentation and just decided that the code is the ultimate truth of what the code does and don't want to make any external document that won't stay in sync.

    --
    Live today, because you never know what tomorrow brings
    1. Re:More than a few assumptions here by Anonymous Coward · · Score: 1

      1) If your software has been released to the public (i.e. because you released it to the public) the assumption is that you want others to use it. Elsewise, keep it on your hard drive and stop polluting sourceforge. Too many people it seems have the mentality that they can just share their own dog food and others will want to lick the bowl. The thought process is basically "well, I can't sell this, but if I just give it away, maybe it'll make me famous and lead to something big." It's just a really lazy form of greed and opportunism, and thank goodness it doesn't work.

      2) As you alluded to, you're not writing the docs for yourself. Nobody else cares how elegant your code is, if they're borrowing your stuff that means they just want to use your function and don't want to read your code. If your docs don't clearly explain what the function does, what arguments to pass, and what can be returned, then no matter how elegant your code might be, it's undocumented for the purposes of anyone who is looking for documentation.

      3) People who are not interested in documentation aren't the subject of the article.

      Yes, these are all assumptions, reasonable ones given the context of the article. If you're not interested in docs, good for you, move along, the article does not apply to you as a reader of docs, only as a producer of code that nobody else wants to use.

    2. Re:More than a few assumptions here by Kjella · · Score: 2

      1) If your software has been released to the public (i.e. because you released it to the public) the assumption is that you want others to use it. Elsewise, keep it on your hard drive and stop polluting sourceforge. Too many people it seems have the mentality that they can just share their own dog food and others will want to lick the bowl. The thought process is basically "well, I can't sell this, but if I just give it away, maybe it'll make me famous and lead to something big." It's just a really lazy form of greed and opportunism, and thank goodness it doesn't work.

      By writing the code you've done all the work and throwing it out there costs nothing, in case someone finds it useful. Nothing more was implied nor guaranteed, did a rotten piece of source code you got from Sourceforge steal your girlfriend or run over your dog or something?

      If you're not interested in docs, good for you, move along, the article does not apply to you as a reader of docs, only as a producer of code that nobody else wants to use.

      Fair enough, if you're sure it's the documentation and not an awkward interface to poor code - I'd probably keep working on those two. Well working interfaces calling good code gets used, while a turd is still a turd even if you document it.

      --
      Live today, because you never know what tomorrow brings
    3. Re:More than a few assumptions here by shiftless · · Score: 0

      By writing the code you've done all the work and throwing it out there costs nothing, in case someone finds it useful. Nothing more was implied nor guaranteed, did a rotten piece of source code you got from Sourceforge steal your girlfriend or run over your dog or something?

      If you can't be bothered to document your code, why the fuck would I waste my time poring through it trying to decide if it will be useful to me? If you want to contribute to society then fucking contribute. Why do people get so goddamn defensive when it's pointed out their asshattery and half-assedness isn't winning them any friends? Your source code is useless to 95% of people without documentation. Document the shit, or don't bother releasing it. If you're trying to ensure your name will be forgotten and your code will rot away in the dustbin of history, then you're doing a damn good job as-is; otherwise, step up your game.

  13. Documentation is just large form comments. by Anonymous Coward · · Score: 5, Insightful

    I've met quite a few coders who are disdainful of documentation, citing many of the reasons that coders give for being disdainful of comments. - It gets out of date quickly, there's a good chance it doesn't match the actual behavior, etc. "If I want to know what's going on, I have to read the code anyway, so what's the point?" There's also a very slight alpha-hacker subtext, with the philosophy of "if you can't read code, you're not worthy enough to be using this program in the first place". As well as the "works for me" viewpoint - the coder who wrote it doesn't need any documentation to understand it, so why is it necessary?

    It's sometimes difficult to convince a coder that there are people out there who are competent, intelligent, successful people but who have no interest in plowing through 1000+ lines of code in order to find out which flag they should use to get .png output. To someone who gets a frisson of pleasure at deciphering a wall of obfuscated Perl, it's a foreign concept that there are people out there that have other things they'd rather be doing.

     

    1. Re:Documentation is just large form comments. by vlm · · Score: 3, Insightful

      There's also a very slight alpha-hacker subtext, with the philosophy of "if you can't read code, you're not worthy enough to be using this program in the first place"

      Also the alpha hacker view of my code is like poetry, perfect, precise, crystal clear, and self documenting. Usually... not.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:Documentation is just large form comments. by cheesybagel · · Score: 1

      To me it only makes sense to start writing the documentation once the codebase has reached a certain degree of maturity. If you are constantly refactoring and recoding everything all the time, like in the beginning of any project, documentation is just a plain waste of time.

    3. Re:Documentation is just large form comments. by Anonymous Coward · · Score: 0

      IMHO, any coder who doesn't recognise the requirement for documentation is worthless as a software professional. No other coder worth their salt will want to work with these people as they waste huge amounts of time and energy. They may even be very intelligent and talented programmers, but if they can't grasp the basic concept that documentation is important (even if it's just a docstring) then they can't work in a team and they can't work on projects that require any sort of maintenace or ongoing development. A good coder will ALWAYS make sure that someone else can pick up the project and get to work straight off the bat. If a fellow coder needs to read source code to figure out how function A is supposed to work then there is a big failure.

  14. The manual should come from the specifications... by Anonymous Coward · · Score: 0

    If it is a language, then the minimal documentation is a reference manual - which comes out of the specifications. Syntax diagrams, with minimal examples of correct expressions. This document is not that hard to write, as long as the "developer" writes down what he is trying to do to meet the project specifications.

    Without specifications, you don't know if there is an error or not... or even if the developer knows what he is doing.

    The reference manual provides guidance on USING the language, though it may not say HOW to solve problems.

    That is up to a different document, the reference guide - which includes small examples to illustrate various topics. THIS manual is much harder to write, as it usually requires some experience with the language to have something to make examples from.

  15. WTFM? by russotto · · Score: 2

    I wrote the fine code, YOU write the fine manual. Do I look like a tech writer? No, I do not. (They generally dress better but are more disheveled, which may have to do with the contents of their hip flask)

    1. Re:WTFM? by Anonymous Coward · · Score: 1

      If you rely on others to document your code, then your code probably stinks like fresh skunk roadkill. You learn a lot about how terrible your code is by trying to document it.

    2. Re:WTFM? by fm6 · · Score: 2

      Fine, I'll write your manual for you. Shall we discuss money?

      What, no money for docs? Never mind!

    3. Re:WTFM? by rs79 · · Score: 2

      Tell you what, write the manual and get a 90% refund on the price of the free software you're using.

      --
      Need Mercedes parts ?
    4. Re:WTFM? by fm6 · · Score: 1

      I was making a joke about the fact that commercial softwre projects rarely consider documentation a high priority. If you have an interesing Open Source project that needs a tech writer and dioesn't have the resources to pay one, I'd certainly consider donating a reasonable amount of my time.

    5. Re:WTFM? by rnturn · · Score: 1

      "You learn a lot about how terrible your code is by trying to document it."

      I recall reading an article years (decades, actually) ago where students that were working on projects for a class were encouraged to write the documentation first. The groups that chose to go that route wound up with better working code. I've tried that on several occasions for smaller utilities that I'm going to be handing off to other teams to use. It really does seem to work especially if the users are able to give you feedback based on the early documentation. You may find that you're missing a feature/switch that they'd really like to see but that you overlooked. (It's often easier to build in those features without major rewrites. At least that's been my experience.)

      Anyone using the excuse that they're coders and not technical writers should be worried about their job (IMNSHO). I'd bet anything that someone who is using that excuse already has a manager dissatisfied with their performance. If someone's writing the code just for their personal use then, fine, don't document it. (Just be aware that even though you know the code inside and out now doesn't mean you'll remember how it works in a year or so. I have boxes of floppies containing code that I would have to spend hours reverse engineering because I skipped the documentation -- or didn't comment thoroughly -- thinking that the code was self-explanatory. It wasn't after a time.) If someone does release their project and then complains about those pesky users who aren't willing to dive into the code to see how the wonderful tool works, don't surprised if your the base dwindles and dwindles quickly. Personally, I'd write the documentation just to avoid, or at least reduce, the nuisance emails.

      --
      CUR ALLOC 20195.....5804M
  16. Get a tech writer buddy by sandytaru · · Score: 5, Insightful

    Former English and journalism majors, who are not always the best programmers but are very very good at explaining how a program works (or ought to work), should be inside every IT company and department on the planet. When I'm not monitoring servers (e.g. watching paint dry), which is my formal job description, I'm writing down everything from internal business processes to how-to installation guides on software for specific networks. My happy place is about fifty pages deep in a Word file.

    --
    Occasionally living proof of the Ballmer peak.
    1. Re:Get a tech writer buddy by Anonymous Coward · · Score: 0

      My happy place is about fifty pages deep in a Word file.

      You'd be in nirvana if you wrote the systems documentation using LaTeX. And you might even find "your happy place." ;)

    2. Re:Get a tech writer buddy by fm6 · · Score: 4, Insightful

      I'm appreciative of your positive comments about my profession, but you overstate the contribution of English and journalism types. There are indeed many good tech writers with that background, but there are also English types who drift into it because they can't get work doing anything else, and produce cruddy docs based on too-fancy prose styles and lack of serious interest in technology.

      Many good technical writers have technical backgrounds. I myself am a college dropout who wanted to be a computer scientist but didn't have the intellectual chops for it. Others I've known have been retooled scientists, humanities professors, and MBA types. The one constant is that you need the ability to explain complicated ideas simply (for which traditional training in writing doesn't always prepare you), a certain amount of simple curiousity, and the ability to ask the right "stupid" questions.

      BTW, anybody needs some APIs documented? User manuals? Installations guides? I get off my current assignment in about a month, If you have an interesing open-source project, I will consider donating some of my time.

    3. Re:Get a tech writer buddy by sandytaru · · Score: 3, Interesting

      I actually started out a physics major in college, and drifted over into English because Honors Calculus II with Theory kicked my hiney. (All my own fault: I spent my labs spinning equations around the axis and looking at the pretty pictures instead of learning the math behind it.) Not all English majors are automatically technologically deficient, especially ones who opted for a rigorous science and technology curriculum for their electives. I somehow finished with a minor in botany, which did nothing to help me find a job but everything to help me understand lab science and its specialized jargon.

      --
      Occasionally living proof of the Ballmer peak.
    4. Re:Get a tech writer buddy by fm6 · · Score: 1

      Never said that all English majors are technically deficient. And even the majority that are sometimes make good tech writers. But I've known a lot of really bad tech writers who thought their English degrees qualified them to write about anything, There are mental skills in tech writing that are a lot more important than the ability to interpret the metaphors of William Faulkner.

    5. Re:Get a tech writer buddy by phantomfive · · Score: 1

      Yeah whatever, I've read enough writing from technical writers to know that on average they suck.

      A good technical writer is worth his weight in gold. A bad technical writer is worse than just reading the header files/javadocs/whatever, and most are bad.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:Get a tech writer buddy by Waccoon · · Score: 1

      Take a look at a Taiwanese hardware manual. A quick edit by even an ordinary, everyday English speaker would make those booklets far less embarrassing for the company. That can't possibly cost much money.

      Then again, it also reduces the humor value.

  17. talk to your PC by Simonetta · · Score: 4, Insightful

    Get a simple microphone like the blue-tooth-like headsets. Beg, borrow, or steal a speech-to-text program. (there's one buried in newer versions of MS Word) Train it. (for the S2T program in Word, you read the first few chapters of 'The Wizard of Oz' from the display on the PC screen).
        Now open a text file for your speech to go into and the software (or whatever) that you are trying to document. Describe what is displayed on the screen. Pretend that there is a beautiful woman next to you who is totally fascinated in the smallest most exact details of your program, and is totally in love with the sound of your voice describing it to her. If this is too much of a stretch then put a picture of your favorite gorgeous actress next to your PC, stare into her eyes, and describe your program to her.
          When you have a long and detailed text file describing your software project, close it and attach it to your source. Do this even if it means putting the whole thing in one long comment block and pasting it to the end of your Main file.
        Ignore all sentence structure, punctuation, and grammar mistakes in the file. You'll go crazy trying to repair them and most of the people who be needing this documentation will be so happy to have *anything* that they will overlook all the sentence structure, punctuation, and grammar mistakes in the file.
        If you don't speak English well enough to make the speech-to-text comprehend your words then either get a native English speaker to do all the steps above or use a Speech-to-text program that works with your native language. (if there are no speech-to-text programs that works with your native language, quit your present job and form a company is that based solely on making and selling such a program. Make it open-source free and have some NGO or your local Ministry of Culture pick up the cost). The people who are going to be reading the documentation in order to understand your program will either use a PC-based language translation program on your text file or hire someone at minimum wage to read your file and to translate it into more-or-less English.

        Read everything written above and Just-eF'ing-Do-It. Don't tell anyone that you did it. Just slip your rambling text 'documentation' file into the final shipping product disk or Zip file and let it be your little secret.
        Believe me, everyone who buys or uses your software will be glad that you did this. If you get fired, then become a consultant and teach other companys how to do exactly the steps described above and make twice as much money that you were before at the dingbat cement-head company that fired you.
        Just do it. Remember, every major advance in computer science made in the past 30 years was at one time called 'the stupidest fucking thing that I've ever heard' by Bill Gates. Speaking documentation to your PC seems stupid, but it gets the docs created when nothing else seems to work quite as well.

    1. Re:talk to your PC by pnot · · Score: 2

      That's a really interesting approach. Are there any examples of it in the wild? I'd be keen to see what one of these narratives looks like.

    2. Re:talk to your PC by blade8086 · · Score: 1

      no really.. just write the docs as you go. it doesn't take that long. if it does, learn to type faster, or use your editor more effectively, or stop being so lazy, because those are the real problems.

    3. Re:talk to your PC by LongearedBat · · Score: 1

      put a picture of your favorite gorgeous actress next to your PC, stare into her eyes, and describe your program to her.

      Yeah, I'm just worried that my documentation of... software might end up x-rated.

      (Though on a serious note, I've considered dictating before, and after your post I might actually just follow your advice and "Just do it.". Though I would try to correct the punctuation afterwards anyway.)

    4. Re:talk to your PC by hackertourist · · Score: 1

      If you do this as you described, you're in danger of ending up with a book structure more convoluted than the plot of Lost. The information may all be there, but good luck trying to find anything.

    5. Re:talk to your PC by gopla · · Score: 1

      Read everything written above and Just-eF'ing-Do-It.

      http://www.youtube.com/watch?v=dsTY7WDW-X8/

    6. Re:talk to your PC by Inda · · Score: 1

      Dear aunt, let's set so double the killer delete select all?

      Sod that. Record the audio. Upload the audio. Link to the audio.

      --
      This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
  18. Three reasons by griego · · Score: 4, Insightful

    I can think of three reasons why nobody WTFM:

    1. It's hard. Would you want to write a manual for Excel or 3ds Max? I wouldn't. Where to begin and how to organize it?
    2. It's time consuming. Software is bigger than ever, at least on the desktop.
    3. It's not sexy.

    1. Re:Three reasons by danger4242 · · Score: 1

      3. It's not sexy.

      You're doing it wrong.

    2. Re:Three reasons by Anonymous Coward · · Score: 0

      3. It's not sexy.

      The programmer isn't sexy either. And still someone produced it.

    3. Re:Three reasons by MadKeithV · · Score: 1

      Another BIG reason that you see a lot of friction against writing documentation:
      No matter what the OP and many people in this discussion claim, no-one ever reads it anyway. "WTFM" is all-too-often actually shorthand for "explain it to me like I'm a retarded five year old, again, because I didn't listen the first time". In my almost Dilbertian experience the amount of sheer pig-headed ignoring of everything you've written (or said) increases proportionally to the effort put in. So the end result is that you write exactly *nothing* until someone starts asking you directed, specific questions, to avoid a monumental waste of effort.

  19. Different skill set by Celarent+Darii · · Score: 4, Insightful

    It is very rare for a good programmer to be also a good writer. Heck in any job it is rare to find someone with two good skill sets. Even with the two skill sets you often only have time to do something well. I would have to say though when then planets align and the good programmer is also a good writer, usually some sort of standard results from it, and lots of progress is made in the field. Also, some projects don't really warrant the time to make extensive documentation. I wrote tons of LISP code that never had much of documentation because it didn't really need it and simply got the job done. I'm sure many projects never get past the stage of documentation on a need to know basis.

    1. Re:Different skill set by Misagon · · Score: 1

      A programmer does not have to be a good writer, but a good programmer is a person who has good organizational skills, someone who can write lists of topics and subtopics that the documentation should include.
      A good programmer is also good at reading and spotting errors in code .. and in documentation.

      Therefore, a programmer could very well cooperate with a professional writer, where the writer does not have to be a good programmer:
      The programmer could start writing a terse, stilted documentation. The writer could turn that into something that is more readable.
      Last, the programmer could work with the writer to correct any errors or misunderstandings in the work. The result would be better documentation than if either did it on his/her own.

      --
      "We mustn't be caught by surprise by our own advancing technology" -- Aldous Huxley
    2. Re:Different skill set by Alain+Williams · · Score: 1

      It is very rare for a good programmer to be also a good writer.

      Maybe - but if the programmer does not write any description of what he has done, then someone who is a good writer has no chance at all. So: when you write the code, write (in English/...) what it is trying to achieve, why it is doing it and how it fits in with other code/programs.

      Even better: write the documentation first and then the code. There are times that I have done that, realised by trying to explain what it has to do that my spec was not quite right, fixed the spec and documentation - the code produced later was better at doing what it was supposed to as a result. Code is easier to fix at the specification stage than when it has been written.

    3. Re:Different skill set by cusco · · Score: 1

      To be truthful, I don't give a flying frack whether the documentation is done by a "good writer" or not. I just want to know where in the camera interface I need to go to set the MTU, which DIP switch to change to turn on encryption to the downstream serial devices, or where the reset button is located and how long to hold it in, and whether I need to do that before dropping power or after power up.

      If I'm installing a security camera that wholesales for a grand or more it damn well better be useable. I write our sales, engineering and estimating departments an analysis of every new program and every piece of new hardware that I install/configure in the field. If the product isn't documented adequately it will take us longer to install and to get it working to the customer's expectations, which seriously cuts into our profit (and impacts other projects downstream.) If the documentation's no good the only possible saving grace is that they'd damn well better have an outstanding tech support line (looking at you, S2) if they expect us to install it.

      tldr; If the documentations sucks we're not going to sell it.

      --
      "Think about how stupid the average person is. Now, realise that half of them are dumber than that." - George Carlin
    4. Re:Different skill set by Celarent+Darii · · Score: 1

      I wish your last paragraph could be engraved in stone in every IT department. Yet there are these things called deadlines and emergencies that prevent doing anything in a sane manner. Such is life.

    5. Re:Different skill set by Celarent+Darii · · Score: 2

      A good writer by definition knows how to organize his thoughts, get quickly to what is important and is able to express himself clearly. Documentation is for people who develop software or products with your code, and in some ways analogous to what the user sees as an interface. Programming a user interface is often completely orthogonal to the technical part of the project, and really takes a different type of programmer. Look at how many excellent projects that work so well and yet are a real pain in the ass to use because of the interface - one can do well in one aspect and completely fail in the other. The same it is with code and documentation. The code might do what you want but if you have no idea how to implement the api it is damn useless.

  20. Literate Programming - Write both as one source by WillAdams · · Score: 2

    Knuth's source for TeX and METAFONT does this (he created the technique to enable him to write the system).

    I've found (re)writing a program as a literate program results in a much cleaner representation of the code and algorithms and a clearer, more understandable manual.

    DEK has since written an entire book on the concept (_Literate Programming_ a CLSI series book) a decade ago, but one seldom sees source so provided.

    There are some really cool example programs which're quite interesting (and educational) to read, for example:

    Will Crowther's game Adventure - available here: http://sunburn.stanford.edu/~knuth/programs/advent .w.gz (with an offer of a $2.56 reward check if one can find a bug), or as a document to just read here: http://www.literateprogramming.com/adventure.pdf

    Or a CWEB version of the RPN calculator for K&R's C Book: http://www.literateprogramming.com/krcwsamp.pdf

    --
    Sphinx of black quartz, judge my vow.
    1. Re:Literate Programming - Write both as one source by itsdapead · · Score: 1

      Clue: a beautifully annotated source may be part of the manual, anybody who later takes over maintenance of the code will be eternally thankful to you, and if your name is Knuth then future students of programming may study it avidly - but it is not the manual.

      ...and yes, once, many years ago, when charged with supporting TeX at a computer centre, I mistakenly printed out the 'documentation' for TeX so I do know about what I speak. I wanted to learn to use it so I could support users, not rewrite the code.

      Fortunately, Knuth is smart enough to understand this and WTFM as well, for the benefit of people who wanted to use TeX to do typesetting rather than a software design masterclass.

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
  21. People don't read em! by p51d007 · · Score: 1

    Heck, I can't even get techs to read the service manuals sometimes, how are you going to get end users to read them? All of our equipment use to have a place on the back, that held the manuals. I use to say I could slit the plastic wrapper that came on the manuals & drivers, slip a 10 dollar bill into the book, come back a year later & would have a better than 70% chance of finding the 10 dollar bill exactly where I left it! Now, our manuals come on PDF included with the drivers disk, plus a small "basic" book, and they still don't read them, even though with a PDF it is searchable.

    1. Re:People don't read em! by gestalt_n_pepper · · Score: 1

      Self fulfilling prophecy. People don't read them because they suck. They suck because people don't read them.

      --
      Please do not read this sig. Thank you.
  22. Where's the money? by tommituura · · Score: 4, Informative

    A cynical answer is that even if the language or framework author/project head was a technical writer worth his or her salt, it makes more sense to write a book and sell it. Because asking money for the language (compiler/interpreter+libraries) itself is not going to fly in the flooded market of programming languages unless it is really really good and only very few of them are actually that good. Maybe not even then, because the price tag of non-zero value is poison for easy availability which is a must if you want someone to look into your project or language on his or her free time. With frameworks you might get more leeway but not much, especially not if you count on having a hobbyist/hacker community to flourish. Of course, getting someone like O'Reilly to greenlight your book about your own virtually-unknown language or framework might prove to be tad difficult too... Of course, if you're someone like Apple or Facebook or Microsoft or Google who offer a platform with sizable userbase with monetization prospects, this isn't really a problem.

    And then there is the fact as noted in submission that writing a good manual takes a different skill set than designing and implementing a good programming language. If you don't have it, someone else has to take up that work if it's going to be of any use. And for that to happen, the language or project has to exist in some kind of usable, stable state long enough for those "outsiders" to actually study and learn how this thing actually works.

    Which brings me to the last point. The really good books about a given programming language or framework give also "learned in real world use" insights about the pitfalls, deficiencies and suggested "usecases to avoid and the usecases to strive for" of the language which might only be discovered afterwards. This also might or might not be easier for someone who is not intimately knowledgeable with the inner workings of the language or framework by the virtue of being the one who created it. You kind of become blind for the real merits and sore spots in your own work, so to speak.

    And fwiw, I actually have no problem with the idea of paying for a book to help me learn a language / framework I want to know how to use. I have even done that! I do, sometimes, lament the fact that online documentation is lacking because looking up things is usually easier on those than on dead tree (or PDF files simulating dead tree).

    I do share some of the sentiments of TFA though. Most infuriating is when there's a "quick and easy tutorial"... which also doesn't cover very much beyond the simplest of use cases and then theres a very terse api reference. And virtually nothing in between. At that point I usually ask myself "do I really have to / want to (+ have time to) learn this thing, and is there a good book on it?"

    1. Re:Where's the money? by TheGoodNamesWereGone · · Score: 1

      It's a catch-22... If you want people to understand your language then you'd better have a good, comprehensive (and preferably in book form) manual, but you won't make any money off that book and language until it becomes popular.

    2. Re:Where's the money? by shiftless · · Score: 0

      That's not a catch-22. A catch-22 would be if you had to sell books first before the language became popular. You don't have to sell books to popularize a language, but having those books available could likely help considerably if you language is actually worth using. So basically, it's kinda like if someone were to open a retail store; in order to attract customers the owned would need signs and things printed up which cost real money, but he cannot and should not expect that people should have to come in and make purchases first before he can put up the signs. He has to borrow money first and make the signs happen first.

  23. Re:Great but by jo_ham · · Score: 4, Informative

    When will Apple write a manual for their damned devices?

    What do you mean? Apple write manuals for their devices. They are available in PDF form on their website. They don't print the full manual and include it in the box any more to save on waste, instead just giving a brief quickstart guide, but the full manuals are still available. They are also available in iBooks.

    Here's the (156 page) iPhone 5 manual, for example: http://manuals.info.apple.com/en_US/iphone_user_guide.pdf

  24. You want me to write manuals? Pay me. by Tanuki64 · · Score: 2

    I am a freelancer, I am doing what the customer pays me for. I also write open source software in my free time. You don't like it? I don't care. I don't do it for you. I write it for me. I don't need a manual for my own code. So why do I publish my code at all? Why not? Maybe it is useful for someone. I just don't feel any obligation to make it useful for anyone but me.

    1. Re:You want me to write manuals? Pay me. by techno-vampire · · Score: 4, Insightful

      I just don't feel any obligation to make it useful for anyone but me.

      I'm sorry to say it, but if that's the way you feel, there's very little chance that anybody will ever get any use out of your code. Most people are only interested in using programs, not in fighting their way through the code trying to learn how to use it and for many people, if it doesn't come with instructions on how to get it working, it's not worth installing. At one time, that was mostly a Windows attitude, but there are more and more Linux users today who expect at least a little documentation, and as time goes on, their numbers are only going to grow.

      --
      Good, inexpensive web hosting
    2. Re:You want me to write manuals? Pay me. by shiftless · · Score: 1

      Want your name to be remembered by history? Then you need to step up and rise above and beyond the average. Otherwise, just keep doing what you're doing.

    3. Re:You want me to write manuals? Pay me. by Tanuki64 · · Score: 1

      W

      ant your name to be remembered by history?

      Nope, not interested at all. I am totally satisfied with a more or less convenient life.

    4. Re:You want me to write manuals? Pay me. by Tanuki64 · · Score: 1

      I'm sorry to say it, but if that's the way you feel, there's very little chance that anybody will ever get any use out of your code.

      And I wrote that I don't care. Either I am paid and do the documentation, or I do stuff in my free time for me and do whatever I like. You are certainly right when you say that most people are not interested to fight their way through the source. So what? I don't write my free code for other people. I write it for me. I just dump the results on sourceforge or gitorious. Useless? Perhaps not always. I fought more than once my way through other peoples code. Usually not to learn how to use a program, but how certain things are done. Releasing my sources is not for end users, I care only for paying end users, but for other coders.

    5. Re:You want me to write manuals? Pay me. by Anonymous Coward · · Score: 0

      Maybe it is useful to someone. It's just a shame they won't be using it as they have better things to do in life than wade through your codebase trying to figure out if it's what they need.

    6. Re:You want me to write manuals? Pay me. by Ash-Fox · · Score: 1

      Most people are only interested in using programs, not in fighting their way through the code trying to learn how to use it and for many people, if it doesn't come with instructions on how to get it working, it's not worth installing.

      Most opensource developers (developing in their own free time) are only interested in developing programs, not fighting their way through creating documentation, trying to describe how to use it for many people. If users can't handle the lack of the documentation, they're free to offer a bounty to get documentation written or work together and write their own.

      --
      Change is certain; progress is not obligatory.
    7. Re:You want me to write manuals? Pay me. by Leif_Bloomquist · · Score: 1
      I just don't feel any obligation to make it useful for anyone but me.

      What about you 5-10 years from now? I occasionally have to revisit code I wrote on past projects, and I write my comments and documentation with that mindset - that the target audience is myself, some years in the future. It's extra work but has paid off for me.

    8. Re:You want me to write manuals? Pay me. by Tanuki64 · · Score: 1

      Do we discuss here about a written manual or properly written and commented code? I have code that is older than 10 years. I still understand it. Ok, there are parts, which really embarrass me when I see them, but I have no problem understanding them.

    9. Re:You want me to write manuals? Pay me. by shiftless · · Score: 0

      How quaint

  25. No WTFM by Anonymous Coward · · Score: 0

    People only need manuals if the thing is hard to use.
    If you have only one button that says "DO!" then nobody needs a manual.

  26. Re:Great but by Anonymous Coward · · Score: 0

    Thank you. No, seriously. There wasn't even any notification on the device or the in the box to let me know that.

  27. Are you patient enough to teach another person? by MarkvW · · Score: 3, Interesting

    I'd love to work on a manual for something I'm really interested in, like Blender, but I doubt that any developer would have the patience to teach me what he knows--all the while trusting that I am going to complete what I set out to do.

    It's a problem.

    1. Re:Are you patient enough to teach another person? by Anonymous Coward · · Score: 0

      I do write small manuals for myself, for the software I occasionally use. Whenever I encounter a problem with some software, I search it on google and some solution is found for it most of the time. When I find it, I don't simply use the solution and forget about it. I also write it down in a text file along with other problems I have encountered with the same software so far. This way, I get a compact tips-and-tricks/howto document which isn't a manual, but is very useful. I have some pretty old documentation I made this way which still apply to current releases. If there was a way to share these documents with other guys who do the same thing and a way to merge the documents, I think the resulting thing could come very close to a manual.

  28. Adopt the Microsoft Press Model by Pop69 · · Score: 1

    3 page getting started guide, sell a 3 x £50 books instead of inculding a manual

  29. Even if there is a FM ... by whoever57 · · Score: 1

    I have come across many software projects where TFM is either a set of examples, none of which match what I am trying to do and lack sufficient explanation of the examples for them to be usefully extrapolated to other use cases, or a description of the syntax of the input files with no examples of how to use it (so the semantics of the input files are not explained).

    Both examples and explanation are needed.

    --
    The real "Libtards" are the Libertarians!
    1. Re:Even if there is a FM ... by MobileTatsu-NJG · · Score: 1

      I work with some very powerful software that has a fairly good manual, but some of the examples are written like this:

      $x = exampleFunc(1, 2); // result = 1;

      $x = exampleFunc(2, 3); // result = 1 ;

      Thanks guys, that really cleared it up.

      --

      "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

  30. Nobody has addressed the examples by Areyoukiddingme · · Score: 1

    And I'm not going to address the examples either. At least, not exactly. I use Google's Protocol Buffers in a project, and figured out how to use it from Google's documentation. Except I still haven't figure out how to use the ZeroCopy classes. The documentation is that bad. It's horrific. It exists, and tells you the first dozen things you need to know. Then it STOPS. And doesn't tell you anything else. I swear Google puts it up as a test. If you can figure out how to use it from their docs, you get a prize.

    (Though that theory turned out to be wrong. Google recruiter did call me, but her group declined to interview me further. No prize for me.)

    1. Re:Nobody has addressed the examples by sandytaru · · Score: 1

      We ordered a $2,000 Linux based backup server, which came with exactly 11 pages of setup documentation, most of which is screenshots. It included such gems as, "Now set up the network" and had a screenshot of the link to the networking page. Then it went on to the next section. While most of the fields on that page were self explanatory, there was no mention of the fact that only one NIC was supposed to be set up; the second is set up only if/when you need to run a virtual server as the backup, and not on that networking page, but on the page where you set up the server! Two hours of a tech support call later, someone finally figured out that was the issue.

      --
      Occasionally living proof of the Ballmer peak.
  31. Docs are for the trashbin of history by michaelmalak · · Score: 1

    The forces that brought about written documentation were:

    1. Computer RAM too small to hold a document, lack of multitasking (in DOS days), and lack of screen resolution/real estate (even pre-dual monitor days, which was only 2-5 years ago).

    2. Release cycle of software was annual or longer, rather than automaticaly patched daily from the Internet.

    None of those is true any longer. Software should be self-explanitory. And if it's not, there is now an alternative:

    YouTube

    It's fairly simple to run a screen capture on your laptop with its built-in microphone. It shows the typical run-through, or use case to use the technical term, which is enormously helpful for first-time users. If you can't handle that, then you'd better hope you gain a fan who spontaneously does it for you.

    1. Re:Docs are for the trashbin of history by Anonymous Coward · · Score: 0

      There is no such thing as "self-explanatory". The only intuitive interface is the nipple. Everything beyond that is learned.

      With today's so-easy-it’s-actually-harder-to-use-again retardware, it's not about it being too hard. It's about you being to stupid! And you not deserving to even touch a computer.

      Get a freakin' brain, instead of lying there like the most arrogant and lazy baby in the universe, going "waaaahhh" if it has anything more than a giant red button labelled "MAGIC!", that decides for you, what you should want. (Aka. the Apple UI philosophy.)

    2. Re:Docs are for the trashbin of history by Anonymous Coward · · Score: 0

      s/to stupid/too stupid/

      (Stupid fuckin' foil keyboards bought by stupid fuckin' people one is forced to depend on!)

    3. Re:Docs are for the trashbin of history by Psider · · Score: 2

      Ugh, I hate vids. They take sooooo long to get to the point. Give me a good doc I can scan to find just the bit I need. They do have a place, but they should NOT be the only form of documentation.

    4. Re:Docs are for the trashbin of history by serviscope_minor · · Score: 1

      1. Computer RAM too small to hold a document, lack of multitasking (in DOS days), and lack of screen resolution/real estate (even pre-dual monitor days, which was only 2-5 years ago).

      Reality disagrees with all three assertions. Many DOS based IDEs had excellent documentation and viewers built into the IDE. You probably had QBasic since it came free with DOS which is a surprisingly good example.

      And if it's not, there is now an alternative: YouTube

      Aw hell no. Not only are such videos poorly produced and rambling, but even when they're not, they are so slow and take ages to get to the point. Scrolling involved dicking around inaccurately with the timer bar on the bottom as opposed ot the scroll bar. All in all, it's AWFUL.

      --
      SJW n. One who posts facts.
  32. You want a serious answer? by DaveV1.0 · · Score: 1

    The creators don't actually give a fuck about documentation. They don't need it and if you need it, that is your problem, not theirs. Can't figure it out? New adopter? Tough shit, ask the "community" so you can be told "RTFM, n00b!". Then, you can try Google where you will find 5 pages of people asking the same question and getting either the same or no answer.

    --
    There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    1. Re:You want a serious answer? by Anonymous Coward · · Score: 0

      If you take something free, give *NOTHING* in return, yet dare to bitch and whine about how it's not perfectly adapted to you personally, you are an self-entitled egocentric anti-social asshole, and do not deserve to get anything from anyone, you fucking arrogant leech!

      Actually, I do not even want anyone like that to use my software. I'd rather give them a virus that hurts so much, they can't feel their butthurt anymore.

  33. Back to reality by Anonymous Coward · · Score: 0

    Writing a manual is somewhat tedious but still the easy part. Writing a manual that conveys information is a completely different beast and out of reach for 99% of programmers.

    And even after you have managed to put together a good manual that conveys the information nicely, you will find that (1) few people will read it, (2) of those who do, few understand it and (3) the manual will not be kept up to date.

    So what happens is that there's a token manual that contains random information in a useless form and nobody bothers to read. The customers of the system will improvise and when it fails, they will send their setup to you for troubleshooting, debugging and reimplementing.

  34. It starts with a website by Gadget_Guy · · Score: 4, Insightful

    The problem isn't just with manuals. It starts with a website. As a programmer, you might rely on other people to write your documentation but those people will never even learn your product without knowing what the hell it does.

    I have lost track of the number of times that I have stumbled upon a project's website only to be confronted with a changelog rather than a description of the product. There have been some (mostly open source) programs where I have eventually left the site without ever finding out what the software was actually for.

    Every webpage should have a short statement of what the project is designed to do, along with what OS it runs on. You don't have to be a great tech writer to do it, just imagine what a complete newbie would want to see the first time they happen across your site.

    Don't assume that your audience are also programmers and you might just get people interested who can actually write your documentation for you.

    1. Re:It starts with a website by Anonymous Coward · · Score: 0

      I hat people saying "This. Just This", but.

      This. Just This.

      It shoulbe be a reqirement of all the major OS licences to explain what the bloody hell the package does!

  35. Bullshit (Re:Different skill set) by Anonymous Coward · · Score: 0

    Not to go all Zed Shaw on you or anything but that is grade-A, freshly squeezed bullshit.

    Coding is explaining to the computer what you want done in very exacting detail. "Programmers" who can't write an explanation of what their code does can't possibly be writing very good code either.

    The programmer knows what the user needs to do (s/he'd damn well better), the programmer knows what the code s/he wrote does, the documentation follows from there. Sure, it may not be Shakespeare, but it will be well organized and tell the reader what they need to know.

    1. Re:Bullshit (Re:Different skill set) by Celarent+Darii · · Score: 1

      True enough, that a programmer needs to organize his thoughts, as the computer cannot function without clear directives. However communicating with human beings is a different matter. I would say that documentation is for the developer what the UI is for the user. Look at how many magnificent projects are technically sound and yet have a user interface that is completely unusuable. The same is true of documentation. Interacting with the developer or user of your code is something complementary to interacting with the computer.

  36. It's hard! by emblemparade · · Score: 1

    I've initiated and maintain several large free software projects, and I agree wholeheartedly with the basic premise here: I think that software without documentation is close to useless, and I put huge amounts of effort into it.

    But, let's be realistic here: it's a LOT of work. I can easily spend more time maintaining the documentation than the code. I consider it time well spent, but realize (as others have pointed out here) that it's a different kind of skill-set, which programmers don't always have.

    The bottom line is that I would rather people release software than not release it a all. (close to useless != useless). Still, I wish more projects would take this issue more seriously.

  37. the 20something Entitlement Culture strikes again by Anonymous Coward · · Score: 0

    *orders latte at Starbucks while checking messages on android*

    *fires up ipad*

    "Boy, a lot of this free stuff created and posted by people in their spare time kind of sucks! Maybe it's useful, but I can't figure out how to use it right away.

    If they expect me to stick around, they need to do a whole lot better. Either do the kind of work that they aren't skilled at doing, or hire someone who's good at it! And I shouldn't have to pay O'Reilly or Manning for the manual that's supposed to come with the software.

    My time is worth money, you know!"

    *sips drink, surfs /., updates Facebook page*

    *posts article on blog*

    "That's my advice... maybe they'll thank me for it."

  38. UTSL by Anonymous Coward · · Score: 0

    Use the source Luke

  39. Re:Great but by cheesybagel · · Score: 0

    To save waste? More like to increase profit.

  40. Re:The manual should come from the specifications. by cheesybagel · · Score: 2

    You are assuming the specifications make sense or are actually what the client wants which isn't necessarily the case.

  41. Great examples: Ruby and Qt (separately) by Anonymous Coward · · Score: 0

    Two great examples of documentation so good I learned how to use the tech: Ruby and Qt. Both had complete web tutorials/examples and excellent help web pages. I don't know if I would have bothered to learn either had their documentation not been so good.

  42. "Get your documentation off my lawn!" by PolygamousRanchKid+ · · Score: 4, Insightful

    We used to put older programmers out to pasture writing documentation. Despite their cranky "Get off my lawn!" disposition, they were very good at it, like grandfathers telling a story:

    "Children, let me tell you a story from a long time ago, in a far away place, about an associative array of function pointers . . . "

    But now we lay off the older programmers.

    And now we outsource the younger programmers, so they won't even get to be older programmers.

    So there's your documentation for you, right there.

    --
    Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
  43. Docs are first thing I look at. by Zadaz · · Score: 2

    When I need to evaluate some new tech, be it an API, language, tool, or just about anything else, the first thing I look at is the documentation, after that I look at the community support. Because I know I'm going to get stuck at some point and I need to know that there will be a way out. Even if another tool will technically be a better fit for what I'm trying to do, I'll still give it a pass in favor of a tool that I know what it can and can't do.

    Not that good docs are easy, they're not. They take lots of time, even for bad ones, but if you want to see adoption you need docs that include usage examples. This is primarily why Open Hardware companies have been growing like crazy while Radio Shack stagnates. They don't just sell a 555 timer, they provide dozens of free tutorials showing all the cool shit you can make with it.

    1. Re:Docs are first thing I look at. by PiMuNu · · Score: 1

      Should also look at test framework/test coverage. Gives a good idea of how many bugs you will hit...

  44. Information Mapping by SplashMyBandit · · Score: 3, Insightful

    Most developers hate writing technical documentation, and when they do they organize it poorly. I was trained in the "Information Mapping" school of tech writing that is based on the psychological aspects of learning and human working memory. The Information Mapping style has numerous benefits:

    • * the information you want to convey can be broken into seven types
    • * information 'chunked' into parts that are easy for the reader to digest
    • * documentation is designed that you can skip to the part you need without having read much of the rest of the documentation
    • * it is easy for the writer as they simply follow the information mapping process, you don't have to think too hard to start writing, unlike when you try to write without any structure, and
    • * the documentation that is produced has little prose, so is quick to relatively produce.

    Once you have the basics of Information Mapping then as you grow you get better at quickly structuring everything as well as writing examples and unambiguous sentences that can help your learners to avoid many pitfalls.

    So, I believe the premise of this thread is correct, many manuals either don't exist or are poor from a learning perspective. The most surprising thing I found when I learned Information Mapping (only takes a day to go through, since it is far easier than learning a programming language, and from then on it is just putting it in to practice) was how easy and effective it is. nb: I don't get kickbacks or anything from Info Mapping, it just happens to be the best and most time-efficient tech writing technique I've seen, so I hope me mentioning it helps someone else who wants to learn to be a great developer (which involves being a great communicator too).

    ps: info mapping is about structure and content selection, unfortunately it doesn't help with my typing or (lazy) proof-reading :)

    1. Re:Information Mapping by phantomfive · · Score: 1

      Wow, you might want to work on writing sentences that don't put people to sleep. That was a hard post to read.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Information Mapping by SplashMyBandit · · Score: 1

      Sorry if it was soporific for you. I judged most Slashdot readers as able to handle bullet points with some longer prose around it (since Slashdot has a distribution of reading abilities, with a mean value higher than the general population).

      nb: my post was just casual chat, not Info Mapped since it isn't worth doing on this forum). Anyway, I hope you squirrel that nugget of information away for some future time. It's a good style for *tech writing* (the subject of the thread).

      And if you were trying an 'ad-hominem' based on my Slashdot 'style' then all I can say is, "whuteverz".

    3. Re:Information Mapping by phantomfive · · Score: 1

      lol Well if you're going to give people writing advice you ought to be able to write smooth sentences! Have you ever tried reading your writing out loud to make sure it flows rhythmically?

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Information Mapping by SplashMyBandit · · Score: 1

      Actually, please read again. I didn't actually give writing advise to anyone. I suggested that Information Mapping is excellent for *tech writing*. However, construe what you wish from my *casual Slashdot post* (not the same thing!). Fortunately my very-rushed Slashdot reading comprehension is not always accurate enough I wouldn't dare make suggestions to others in that department.

    5. Re:Information Mapping by PiMuNu · · Score: 1

      Googling around - looks like proprietary bs to me

    6. Re:Information Mapping by GbrDead · · Score: 1

      undo wrongful moderation.

    7. Re:Information Mapping by Anonymous Coward · · Score: 0

      Thanks for the infomercial. Next time please put a small text "advertisement" at the top please.

    8. Re:Information Mapping by SplashMyBandit · · Score: 1

      Unfortunately I don't know of a non-proprietary tech writing methodology that I know anyone can pick up and be effective with, part from Info Mapping. Do you know of such a methodology? It is hard enough to convince many developers on the need for a logical structure of their documentation and manuals that works for readers. Unfortunately the Free Software movement hasn't yet gone the extra step and written a manual on how to write manuals. Yes, they have documentation standards and systems, but not really a methodology that is focused on the needs of the end user. Hence, I agree with the premise of this thread. We Free Software proponents may rail about 'proprietary bs' but we don't really provide an alternative.

      The funny thing about the 'proprietary bs', as you call, it is that it needs to be kept proprietary. It is so simple, once explained, that you'd never be able to send trainers around otherwise - and it would die out. The proprietary nature is not to keep you 'locked in' or 'coming back to them', it is to fund the transmission and training of the technique by experienced practitioners. I don't see this as any different to a university or technical course. So the 'proprietary' in this case seems better than the current Free Software alternative - which is nothing at all (AFAIK, perhaps I'm wrong).

    9. Re:Information Mapping by Anonymous Coward · · Score: 0

      OK, no problem. I'll try to figure out information mapping and apply it to my writing.

      phantomFive

  45. How to get TFM Written by Tsu+Dho+Nimh · · Score: 1

    Almost every university has a technical writing department. Those students often need real-world projects for their classes.

    Call the professors and ask them if they would like some real-world software for their students to document.

  46. Re:Great but by jo_ham · · Score: 1

    To save waste? More like to increase profit.

    Ah, yes, sorry I forgot to engage my ultra-cynical "all companies have a Machiavellian conspiracy going on" mode before posting. *eyeroll*

  47. At my last job by kilodelta · · Score: 2

    Documentation - I don't care where I've worked, it has always taken seat WAY in the back.

    So for anything I learned about the software we used I'd write up how-to guides. This got all the way up to the company president who asked how I did it. I told him that for anything I was learning about, I took notes and documented. If it was something I wrote, I made sure to comment, notes, and then create a quick guide for it.

    We can all write. You just need to take the time to do so.

    1. Re:At my last job by El_Oscuro · · Score: 2

      At our work everything is documented. For every process we have at least 27 different documents, all inacurate or out of date in slightly different but important ways. And of course, they are impossible to find when you need them.

      Individually, I have managed to find a way around this mess with my own scripts: I just write a detailed usage description if the script is run without arguments, along with examples if the syntax is complex. Since the documentation is actually part of the script, it is always where you can find it, and is as up to date as the script. This doesn't just help other people, it helps me too if I haven't used a script in awhile.

      --
      "Be grateful for what you have. You may never know when you may lose it."
    2. Re:At my last job by kilodelta · · Score: 1

      Yeah - part of the reason I left that job was a new administration came in and decided documentation wasn't worth it. I voted with my feet.

  48. meh... real_Men read_debugger() and write_hex(). by Anonymous Coward · · Score: 0

    ERROR

  49. You make false assumptions. The reason is simple. by Anonymous Coward · · Score: 0

    You didn't pay me, you give nothing in return, and you leech off of my work (which I tolerate because it doesn't harm me), yet you go and bitch about it??

    You assume, that we all would write that stuff for *you*, and that we're all insecure attention whores who *need* the golden badge, the pat on the back, and the whole hip-hip hoo-fucking-ray...

    We don't. Some people are still confident individuals.

    I write my code for me and me alone. In fact, one of the main points is, that it gives me an advantage (evolutionary/otherwise).

    If you want something, how about you first think what you can offer me, that has enough value, that I'd care about serving you with what is a part of my lifetime that I could enjoy with actually doing me good!

    Do you now hate me and call me "asocial", because I don't want to serve *your* anti-social egocentric ass?

  50. Re:Writing documentation is boring and tedious. by robthebloke · · Score: 2

    I've worked on projects where writing the documentation was far more entertaining, and less tedious, than dealing with the actual code.....

  51. And that's not the worst problem. by gestalt_n_pepper · · Score: 2

    Here's a simple list that will keep any unfortunate enough to have to read your "documentation" from tearing their hair out. (I'm looking at you, Microsoft!).

    1) Table of contents. Learn to love them.
    2) Guess what kids?! Not everyone has immediate access to an internet connection all the time, so no, your cute little wiki page won't cut it as documentation for anything.
    3) Index words. They require brains not automation.
    4) Never, ever, under any circumstances whatsoever, discuss a function, property, or other programming language characteristic, no matter how obscure, without being more than ONE click away from a working code sample that demonstrates that function. Ever. Really. The concept is almost never the problem. Idiosyncratic syntax is.
    5) All code samples should be as simple as possible, demonstrating ONLY the behaviour of the function, property or feature under discussion. Embedding your single 2 lines of demonstration in 50 lines of irrelevance only proves you know how to cut and paste.
    6) Don't be lazy.

    --
    Please do not read this sig. Thank you.
    1. Re:And that's not the worst problem. by Anonymous Coward · · Score: 0

      Are you serious? Microsoft has by far the best API documentation in the industry.

    2. Re:And that's not the worst problem. by redlemming · · Score: 1

      I like this list a lot!

      However, in regards to [6], sometimes longer code samples are useful. In some situation, having a runnable complete program that one can modify can be a huge timesaver when trying to figure out concepts.

      Sometimes having a code sample with a configurable gui is especially useful.

      For example, this is helpful in documenting signal processing algorithms or functions used to do signal processing.

      Documentation of the algorithm alone, without any form of interface, would be "simpler", in the sense of less lines of code, but not neccesarily as useful to someone trying to understand it.

      Some concepts are just difficult to present in isolation.

      Or, putting this a different context to illustrate what I'm saying, mathematicians often manage to state ideas in a very compact and simple way, in the sense of having no unneeded steps in their proofs.

      This does not at all mean that their writing, while arguably as "simple as possible", is easy to understand without lots of additional explanation.

      I really appreciate the lengthy examples in books on writing compilers that take the "learning-by-coding" approach. These are not neccesarily short examples, but they taught me far more than the dense books on theory.

      I would modify rule 5 to say that longer code samples are permissible if and only if simple code samples are FIRST provided to demonstrate the basic idea.

      I would also add:
      7. Have pictures when (and only when) they aid in communication.

      Not all people think the same way or approach problems from the same perspective. A picture can often help a lot in improving documentation.

      On the other hand, putting lots of useless pictures in documentation -- perhaps because they are required by some arbitrary standard an organization has decided to adopt -- just make it less likely anyone will read the documentation.

      8. Always include a key and units when appropriate (this may be part of what you intended by [6]).

  52. The best documentation is the source by zbobet2012 · · Score: 0

    The source code is easily the best documentation, even on large projects. Working examples come next, followed by comments / docs in the code followed by external documentation. Writing the docs first is a good way to insure nobody uses them, because they will generally lie.

    1. Re:The best documentation is the source by spauldo · · Score: 1

      My brain is not a turing machine, and I don't have /usr/bin/cc installed in my cerebral cortex.

      I'm not going to read the source code to sox to learn how to resample a wav file for an audio book I want to listen to. I am not a contributor to the sox program, and have no desire to dig through the source code. Fortunately, the docs are pretty good, and I found out how to do that in a few minutes.

      I'm not going to read the source code to perl to learn the arguments for the sort function. It took me thirty seconds to find that out the other day, most of which was me walking over to my bookshelf to get my copy of Programming Perl.

      I'm sure as hell not going to read the source code to Windows to turn off the annoying startup noise it makes even when you choose "no sounds" as your sound profile, since even if I was so masochistic to try it isn't available anyway. I blundered about and figured that out on my own, since I have no faith in the Microsoft help system (I don't use Windows enough to know where stuff is anymore, but boot it every now and again to run a program I can't run with Wine).

      If you need to read the source code to figure out how to use a program, then that program is useless to 99.9% of computer users. Yes, it will tell you exactly what the program does, but in the real world your documentation needs to be more accessible.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
  53. Re:meh... real_Men read_debugger() and write_hex() by greg1104 · · Score: 1

    You use a debugger? Wuss.

  54. Technical writers write / Developers Develop by Anonymous Coward · · Score: 0

    Subject says it all

  55. which is why software is NOT "engineered" by Anonymous Coward · · Score: 0

    Real programmers, of this type, are NOT professionals of any way shape or form. They do NOT understand the basic concept of "standing on the shoulders of giants", configuration management, and design documentation control. Those who are presently trying to create an Engineering exam for a software specialty should be FORCED to WTFM, and then be audited and FINED for NOT WingTFM.

    1. Re:which is why software is NOT "engineered" by Ash-Fox · · Score: 1

      Real programmers, of this type, are NOT professionals of any way shape or form.

      Actually, if they get paid for it, they are.

      --
      Change is certain; progress is not obligatory.
  56. Read the Original Instead by Anonymous Coward · · Score: 0

    The problem with some commercial books is that they are just copies of the instructions we write when working for a tech giant.

  57. Re:meh... real_Men read_debugger() and write_hex() by rubycodez · · Score: 1, Funny

    any "developer" who uses more than a text editor, command line build tool such as make, and a compiler or interpreter, is a fucking pussy.

  58. I used to find that funny, but not any more by Anonymous Coward · · Score: 0

    That this quip needs a smiley emoticon, and that some programmers take it to heart as a mantra is quite sad really.
    It's right up there with that other one, 'The code is the documentation'. No it isn't, the code only shows HOW but not the WHY.
    Sigh.

  59. Generalists want results by Anonymous Coward · · Score: 0

    Get HR add the following to the new grad job description:
      - 7 years of redhat enterprise linux version 6.3 / Solaris 12 / Windows Server 2012 RTFM experience
      - 7 years of POWER7 / MP Xeon E5-4670 + Intel MIC RTFM experience
      - 7 years of data hazard free MIMD C++ template intrinsic / offline jcode optimization RTFM experience
      - 7 years of hadoop RTFM experience.
      - 7 years of petabyte+ big data RTFM experience
      - 7 years of legacy compatiblity assurance RTFM experience
      - 7 years of APT / duqa / CEL / SIEM / RF site survey RTFM experience

  60. You cannot get the staff - broken society by NSN+A392-99-964-5927 · · Score: 1

    This all boils down to basic issues. There are too many distractions in our lives, TV, Apps, Phones, McDonalds, Burger King, Fast Food, Work, Sleep, Pay Bills, Pay Taxes; Do this and do that; stay on hold whilst I waste 45 minutes of your life trying to sort out your utility bill and then these plebeians cut you off and it feels like life is just a game of the Board Game SNAKES and LADDERS https://en.wikipedia.org/wiki/Snakes_and_Ladders

    To get anything done nowadays you have to literally shut yourself off. No TV, no phones, no facebook, no twitter, no kids annoying you. Truly you have to get rid of all distractions and have some quality time with yourself. That is the only way to write a manual and RTFM.

    If you are writing that manual; do not consult other people as other developers will throw you a curve or throw a spanner in the works. Hence back to no distractions....... write out a draft in full and ignore everyone including your wife.

    That is how you complete a cycle of action from start to finish. Once you have the full draft... editing comes later ;)

    I hope that helps put some sanity back,

    --
    All cows eat grass!
  61. No documentation for C++? HUH? by Anonymous Coward · · Score: 0

    C++ has got to be, from even its inception, one of the most thoroughly documented languages ever. Certainly after it was standardized documentation's been excellent. What do you mean?

  62. It's a disaster by Anonymous Coward · · Score: 0

    Remember the three manuals -- The User's Guide, The Programmer's Guide, and the Reference Guide? They are all important. Mission critical. Kids that post "tutorials" on YouTube don't know where their dick is, and even less how to teach or explain something. Examples are fine but without real documentation a complex example is more like an archeological site to mine than a piece of shared experience. Writing good documentation may take as much effort as developing the product behind it, and even more to keep up to date. But that's the price to pay if you want to sell, if you want adoption.

  63. I don't blame them by Art3x · · Score: 1

    Programmers avoid writing documentation, because documentation is hard. They just got done working, working to write the program, and that was hard work. Now it is time to do the job all over again, in a different language: English. Someone may say the program was harder. I say, only slightly.

    As many have said before, good documentation summarizes not only what the program does, but why. The why part is new. You didn't have to program the why part, just the what part. The computer doesn't care why. So you didn't have to tell it. But the why part helps humans hoping to understand your program immensely. Maybe because once they know your intention, they can guess your method, and so the program reads faster.

    Anyway, that's why writing can be hard, even though you just wrote the program. Writing is hard because before you can write clearly about something, you first have to think clearly about it. And while writing the program, much of what and why you were programming was half-known to your mind, the rest in your gut or subconcious.

    As stated in one of the highest-rated books about writing, On Writing Well, by William Zinsser:

    Thinking clearly is a conscious act that writers must force on themselves, as if they were working on any other project that requires logic: making a shopping list or doing an algebra problem. Good writing doesn't come naturally, though most people seem to think it does. Professional writers are constantly bearded by people who say they'd like to "try a little writing sometime" --- meaning when they retire from their real profession, like insurance or real estate, which is hard. Or they say, "I could write a book about that." I doubt it.

    Writing is hard work. A clear sentence is no accident. Very few sentences come out right the first time, or even the third time. Remember this in moments of despair. If you find that writing is hard, it's because it is hard.

  64. chicken and egg / users and documentation by Anonymous Coward · · Score: 0

    Why would I spend a bunch of time on user documentation when I don't know if anybody will actually want to use my project? But if I don't spend that time then it's a given that nobody will use it? Documentation needs to be a "conversation" between developers and users. A simple email to the project lead saying "how do I do X?" is probably enough to kick it off.

  65. All I need ... by PPH · · Score: 1

    ... is a "Hello, world" example and vi. Then get out of my way, punk.

    --
    Have gnu, will travel.
  66. I have to chuckle by RogueWarrior65 · · Score: 1

    Now, see, when I started screwing around with embedded Linux-based single-board computers, I had lots of questions and documentation was not aimed at the newbie. So, naturally, I asked a lot of questions. More often than not, my questions were answered by "did you try Google?" or more obnoxiously, "If I told you how to do X, you'd be standing on the shoulders of giants."

    Ironically, I find that even in cases where publishing a book for newbies can be justified, once you're past the newbie stage there is rarely a good advanced text available.

    Now, if you think undocumented technology is frustrating, try dealing with government bureaucracies and their inscrutable paperwork. I'm convinced that there are too many people on this planet who serve no other purpose than to generate extra crap the rest of us are forced to deal with for no other reason than to justify their own jobs.

  67. Re:meh... real_Men read_debugger() and write_hex() by w_dragon · · Score: 1

    Butterflies...

  68. The Montreal Technical Writer's society had WTFM by Anonymous Coward · · Score: 0

    ....on coffee mugs.

  69. Re:Great but by cheesybagel · · Score: 1

    Fine. Phone Apple and tell them you will supply the paper (recycled of course) and toner for the manual and you want a copy. I'll await their response with baited breath.

  70. Licking milk .. by Anonymous Coward · · Score: 0

    This is interesting. I am more of a writer (and painter) than a programmer, but got a programming degree, because (in early '70's, seemed to make sense), because I wanted to avoid literary criticism. Anyhow, documentation is ALWAYS LACKING. You have programmers, and they are not, repeat, NOT, writers. Their own thinking does not naturally expand into every => man / woman's word / idea domain. And, I must say, I myself thought documentation in my own programs was a violation of the beauty of .. wondrous lines of code. Especially when they worked. Well, I am artiste. I do think tho', that WTFM is an honest and good addition to our lexicon. WTFM, you guys. I have a hard time in my old and disabled age, to understand, so please do so.

  71. Video tutorials do not count as documentation! by FoolishOwl · · Score: 1

    I'm getting annoyed with video tutorials.

    More and more often, when I search for documentation, I get links to videos, mostly YouTube videos. At best, these are inefficient; if you really need to explain details of the GUI, you should be able to do it with a few screenshots, but videos involve someone who is almost certainly not a professional voice actor reading technical information aloud, in a format that is difficult to review or index, and doesn't allow for copy-and-paste of URLs or command lines.

    It's worse in my job, where for some reason, instead of actually writing out documentation, we get training videos recorded by project managers in which they talk over a Powerpoint presentation. At least there's the Powerpoint to refer to, but any additional explanations by the managers are difficult to hear, and again, difficult to review or index.

    Really, what's so appealing about recording a video, instead of just writing out an explanation?

  72. Re:Great but by Waccoon · · Score: 1

    I find this an odd point of view given Apple's considerable effort and waste to improve the "un-boxing experience."

  73. THREE.js by spongman · · Score: 1

    THREE.js is the worst example if this. the documentation is basically machine-generated API definitions with a "getFoo() - this method gets the foo" (sometimes) uselessly sprinkled therein. if you suggest that this could be improved, something that many people have tried, you will either told to:
    a) go look at the samples
    b) look at the (poorly commented) source code, work it out yourself
    c) write the f'ing docs yourself
    d) shut up
    e) really shut up, shortly before getting banned

    seriously, who tells a n00b that they should be the ones writing the docs?

  74. The code *IS* the documentation by Anonymous Coward · · Score: 0

    The code shows the how and the why. There's nothing the code does that the code doesn't explain -- by definition.

    You're just too bloody inexperienced (or possibly stupid, or lazy, or some combo thereof) to understand it.

    You can't expect to understand code that you're not good enough to write. That should also be obvious. I'm talking to you, script kiddies.

    1. Re:The code *IS* the documentation by Anonymous Coward · · Score: 1

      The code shows the how and the why.

      No, it does not. Code can't read the original programmer's mind and tell you what he intended to do.

      You're just too bloody inexperienced (or possibly stupid, or lazy, or some combo thereof) to understand it.

      Well that's one explanation. But most of the time the actual explanation is that it's your code which is shit.

      You can't expect to understand code that you're not good enough to write.

      I also can't expect to understand code which isn't fully understood by the person who wrote it, either. At least without a lot of pointless effort on my part. And it's not because you've produced a work of Genius- code which is truly Genius is so clear and succinct that it can easily be understood even by those who couldn't write it themselves.

      You already know what your code is supposed to do. If you can't take the time to put that in writing then you're either intentionally being a Grade A dickwad, or you just suck at programming. Or some combination of both.

    2. Re:The code *IS* the documentation by turbidostato · · Score: 1

      "The code shows the how and the why"

      No, it doesn't because it can't. Typical book example:

      #define SECONDS_PER_DAY 8000

      Now, tell me the why, if you can.

  75. A Wiki Is Not a Manual by Anonymous Coward · · Score: 0

    Don't make the mistake of thinking a Wiki is a manual either. You're users won't write your documentation for you.

  76. Yes, I agree and I did but... by hughbar · · Score: 1

    It's uncool to self-promote but I'm old [therefore uncool anyway] but that's exactly what I've done for every iteration of http://sourceforge.net/projects/cclite/ which is alternative currency and LETS software.

    A few remarks about this:
    1. I did tech writing for a computer manufacturer in the 1980s, so I had some previous experience, it's harder and more labour intensive than it looks.
    2. If you have the manual, you have to update it for releases, otherwise it's getting bit-rot
    3. Give it to someone else [preferably not deeply in your project] to read through
    4. Give it to someone who is second-language English if the manual is in English [probably the best choice]
    5. Give it to someone else to edit, if possible, my ex was a newspaper sub-editor
    6. Read a grammar and style manual once anyway, Elements of Style and trawl through this: http://technicalwritingworld.com/forum/topics/list-of-books-every-technical
    7. Plan the manual [by making a table of contents, for example] before you write it and use the heading hiearchy to give you a 'house style'

    I can probably think of more, it's actually creative and fun, but it's not an easy thing to do well [and I'm OK but not the 'best of the best']. Like code the more you, the better it gets to be. Incidentally I spent a while with A5 so I could publish on Lulu as paperback size, but I've gone back to A4 currently, that's 'another' choice.

    People do say 'hey there's a manual!' from time to time. Reward enough.

    --
    On y va, qui mal y pense!
  77. About page by Cato · · Score: 1

    The most important page on any site is the About page - people arrive with little clue on what your site or program is about, so it's incredibly valuable to provide the About page. Just a few paragraphs written without assuming previous knowledge is enough.

  78. Please open the box using the crowbar inside by itsdapead · · Score: 2

    Sure thing. However, before I start I'd better get completely familiar with your wonderful program in order to correctly explain it's operation, so I'll just have a good read of the manu... oh, wait...

    --
    In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
  79. Youtube is not the answer! by dejanc · · Score: 1

    I concur. You can't copy/paste from YouTube and you can easily skip over a boring part or get back to the part you didn't understand properly or bookmark a page for reference. Code snippets are impossible in a video and generally you lose interest when you realize that your documentation is narrated by a 14 year old.

    P.S. Tutorials are not a replacement for proper documentation. They are usually both needed - tutorials to show you what it's all about and whether or not you fill find a use for it, and documentation for reference.

  80. design is the problem by swell · · Score: 1

    As a programmer, senior member of the Society for Technical Communication (STC) and user of software, I've accumulated some ideas about what works.

    The primary factor is design. Before any coding is done, there should be design. It's the same for movie producers, authors, web designers and people who make products in the physical world. Start with a storyboard before anyone touches a computer. Think like a user. Think like Apple. You want a fantastic design before coding.

    What is Design? Of course it is about accomplishing some task efficiently. It's about speed, CPU consumption, storage & memory requirements. But referring to the user and documentation, it's mostly about the User Interface.

    If you're updating legacy software your job can be more difficult. Existing users will complain about any change, but if you come up with a fantastic user interface that uses the same data sets, they'll get over it.

    If you're programming esoteric stuff like a disk operating system (please do, we need something badly), nobody but a few engineers will see it so documentation is easy- they speak your language.

    Test every step of the way with input from potential users. Adjust, but always with the Design in mind. Users should instinctively know how to achieve their goals with your software. I'm not talking about Mathematica, Autocad or C++ here, but everyday software used at home and in business. (I do have a gripe with Autocad, however, for taking so long to improve their user interface while others had to show the way.)

    In many cases, if you did it right, no documentation will be necessary (Just the required safety warnings, FCC and other regulatory comments, patent, trademark and copyright notices, warranty limitations, etc (barely 20 pages). If you didn't do it right, you can hire one of the thousands of professional technical communicators around the world to make learning it tolerable for users.

    --
    ...omphaloskepsis often...
  81. How to write by hackertourist · · Score: 1

    There are a couple of approaches to software documentation.
    1. Descriptive (broad focus). Explain to the user what the program is for. Explain the concepts you use. Why do things work as they do?

    2. Task oriented. Explain to the user how to perform tasks, e.g. How to set up a compound interest calculation in a spreadsheet. This pulls different elements of the UI together and puts them in context. Useful for the novice, but always lacks some detail the advanced user needs.
    Skip the trivial ones, depending on your audience.

    3. Descriptive with a narrow focus. Sescribe what each element of the user interface does. Helpful as a reference, but not much use to a novice. Man pages are like this.

    You'll find that a good manual combines all three approaches (in the above order).

    Start writing the manual as early as possible. Use it as part of the software specification process. Then compare the manual and spec to the program: does it work as advertised? If you find that a task is hard to explain or contains more steps than necessary, it's time to improve the user interface.

    Involve non-programmers in the manual writing and testing process. They look at the software differently to a programmer. As the creator of a program, you take lots of things for granted that are non-obvious to a user. Find out what these are and either explain them in the manual or (better) redesign your program so you won't need to explain as much.

    hackertourist
    (technical writer)

  82. Continuous integration is a terrible idea by tlambert · · Score: 0

    First provide some unit tests and regression tests that run under continuous integration. Then some real documentation (not Java Docs).

    FTFY.

    Continuous integration assumes a waterfall development methodology, which is a great idea if you are building a prototype, and a terrible idea if you are building a product.

    The reason this is true is that the continuous integration and waterfall models do not lend themselves to productization, which requires a feature cutoff and a feature focus. If you are doing either, you aren't feature-focused, since the development is scattered over product feature areas. What this means is that you don't get work on incomplete features prioritized. You can do a release cycle cut with your current top of tree, but you can't omit work intended for the next release cycle, and you can't omit partial implementation.

    Unit tests and regression tests are a great idea, particularly if you are writing the tests first from a design specification, and only assigning significance to the test results after the design point is feature complete. If you are doing anything else with them, however, you are doing it wrong: you will end up with spotty test coverage, spurious tree closures on false/erroneous test failures, and worst of all, you will assign inflated significance to the tests you have in hand, vs. the ones you should have had in hand before you started your feature work.

    There are some projects that get away with this model; Android is one of them. But they only get away with it because the cell phone vendors take a tree snapshot, and refuse to take additional waterfall work into their product after it has been declared feature complete, and then only do bug fixes. This process is called variously "integration" or "productization", and it's done by companies like Motorola, Nokia, Samsun, Ericsson, and so on, and it typically not part of the Android process proper(*).

    (*) This, incidentally, is a partial explanation of why cell phone vendors tend to stick on antique versions of Android once the product has shipped, and do not issue updates. The rest of the explanation is the carrier business model doesn't actually want the updates, even if it were not effectively the same cost as developing an entirely new phone, as far as the handset vendors are concerned. To the carriers, changing this means that someone can get the new OS features and applications written for the new OS, and "ride out" the remainder of their carrier contract and switch carriers, rather than re-upping with the same carrier 6 months before contract expiration in order to get the new OS with the new handset.

    1. Re:Continuous integration is a terrible idea by dkf · · Score: 1

      Continuous integration assumes a waterfall development methodology

      What? It just assumes that you keep some branches in your VCS buildable, but that's quite compatible with whatever development methodology you prefer. Whatever is going wrong in your organization to make you think that CI requires waterfall, I don't want any part of it...

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:Continuous integration is a terrible idea by cfulton · · Score: 1

      I have to agree with dkf here. I don't think you understand CI or how it is valuable. You don't need test first or any of that. Your code should always build. CI is a guarantee that the codebase will always build. A guarantee that developers are not committing broken code. From that vantage you can add lots of good stuff: Unit Testing, Style Reviews, Automated Bug Checks, Automated Dependency Updates... But, you have to start with a codebase that compiles and CI does that.

      --
      No sigs in BETA. Beta SUCKS.
  83. Re:Great but by TheRaven64 · · Score: 1

    I doubt it. I bought Final Cut Express some years ago (student price, very cheap) and it came with printed manuals. These things were about 90% of the volume of the box and, between the two of them, over 1,000 pages long. They also had PDF versions on the install DVD. I referred to the PDFs regularly. I don't think I opened the paper copy more than once. I expect my usage was pretty typical. Of course, it also increases profit, but increasing profit by not wasting paper and energy printing and shipping something that most customers will never read sounds fine to me, just as I have no issue with the shop near me that increases its profit by stocking food I want to buy...

    --
    I am TheRaven on Soylent News
  84. (4) Is a false assumption by Peter+(Professor)+Fo · · Score: 1

    If you wish to create an on-line reference then fine. OTOH understanding is about context and appropriate use. A function reference tells how to use it not why. A discussion of say various ways of doing something may introduce all sorts of concepts and easily mention useful functions or sections of the manual to look at in more detail but it is about why and doesn't need to be on a screen - in fact I would say it is better to have the why and overview documentation in a form suitable for picking up and putting down when the reader is in the mood for a bit of learning and not trying to look at the instructions while driving.

  85. Funny but wrong by SmallFurryCreature · · Score: 1

    The real problem in documenting is why teachers have to spend 4 years in school to teach subjects they already passed the exam on years or even decades ago. Teaching is HARD.

    Because IT IS NOT HARD TO WRITE for YOU. If I write an application or design a user interface or build a tool or design a game, then I know what I am doing, know what needs to be done and how to do it. To then switch myself into your mindset (arrrrgh! the HORROR!) and see my application with your limitted skillset, dimwitted logic and bad breath, well, that is hard. That is why ex-teachers are so welcome in IT to do training because they are trained to train people. And training adults after training 6 year olds is marginally easier because you are allowed to hit adults.

    Writing good teaching material (and that is what a manual is) is hard because you need to add just enough information to fill the gaps in the readers knowledge, without flooding them with stuff they already know causing them to skip RTFM and missing the information they do need to know.

    Doesn't help that the average user is a self-entitled prick with the attention span of a gnat. Writing manuals is a skill all in itself and one few are willing to pay for.

    You want to RTFM? Pay someone to WTFM.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Funny but wrong by fahrbot-bot · · Score: 1

      Okay. No more coffee for you today.

      --
      It must have been something you assimilated. . . .
    2. Re:Funny but wrong by turbidostato · · Score: 1

      " If I write an application or design a user interface or build a tool or design a game, then I know what I am doing, know what needs to be done and how to do it."

      You know it... now.

      Back to that code you knew so well in some years, heck, sometimes in some months, and tell me how much sense it retains by itself.

  86. Agile usually means by SmallFurryCreature · · Score: 1

    Do it yesterday.

    It shouldn't. But it does.

    Documentation is something you will do tomorrow, if you have time. You never have.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Agile usually means by Anonymous Coward · · Score: 0

      How can one ever have time if one doesn't TAKE the time?

  87. No documents and no support by driftin_drifter · · Score: 1

    Seems most software these days doesn't come with documentation or support. They write a program, sell it and then set up a forum so other users can help each other figure out how to work around their bugs and shortcomings.

  88. WTFM is hard but worth it by lolococo · · Score: 2

    As an open source developper, I used to get a lot of negative feedback on the documentation, on how it was poorly written, lacking and generally unhelpful. This got me to make the decision to write a real manual, which users of the software could use as a reference, which would bring answers to (most of) their questions and allow them to become sufficiently proficient in the software APIs and features.

    What I hadn't realized was how long it would take: it took me 3 months to write a user's manual from scratch. During that time, I completely stopped writing code for the project, apart from bug fixing. I tried to apply what I thought a usable manual should be like, including navigation, code samples and links to relevant code documentation. It was one of the most frustrating time in my life, knowing that I shouldn't go back to coding because it would give me an excuse to stop writing the documentation.

    The rewards came when this work was completed. All of a sudden, the project was able to mention an actual documentation without shame. We are able to answer many of the questions in the user forums by providing the relevant documentation link. We could also see an increase in the proficiency of our users, as they were asking more technically difficult questions, asking for features they wouldn't have thought about otherwise, and making suggestions on features we (the project team) had overlooked. This also transformed the feedback we received about the documentation itself, in a complete u-turn from what we got previously.

    This turned out to be a win-win, both for the project team and for our users. Now, updating the documentation to keep up with the latest version of the software has been integrated into the development process. A feature or enhancement is not considered complete until it has been fully documented and tested.

    My 2 cents.

  89. Make documentation easy/automate it by Anonymous Coward · · Score: 0

    i.e.
    The easier it is to do the more likely it will get done and it's important it should only be done once.

    Document in a wiki markup format. Not html, something you can read and write easily as ascii, or utf8 these days but which can be up loaded to a document server, something like twiki is ideal.

    Write a document maker, this is just something which will pull documentation together into a coherent whole. There are a plenty of tools which do this for specific languages but most are language specific, like javadoc or python docs. The most general purpose one and earliest example I've found is robodoc. Having said that I decided instead to go with a trivial shell script which would search down a directory hierarchy, cat any readme files it found and greps for a specific tag in text files. I'd have posted it here but Slashdot says it's lame.

    Put it in your make files so you can simply type "make" and get some up to date documentation in the top level directory. I've now got an easy to use documentation framework, it gives me web documentation, it gives me application, function and configuration documentation, it gives me READMEs on the usage of specific modules. It's written in twiki format so it's easy to read as ascii or as a web page and I only ever have to write any particular part of it once and it's automatically included.

    Perfect? Not by any means but it's easy, works and anything which allows # comments can be documented.

  90. Re:It starts with a website ... but not GitHub by Anonymous Coward · · Score: 0

    I blame GitHub and BitBucket for a lot of this these days. I can't even count the number of times I've read a blurb about an interesting project on someone's blog only to click a GitHub link and find myself staring at a minimal readme. No explanation of what I'd use the project for, no screen shots, no samples, no useful anything to tell me if it's worth while to dig into the source.

  91. Re:and what does the kama sutra have to do with th by Anonymous Coward · · Score: 0

    Do you mean Blender as in the 3D software? Forget it. The Blender team rebuilds the interface from scratch every six months. Any attempt at thorough documentation would be obsolete before it was half-finished. I know, I used to try to publish tutorials for Blender. Three months later, everybody's crying at me because they can't follow the instructions anymore - that button moved, this pull-down menu doesn't have that option, that shortcut key option changed. I gave up trying to keep up with Blender myself. It's not software, it's a cult.

  92. Re:Writing documentation is boring and tedious. by jones_supa · · Score: 1

    Maybe it's a glamour thing too. "Hey, I wrote this cool app" gives you "Awesome!" as reply. "Hey, I wrote this excellent documentation" might just lead to [crickets.wav].

  93. Re:Writing documentation is boring and tedious. by Savage-Rabbit · · Score: 2

    'Nuff said.

    Writing documentation is boring and tedious.

    'Nuff said.

    Maybe it is, but writing, say, a FOSS library and then not writing any documentation is the best way of ensuring hardly anybody ever uses your code. Not writing at least half way usable documentation is a bit like spending tons of money developing a product and then doing no marketing because marketing is 'boring', you won't sell very much product. I always gravitate toward APIs that are well documented even if they have fewer features. Basically if I can't get a simple non-trivial example working in about 2-3 hours due to lousy documentation I'll start looking for alternatives. I'm not going to rifle through sources to figure out how to use an API unless I am forced to.

    --
    Only to idiots, are orders laws.
    -- Henning von Tresckow
  94. Re:Great but by SuricouRaven · · Score: 1

    In this particular case, the two are indistinguishable.

  95. Apple IOS Docs by coinreturn · · Score: 1

    I've found the Apple IOS and Objective C docs to be fantastic - well organized, with search, examples, and you can link to them in your code by clicking on a method call. And if you want a tutorial, Stanford has FREE iTunes courses about programming for IOS.

  96. Analysts/Writers first fired in economic downturn. by realsilly · · Score: 1

    Those folks who write documentation for a living know all to well that when there is an economic downturn, those individual who write documentation or gather requirements are the first ones on the financial chopping block. Management is always looking to slash budgets, and they see people who write documents as non-essential to projects. In the end, they prove to be invaluable.

    I used to work for a company that was converting there efforts in a Brick and Mortar solution to increasing their market reach, but to do so they were required to have all departments have documentation up to a CMMI Level 2, and in one year of their pursuit they established a Brick and Mortar solution. This company is steadily gaining market value and shares and they do it in part due to extremely good documentation.

    Good Documentation is one of the key reasons the Space Race in the 60's was so vastly successful. They documented everything.

    --
    Life takes interesting turns, but the most interest is when you're off the beaten path.
  97. also try to code so you don't need to document by RobertLTux · · Score: 1

    1 in when writing the code always try to put needed libs for a compile in a logical place (hint where it gets normally installed would be good)
    or if you have to put them somewhere odd then dump a directory listing into a file and build the docs from that. (Hi to marc from the MakeHuman project)

    2 make the builtin defaults the most common action to cut down on the number of CL flags needed
    (an archive tool should Compress a list of files/folder to a file named after the folder its in and Decompress (to a new folder) any archives it is passed as an argument. as an example)

    3 in all things be discoverable (ballon tips and proper labels are very nifty

    4 HAVE A LOCAL COPY OF THE DOCS INSTALLED WITH THE PROGRAM not everybody has a 24/7/52 internet connection.

    5 use Video as little as possible in your docs (and for the Love of The Divine Please do a proper job in making the video a 20 second task should not have a 15 minute video because you rambled on about "stuff") and post the Script for your videos so folks can download your docs.

    --
    Any person using FTFY or editing my postings agrees to a US$50.00 charge
  98. And somebody who knows typography by Anonymous Coward · · Score: 0

    Also don't forget to have at least one other assistant with some graphics skills, particularly that in typography and desktop publishing. Not just as one more set of eyes for proofreading, but to improve legibility in layout of the document in other ways. (Particularly true if it gets printed on dead trees.) There's nothing like weird page breaks, orphan text, incorrect chapter/section/index information and page numbering, or poorly aligned or misplaced tables or illustrations, which can make otherwise well written documentation look very sloppy and amateurish and harder to follow than it should be.

    Yes, it's more work going from Word to InDesign (or Libre Office to Scribus) and doing it right, but it's well worth it when the .pdf actually looks good. Nicely planned layout and good publishing practices also the reason why people are willing to pay money for Peachpit or O'Reilly books, even when similar information can be found for free.

  99. Re:Writing documentation is boring and tedious. by DL117 · · Score: 1

    Agree or disagree, modding this as troll is so inexplicable, it spurred me to metamod.

  100. Re:and what does the kama sutra have to do with th by SoothingMist · · Score: 1

    One sees WTFM a lot. It is usually said by people who do not have the time to understand and respond to user questions about the material they are reading in the manual. The WTFM attitude in "user forums" that companies deploy to replace staff help desks is one reason for me to reject the product as unsupported. When I investigate a product I do check on what assistance is available. It is amazing to me how few companies provide good support to their users. I have even read company staff posts that belittle product users when they do not understand something. Another thing I have found is that good companies with solid documentation and user support sometimes get bought out by larger companies who then treat the purchased company as a cash cow. As a result, documentation and support dry up. I have dropped products as a result of this behavior. I guess some companies actually believe their product is so unique that there are no alternatives. Such is never the case. Although worthy alternatives take time to find, they are available.

  101. It's not always easy to document by msobkow · · Score: 1

    Sometimes documentation is difficult to write because the concepts explored by the software are difficult to explain in terms other than rewriting the code as English algorithm descriptions, which aren't particularly helpful.

    My documentation for MSS Code Factory is such a case. I've provided high-level documentation of the GEL syntax and underlying object hierarchies, but to actually apply that knowledge you need to get your hands dirty and play with the tool. There is no concise way to explain how to use it, but there are thousands of lines of examples showing you what to do to make it go.

    The basic input itself (the XML Business Application Model format) is particularly terse on the documentation, because it's intended for use by someone who'd want to integrate the tool with an existing design or UML GUI, or who's willing to write raw XML. It's not a "pretty" tool with a GUI interface, and the lack of a GUI puts a lot of people off.

    But the goal of the system never was to write a GUI. It was to provide a back end code manufacturing tool that could be integrated to existing projects that already tackle the work of a GUI. Maybe some day I'll have time to work on a GUI, but if anyone is waiting for that to happen, they may as well give up on my tool because that won't be happening for a year or few.

    --
    I do not fail; I succeed at finding out what does not work.
  102. Writing docs helps find where products are weak by Kazoo+the+Clown · · Score: 1

    Take tor for example. I'm interested in secure and/or anonymous surfing, but have no particular need for it at present. I recently thought it might be fun to throw tor on a machine and try it out. It soon became More-Trouble-Than-It-Was-Worth. Documentation was horrible, but so was the ease-of-use. The product needed more usability improvements than it needed better documentation, but it needed that too. It's been my experience that just about any product that includes encryption is suffering from a major handicap. I know there's no such thing as "painless" encryption, but if non-techie nerds are ever to use it, it must be comprehensible, and far easier than it currently is to use. And bad documentation is not a good start-- good documentation will help show you where the product needs usability improvements.

  103. Just One Symptom of a Larger Illness by Rambo+Tribble · · Score: 1

    Support for many kinds of products has all but evaporated in recent times. Whether in the form of software documentation, product warranties, or parts availability, the trend is trim any function or service that doesn't generate a direct profit. We are encouraged to think of products as black boxes, and when they don't work, well just don't hold it that way.

  104. Sphinx, pydoc, POD, et al fail at man pages by Anonymous Coward · · Score: 0

    There's no way, other than just replicating the entire bloody thing verbatim, to define and format a decent man page with the given tools.

    You have to write after reading what needs to be IN the man page what is to be put in the man page. Worse, much of this is actually duplicated (or triplicated or quadriplcated) from elsewhere and you have to ensure they are all synched.

    Take the options for a start.

    There's the synopsis which needs the options written down for use in the man page. There's the usage line for a "-h" help option on the command line which needs the same information in it. Then you need to pass this on to getopt (or ArgParse, or whatever new and improved(tm) option parsing script you have in your system) in another format to parse those options again.

    Change one, change all.

    But the name of the program and purpose? You have to write that in as a man page section AND as maybe the docstring (in python) so that the IDEs can pick it up. Duplicated info again. Several people (including myself) have written scripts to try and improve this situation for our workplace, but nothing package-supported results.

    There's no definition of how to assert the sections in the man page like examples. Or "See Also". And so you have to write this info out as a specific step.

    But if you write it in the given paradigm of Sphinx or POD or whatever, then you cannot integrate your attempt to keep the getopt options, help and synopsis set in one place included. I.e. you either write the entire thing out or "roll your own" process, duplicated and error prone effort for whose benefit?

  105. You need a design spec from the users first. by Anonymous Coward · · Score: 0

    And users are pretty crap at telling you what they need. They're better at telling you what they don't need, but any time you get a half dozen of them to ask for features, you'll find every point pretty much has two contradicting requirements from different people.

    They more often agree on what they don't want.

  106. Real Documentation by prefec2 · · Score: 1

    There are some prinicpals for real good documentation. My list my not be complete (so do not hessitate to add points), but as a starter:
      * Documentation should explain why someting is not how. The how is part of the source code and its inline commentary. Example:
          While the interface FileAccess may have the followin form:

    public interface FileAccess {
          public void open(String filename, FileOptions options);
          public byte buffer[] read(int size, int records);
          public void write (byte buffer[]);
          public void seek (int position);
          public void close();
    }

    There should also be a note that, you only can read/write if the FileOptions object set the flag for read/write. Furthermore, the language the interfaces speaks is: (open,(read,write,seek)*,close)* so read before open is an error. This is the documentation of the interface on code level. However, the documentation why it is, is missing. While it might be obvious what a file access interface does (because you know or think you know the domain of FileAccess), it is still required to describe the why and the domain as such.
      * Documentation (especially design documentation) should be written before coding. Documentation written by coders after they completed their work, normally just describes what it does, and the context, domain and the why is missing. If you do not know what to write in the documentation, you are not through with solving the puzzle you try to implement.
      * Fix documentation after the implementation. Humans tend to forget something, which they find out writing the code. Add that stuff to the documentation.
      * Your documentation should start with a requirement or a feature of a requirement and be traceable to your code fragment.
      * Documentation should state which concepts are used. For example: if you use a factory, call it a factory, tell in the documentation why you used a factory and what domain it belongs to.
      * Do not bloat your documentation with bla bla, in many cases a bullet list is much more helpful than two or more paragraphs of continuous text.

  107. I'm a writer and programmer, where do I start? by Anonymous Coward · · Score: 0

    I'm a programmer, but also a writer. I'd love to be a technical writer, but don't know where to start. I'd love to build a career out of - oh, wait, no one will pay for technical writing. I tried writing a technical book in the late 90s, and made pennies per hour. I think I would have made more collecting scrap metal from people's recycle bins. I'd love to volunteer for ... something. All the obvious things have books already, because I have read them. There's already enough books on C++, Linux, Python, Android, etc to build a wall the size of the Hoover dam. There are a lot of exotic technologies I don't understand that I won't be writing about. So just point me to where I can start, and I'll be writing. You do want LaTeX source, right? No? HTML? No? Wiki - you're not serious.

  108. Teaching is hard, Docs are hard to write by handy_vandal · · Score: 1

    Agreed.

    I teach web design at a technical college -- have been doing so for twelve years -- and I can affirm, from considerable personal experience, that the effort involved in writing lectures notes (documentation) for other people is profoundly easy to underestimate, profoundly difficult to get right.

    Writing for oneself, it's easy to believe that one's writing is effective.

    Writing for others? For a mixed audience of semi-technical and non-technical laymen? That is tricky: in my experience, writing for anyone other than myself is usually more difficult (and time-consuming) than I expect.

    --
    -kgj
  109. Unreal Engine 3 by handy_vandal · · Score: 1

    Whoa dude, better pump the breaks ... Unreal Engine 3 is a rockin' fine gaming engine!

    ... Except when the editor crashes during lighting compile ... then it's a piece of worthless shit, indeed.

    But when it's great, it's great! Check out my maps: handyvandal.com.

    --
    -kgj
  110. Need more conceptual doc by justfred · · Score: 1

    I'm learning to use Twitter Bootstrap, and the documentation is really sparse, so I turn to Google to find me other people's examples of, in my case, how to implement site menus.

    The biggest problem I find is companies that jump from "here's how to install the software" to "here's an exhaustive list of all the functions", and a few sample apps, without delving into conceptual issues like architecture or implementation. This is where the O'Reilly style documentation helps, as they step through the product conceptually rather than the functions alphabetically.

  111. From the gawk manual... by Anonymous Coward · · Score: 0

    My favorite line about documentation, stolen from the front page of the gawk manual:

        "Write documentation as if whoever reads it is a violent psychopath who knows where you live."

  112. Re:Great but by jo_ham · · Score: 1

    I find this an odd point of view given Apple's considerable effort and waste to improve the "un-boxing experience."

    What waste in that context? They have spent the last few years steadily reducing the packaging of each product while still attempting to maintain the "experience".

    Every product they produce has had the packaging reduce in size and complexity and increase in ease of recycling. They have virtually eliminated (but not entirely in some products) expanded polystyrene and they have reduced the wasted volume where possible to decrease shipping costs.

    What waste are you referring to?

  113. Oh let me begin by Anonymous Coward · · Score: 0

    I have been reading a book "Beginning Drupal" by Wrox press. Its supposed to be for version 7. ITS A JOKE! They went to press about 18 months before Drupal 7 was in feature freeze. As a result, when it says 'click here' they really mean 'fill in that box that we aren't telling you about, click that other button that we aren't telling you about, and then a new screen comes up, some of which we will tell you about. Its also all about code examples that simply don't work (perhaps they worked in a previous version?). Debugging this book has been a bitch (and I'm 17 chapters in, and have lots of notes on nearly every page). Worse, there are syntax and grammar issues in the written text! The errata for this book is 2 paragraphs. Its worse than a joke! It points out one of the problems of OSS/FOSS. Since things are sometimes moving so quickly, documentation is almost impossible because things change faster than the documents can keep up (although in this case, they jumped the gun and screwed up royally). I try not to buy documentation in hard copy form if I can help it. Its easier to delete/toss a CD or pdf.

  114. My take on this... by kmoser · · Score: 1

    Writing specs and manuals is fun and useful. You might even call it The Joy of Specs.

  115. Re:Great but by Anonymous Coward · · Score: 1

    Are you kidding me? The packaging for most Apple devices is as minimal as you would wish. Compare, pound for pound, the amount of packing, plastic, manuals, and other crap you get with a typical phone, laptop, or PC, and you'll find that Apple manages, in all cases, to do more, with less, than any other manufacturer. Examples follow:

    iphone packaging

    macbook air packaging

  116. Not even the big companies document correctly/well by PurplePhase · · Score: 1

    Whether it is Microsoft's inability to write anything coherent or touch on anything but the simplest tasks,

    or IBM's inability to correctly identify or link to the types of information available on their website

    or Apple's absurdities with documenting or not documenting anything of value, especially when they put out a new version of software or APIs...

    Java-related firms, especially Spring Source and the JSF people are crap-tacular as well.

    No, they've proven that no one knows how to document. Or if someone does, they're keeping it to themselves.

    Just as with any other venture, these companies get away with as little cost as possible. "support" for developers or users are forums - and there are some good forums/moderators/admins/support people on them.

    With software it is usually even worse: the comments about alpha-geek status are true for a couple different reasons. Linux is a great example of no documentation - that's a reason why the last decade has been spent making it user-usable. Because they didn't want to create a manual that is good for that single version (and would be what, 10,000 pages?).

    Too many times when someone does document something - whether book, forum, blog, etc. - they don't give enough context: VERSION OF THE SOFTWARE is the most key part almost always missing. Date of posts is also very important yet rarely included. Larger context...

    And it is always a balance of covering the generalities or covering the specifics: do you want to know how it works or how to use it?

    I think video games set the pace: they gave up on including manuals (typically altogether) to let book publishers create and sell more products. In a way this makes a lot of sense, especially when the UI/game complexity began to outstrip the ability of a single person to aggregate and correlate all that data. And video games typically have simpler UIs and interact with less other systems than most software...

    YMMV, but I'm looking for the Documentation's One True Solution. Anyone have it?

    8-PP

  117. New way by cwsumner · · Score: 1

    The new way:
    Write the specs, manuals and test docs in parallel with the code, using the same versioning methods. Put dates and version numbers (not neccessarily the same as the code) on all documents, manuals and specs. Include them in the version-control systems.

    Leaving the manuals for last is hopelessly outdated. ;-)

  118. Because by Ol+Olsoc · · Score: 1
    Many of the same people who can write good code are horrible communicators

    When I first dove into Linux, I would ask quesions on the various forums. The answer would always come back:

    "Thats simple. All you have to do is...... (now the answer rockets into noob incomprehensible land)"

    Then if I were to ask for a clarification or further explanation, the person answering would get frustrated, and some times a little angry. And I noticed that happening a lot, not just with me.

    So yes, I was a noob, yes I had a lot to learn, but I did eventually learn, but mostly on my own. And after learning, it was obvious that the people who originally tried to help were just really bad at communicating.

    So it's almost like if you are going to provide a comprehensible manual, you'll have to have a trained commuinicator on the job too.

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  119. You're not understanding by tlambert · · Score: 1

    I have to agree with dkf here. I don't think you understand CI or how it is valuable. You don't need test first or any of that. Your code should always build. CI is a guarantee that the codebase will always build. A guarantee that developers are not committing broken code. From that vantage you can add lots of good stuff: Unit Testing, Style Reviews, Automated Bug Checks, Automated Dependency Updates... But, you have to start with a codebase that compiles and CI does that.

    CI doesn't actually keep broken, or worse, flakey code out of your tree, it keeps it buildable, and it keeps new code moving into your TOT. Buildable isn't the same as working/not flakey.

    The Mozilla project nearly died under the weight of "buildable, but not working", and it's one of the reasons so many SourceForge projects fail: the elves don't materialize out of the woodwork to fix the bugs for you because they don't have a "mostly working" base from which to make improvements.

    It's very possible to get into a state where you commit code that is in fact broken/flakey but buildable, and not have a clear way backwards to working. This happened with the FreeBSD 5.0 schedule slippage for literally years because of stair-steps introduced by resource-based autoscaling of system parameters. Matt Dillon, who initially introduced the problem, and later realized his mistake after the fact, was unable to get the changes reverted, and eventually left and founded DragonflyBSD in partial reaction to the introduced instability. It boiled down to "if you had a machine with the same amount of RAM as the most active developers, things worked, otherwise if you ran up against a resource starvation on a scaled value, like number of open sockets, the OS becomes extremely unstable".

    Code has to be tinkerable for people to want to work on it, and if it's currently broken/unstable, it's no longer tinkerable, no matter how many times you successfully recompile it. At that point the barrier to entry curve rises exponentially.

  120. Examples by justthinkit · · Score: 1
    Almost all of the pages have a good description, an example, links to related functions, and a comment area where other people can extend it.
    .

    Examples are, have always been and probably always will be the weak area of almost all documentation because.

    - You _sometimes_ get _an_ example.

    - The example is probably trivial.

    - The example code is rarely functional (and is probably just a near useless code snippet that you could write based solely on the keyword's definition, above).

    The incomprehensible part of this is that the person writing docs could just search the mounds of code (s)he is documenting and pull _plenty_ of examples for each language keyword. And they would be providing better documentation if they _only_ did this (provided the examples were pulled from working code).

    In the early days (when dead tree docs were expected), the lack of examples was somewhat justified as it shortened the manual, but for decades it has been feasible to write manuals of virtually any size (i.e. 10 or 100 times larger than they are) and accomplish a heck of a lot more.

    I got so sick of manuals that I would just read the Error Codes section (or sometimes manual). Unless _it_ was well done I wouldn't even bother with the main manual, electing to just purchase a manual (after scanning through all the bookstore had on the subject).

    --
    I come here for the love
  121. Documentation: not just for coders any more by handy_vandal · · Score: 1

    Well said -- Mod Parent Up.

    Furthermore, it sometimes happens that non-programmers need to read code for a general understanding of what's going on. For example, a project manager might have to review code after a developer quits.

    --
    -kgj
  122. Separation of concerns by handy_vandal · · Score: 1

    Not all good coders are good writers. (Very few, I'm guessing.)

    Not all good writers are good coders. (Very few, I'm guessing.)

    It take a whole village ....

    --
    -kgj
  123. Re:Writing documentation is boring and tedious. by RockDoctor · · Score: 1

    Writing documentation is boring and tedious. (Score:-1, Troll)

    'Nuff said.

    And it is ABSOLUTELY essential to product uptake and use.

    That said, I've been nagging the 50-odd users within my employer of our product (I don't know or care how many sales there are ; many, many more.) to bloody well document their code contributions in the macro language. Out of those 50, and adding the development team (about 10 coders) and our sub-contracting division (another 10 users), to the best of my knowledge I am still the only person who has ever written any documentation for their code.

    Which pisses me off. But short of sacking someone, I don't see it changing.

    Personally, I think that it's an indication of a lack of pride in their work for people to be ashamed to write documentation and put their names for it.

    --
    Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
  124. Bad Translation by handy_vandal · · Score: 1

    "... without causing frigidity or revulsion."

    Actual text from box containing sex toy made in South Korea.

    When I'm buying a French tickler, I definitely want it to not cause frigidity and revulsion, yes ma'am.

    --
    -kgj
  125. Re:Great but by jo_ham · · Score: 1

    Fine. Phone Apple and tell them you will supply the paper (recycled of course) and toner for the manual and you want a copy. I'll await their response with baited breath.

    What the hell are you on about? How does that even make any sense? They provide the manual in ebook form and as a PDF. If I told them I'd given them the recycled paper and the toner they'd simply say "surely that would be wasteful to send the paper and toner to us, only for us to send it back to you with words on when you could just print it yourself since you already have the paper and toner".

    I'm not sure what response you're expecting that will somehow prove your opinion that not putting printed manuals in the boxes of all their new products is somehow driven exclusively by profit.