Why You Should Love Free Documentation

FLOSS Manuals فارسی

First draft of an article for publication:

Free software has enjoyed many years of support from the cultural sector. Artists and activists have often been active in promoting free technologies. Artists also often make a living through teaching and workshops centred on free technologies they use in their practice. Curators of exhibitions, symposiums and festivals have followed these themes and brought these issues into the public arena. Theorists have published and lectured about the need to use and develop software and hardware which is free. The support has often risen to the point of hyperbole. There were many years when every event seemed to be ‘open’ this or ‘free’ that.

However, it seems that the uptake of free software, despite the efforts, is very slow. Although most of the internet runs on free software (60% of web servers run Apache and 90% of Domain Name Servers run BIND), if we look at operating systems the share is somewhere under 2%  (1).

Free software, as opposed to free operating systems, does a little better with the current estimate for Firefox usage across all platforms coming in at something between 20-30% (2).

Still, this is very small. The user penetration of Firefox is an impressive achievement, but why haven’t other fine tools such as the Gimp or Audacity taken a similar “market” share?

And why, given that we all know how good free software is, that a wide variety is available and that it is free, as in gratis as well as libre, is the uptake so low?

The Free Software Foundation thinks the answer is quite simple :
“The biggest deficiency in free operating systems is not in the software—it is the lack of good free manuals” (3).

Many years teaching free tools (mostly streaming) have taken me to the same conclusion.

It’s not that there is no documentation. Often you can find something, if not on a developer’s site, or in a bookstore, then perhaps comments in a forum, mailing list, or maybe in a wiki somewhere. This seems to satisfy most geeks. Many ‘advanced’ users tell me this is enough. Google is their index, and they know how to use it to find solutions. The thinking is that when it comes to solving a problem in software, you aren’t the first to have the problem and someone somewhere has written down a solution to it. This is often true. If it isn’t true, then either you solve the problem yourself (by hitting your head against the wall until it works), or you find the appropriate IRC channel and quiz the developers. Even better…you’re using open source, right!? READ THE SOURCE CODE!

Well, I don’t know about you, but perhaps my brain isn’t big enough or I maybe don’t have enough time, or maybe, just maybe, I feel that I should not have to be a programmer to work out how to use software. Perhaps this threshold is a little too high and might be deterring users… y’think?

Free software should be well documented. You should be easily able to find out what a software does, what it doesn’t do, how it fits into the software universe, what the interface looks like, how to install it, how to set the most basic necessary configuration, and how to use its main functions. These things should be well explained and kept in a place that is easy to find.

The easier it is to access well-written documentation the larger the potential user base.

I have also often heard that it is simply not the case that there is a lack of documentation. There is a manual for $X! (replace ‘$X’ with your favourite free software). What do you mean!? $X has a great manual!

Well, I admire the effort put into the documentation of some free software. Unfortunately, however, it is seldom adequate.  The most common flaws include :

  • assumptions about the user’s knowledge are set too high
  • bad navigation
  • unexplained jargon
  • no visual component
  • proprietary (‘closed’) material
  • unreadable design
  • steps missing or unexplained
  • documentation is out of date
  • documentation is not easily re-usable
  • documentation is not easily modifiable

These mistakes are very common, and the situation is so bad it amounts to a crisis in the world of free software. I have made my own efforts to combat this situation butmore contributions are needed. Perhaps a clear summary of the basic issues would encourage others to contribute to free documentation projects.

Free documentation for free software

I sometimes feel this is too obvious a point to make. Documentation which is freely available and so ideologically aligned with the [free] software,  seems to me to me to be a natural match.

Practically, however, there are a few hiccups with this idea. Free software has developed a methodology and economy which free documentation lacks. The traditional method of making money in the manual business is to write a manual and sell it. To protect your interests, you use a standard ‘closed’ copyright notice. This is the ruling publishing model. Outside of this circle, you do the best you can voluntarily, and put the content online for others to access, where ever you can.

The Free Software sector has much better resources and models. Free software projects have a number of management tools available including sites like Savannah and SourceForge, and they have established working models. The financial model is much clearer too. Most obviously if you need to make money working on a free software project you get good at it and find a company that will pay you to work on it in-house or by contract.

Free documentation lacks all these components – there is no standard technical tool set, very few ‘communities’ of free documentation writers ,and less chances of being able to pay the rent if you choose to do create such documentation full time.

Finding a way to build these elements is critical to the evolution of a healthy free documentation sector, and, I would argue, to achieving the widespread adoption of free software. It is imperative that we find these models and tools, as closed documentation for free software contains a ideological paradox.

On another point – less ideologically and more practically speaking – free documentation is better argument than closed documentation.   The closed nature of proprietary documentation is a disadvantage: the ability  to update documentation at the same time as the software is updated is a huge advantage. It can thus be updated, modified, improved a la ‘many eyes make bugs shallow’, translated into your own language, or re-contextualised to better suit individual or organisational needs. Free documentation on these terms alone is a better argument than closed documentation, and when done well can be a tremendous asset to the uptake of free software.

Free documentation should be easy to access and easy to improve

If something can be improved then it should be able to be easily improved. Many free documentation projects inherit their technology strategy from free software development methods. These projects store their content in a CVS which means that you need to be pretty technically competent to be able to access the source material and contribute to it.

What this overlooks is that writers are not programmers. Writers have a different tool set, usually word processors, and do not have a familiarity with the typical programming tool set. To expect a free documentation writer to access content via CVS or similar tools is to make the same mistake as assuming the audience for your documentation knows more than they do. Setting the threshold for contributions so high means that many people that could contribute won’t contribute.

There is no need to trap content in CVS. All we are dealing with is text and images and there are plenty of tools that are easier to use.  I recommend a wiki with WYSIWG (What You See Is What Yo Get) editing – these are online tools that look and work like word processors except they are available anywhere you can get online via your browser. I personally don’t recommend using mark-up languages as even wiki mark-up is harder to use than WYSIWYG editors and a barrier to contributions.

Well structured
Many projects are now setting up unstructured wikis for their developers and users to use for writing documentation. Often MediaWiki is used (although the wiki used depends on the winds of software fashion). These resources can be extremely good, however, I believe unstructured wiki content with a contextual navigation system, is a poor substitute for well-structured content with a clear top-level index. Unstructured content is a good secondary documentation strategy, and certainly good for documenting the ‘nooks and cranies’ of sometimes archaic interface issues or strange hardware-specific conflicts, however, it doesn’t replace content that is designed to document the software thoroughly with a clear and structured flow.

Tell it as it is
I have found that documentation written by developers makes the simple mistake of writing how the software should work and not how it does work. Writing free documentation should not be done from memory or by those that cannot see the problems. Telling the user what is wrong with the software, what does not work, what could be improved, is absolutely necessary. It’s not bad-mouthing a free software to point out a quirk that should not be a quirk. It is far worse for potential users of that software if the user reads documentation that is inaccurate or which glosses over these issues.

Make it look good
Documentation should be attractive to read. Free software developers have discovered over the years that in order to interface with humans, software must look nice and allow the eye to easily engage with it. The same is true for documentation. Black text with blue links on a white background is not enticing. Embrace a layout than enhances readability but makes sure it also looks good.

Now we come to the bugbear. Quality. What is good quality documentation? Well, there are some mechanical benchmarks :

  1. no spelling mistakes
  2. set a style guide and stick to it
  3. make sure no steps are glossed over
  4. make sure the documentation is accurate

However, beyond the mechanical there is the subjective issue of quality. There is no solid rule: the best you can do is to get people to read the content and tell you if it makes sense. If you belong to a community of contributors then look to peer reviews.

FLOSS Manuals and the Pursuit of Funky Docs

It is easy enough to point out what is wrong with something and harp on about how it should be. It’s another issue to actually do something about it.

To resolve this, I am involved in a not-for-profit foundation called FLOSS Manuals. We are a community of free documentation writers committed to writing excellent documentation about free software. Anyone can join FLOSS Manuals and anyone can edit the material we publish. All content is licensed under a free license (the GPL).

When we started (the actual point of genesis is hard to determine but we officially launched in October 2007), there was, and still is, no good publication platform for collaborative authoring. Some may say that there are too many Content Management Systems already and surely, SURELY, there must be a CMS to meet our needs?

Well, no. The closer you get to identifying the needs of collaborative publishing systems, the further you stray from the functionality of most Content Management Systems. So we have hacked our way into the wonderful TWiki and developed our own set of plugins. TWiki has proven to be a very good platform for online publication. It has all the structured content features and user administration that make it a good shell for authoring collaborative content. What was missing, and what is missing from other CMSes is good copyright and credit tracking, easy ways to build indexes, and a nifty way to remix content.

However, we have remedied that now with our own custom plugins (which are available through the TWiki repository). There are still some things we need, in fact it’s quite a long list, but piece by piece we are turning TWiki into a publication engine. Currently, we are working on translation workflow features (also in plugin form).

So, the word ‘remix’ may have caught your eye and you may have fleetingly thought ‘remixing manuals?!’. It might not seem intuitive at first glance but there are a lot of very good reasons why manuals are excellent material for remixing. I don’t mean remix in the William S Burroughs sense of cut-up… we do cherish linearity in the world of free documentation. I mean remix as in “re-combining multiple chapters from multiple disparate manuals to form one document.” Doing this enables you to create manuals specific to your needs whether they be for self-learning, teaching, in-house training or whatever purpose.

The FLOSS manuals remix feature (http://www.flossmanuals.net/remix) enables the remixing of content into indexed-PDF and downloadable-HTML (in zip or tar compressed form) with your own look and feel (CSS). Now we have also added a Remix API. This means that you can remix manuals and include them in your website by cutting and pasting a few lines of HTML – no messy ftp necessary…

This part of FLOSS Manuals is new and in test form, but it works very well and the possibility for combining remix with print-on-demand is an obvious next step. It can be done now as print-on-demand services use PDF as their source material, but the trick is in getting it to look nice in print form…

Print on Demand
In addition to the free online manuals FLOSS Manuals material is also turned into books via a print-on-demand service. The books look very nice, having been tweaked to look good in print, and they are available at cost price (we don’t put any mark-up on the books so they cost what the print-on-demand company charge to produce and send to the buyer). This is pretty exciting and I hope that we will soon see FLOSS Manuals on the bookshelves of retailers: bookshops after-all are a very important promotional venue for free software.

I find that the books themselves actually get the idea of what FLOSS Manuals is doing very effectively to most people I talk to. Imagining a website is one thing, but handing over a book sparks the understanding and gets people excited. So books are an excellent promotional medium for FLOSS Manuals as much as for the software (it’s a symbiotic relationship after-all).

I imagine print-on-demand will play a bigger role in the future of FLOSS Manuals. There are many possible paths, but, in the end, it comes down to capacity and we are this stage a very small organisation. If you wish to get involved with this (exciting) part of our evolution then let me know…

Quality Control
Lastly, a word on quality. The manuals aim to be better than any available documentation (sometimes this is not hard as there is often no other available documentation!) Keeping this level of quality has some interesting issues when working with an open system. Anyone can contribute to FLOSS Manuals – it is completely open. You need to register but this is not a method for gating contributions, it is there so we can abide by the license requirements of the GPL to credit authorship. Additionally, credit should be given where contributions have been made so we also credit modifications in the manuals.

SPAM is an obvious issue with an open system, as is the possibility of malicious content. Incorrect or malicious information in Wikipedia might lead you to quote the wrong King of Scotland or may misinform yo7u about the origins of potatoes, but incorrect information in documentation might lead you to wipe out your operating system. So we separate the ‘back end’ – where you can write manuals – from the ‘front end’ – where you can read manuals.

Manuals in the ‘WRITE’ section (http://www.flossmanuals.net/write) are in constant development. However, the same manual linked from the front page will be in the ‘stable’ form. This is managed by some existing TWiki tools that we twisted together to form a simple one-step publishing system. It works like this – every manual has a Maintainer. A Maintainer is a person – a volunteer – that keeps an eye on that particular manual. Edits and updates carry on through the WRITE section by anyone that wishes to contribute. When the Maintainer thinks the manual is in good form and an update is appropriate, they push the ‘publish’ button and all the material is copied to the ‘front  end’ version of the manual.

This way, the reader gets stable reliable documentation, and the writers can continue working on those docs without the reader being confronted by half-finished content etc. It’s a simple and effective system.

How you can help
Good free documentation is a necessary component of all good free software. If you can’t program or don’t want to, but you love free software and want to help, then help make free documentation!

Knowing where to contribute is now easy! You can :
read manuals – http://www.flossmanuals.net
write manuals – http://www.flossmanuals.net/write
or remix manuals – http://www.flossmanuals.net/remix

We have a growing number of very talented contributors and Maintainers and good manuals available online, but we need more manuals and more contributors. Contributing is pretty easy, and if you would like to be a part of helping create good manuals, then register with the project (http://www.flossmanuals.net/register) and read our manual on FLOSS Manuals (http://www.flossmanual.net/flossmanuals).

Anyone can contribute. You can spell-check documents, tidy up the layout, suggest ways of improving docs, test/review material, design icons, write or improve any material. Contribute in any way that you can and you will be helping not only to make the documentation better, but you will be assisting in the development and spread of free culture and free software.