This is intended to be a bit of a light-hearted look at what can go so tragically (and sometimes hilariously) wrong with open source documentation. There is a bit of a point, though, and that is that I’d like to hopefully go through some reasons why you might need to consider having a real life tech writer work on your project, and how you can actually go about making that happen too. But first, on to the funny …
Open source documentation usually sits somewhere on a scale in between bad and awful. It’s not just open source, though. Bad documentation is everywhere. A lot of the time it’s confusing, but sometimes it can be downright dangerous.
The irony here of course is that they’re attempting to make the situation safer, but have managed to make it less safe by introducing a spelling mistake, and making the sentence so complicated that you need to read it several times before you understand what they’re trying to say. Which is different to what they’ve written. Of course, by the time you’ve read it and gotten the message, you’ve probably already driven off the road.
There are some truly wonderful writing-related quotes out there, so I thought I’d start out with this one. Some of you might have heard of this guy. His name is Jerrold David Freeman, and he uses the pen name David Gerrold. Under that name, he wrote an episode or two of a little known science-fiction show call Star Trek. David Gerrold, in turn, has his own pen name, Solomon Short, who wrote some appallingly bad fiction, apparently, but otherwise appears to be famous merely for a few pithy quotes, this being one of my personal favourites …
“I’m all in favour of keeping dangerous weapons out of the hands of fools. Let’s start with typewriters”.
Of course, the point here being that there really is some truly awful writing around, which is interesting when you consider how much of it he was responsible for.
And while we’re talking about dangerous weapons. I guess even a typewriter would be dangerous if you held it like this. But we’re supposed to be talking about open source docs here, so here’s one from a set of developer tools for PHP:
“There are four ways to start a session. Two are wrong”.
Because, just as with the chainsaw example, there’s nothing quite like telling people the wrong way to do things.
It leads me to another one that I come across all the time in open source docs. This one is a little more subtle, but it’s also much, much more prevalent, so I’ve got a few examples here, maybe you can spot the common theme:
“simply open konsole”.
Well, I guess that’s easy enough, if you can find it in the menu. Actually, if we’re talking KDE, if you can find the menu.
“The easiest way to do this is to simply”
Not only is it simple, it’s also easy! Yay us!
“Simply download the patch here:”
You have no idea how many times I’ve clicked a link like that either led to a page with a list of patches longer than a Tom Clancy novel, led to a page with no patches at all, or led to a 404.
“Simply type in the following commands”
Easy to type maybe, provided you know what all the switches do, understand all the parameters you’re setting, think in bash script, and have half a clue what you’re trying to achieve.
“Simply install the latest version”
Yeah, easy, why haven’t you finished that yet? And another one:
“Simply install the package”
Yup. Have you ever tried installing anything on Linux? If it’s not in the package manager, you’re on your own. And another one
“Simply install the package from their website”
As long as no one has moved it or changed it in the meantime. And my own personal favourite:
“<div class=”entry”> disappears entirely and <h3 class=”comments”> simply becomes <h3>”
Wow! Why didn’t I think of that! So simple!
Another quote, this one from Edward Gibbon. He said this many years before the concept of open source existed, but his words pretty much sum up many open source writers:
“Unprovided with original learning, unformed in the habits of thinking, unskilled in the arts of composition, I resolved to write a book”.
In open source, we all jump in and do what needs to be done, regardless and sometimes despite where our skills might lie. We’re all being forced to adapt to our environments in strange ways, stretch our skillsets, and do things we would never in normal circumstances do. So open source development tends to mean we all step in and do what needs to be done, but the main problem with that is the documentation isn’t recognised as “something that needs to be done” until fairly late in the piece. It’s at that point that someone realises that there’s a hole that needs filling up, and so some random person will be asked to step in and fill that gap.
Of course, the other problem that’s present in open source documentation is that of the amateur, and this doesn’t just apply to writing, either. People come to open source for a variety of reasons, but one of the main ones is to gain experience in their field, or to create or contribute to something that they can add to their portfolio. And I’m no stranger to this either, I frequently recommend contributing to an open source project as a good way for potential writers to start out. The problem with this of course is that in some projects, you end with a situation where the seasoned writers are burning out, getting run over by busses, or – heaven forbid – busy with actual real careers where they get paid real money and everything, and the majority of the grunt work is being done by people who – like Mr Gibbon – really didn’t know what they were doing. Not to say it’s a bad thing having new writers on a project, but like all the good things in life, it needs to be in balance. It’s no good having forty-seven amateurs and only one person who actually knows what’s going on, especially if it’s not a full time job for any of them.
In certain professions, it is natural to assume that the people practising them are skilled professionals. Doctor springs to mind, as does actor, and anything that involves sharp or particularly heavy machinery. Or pipe wrenches. Most people could at least have a good guess at what qualifications you would need to become a lawyer, a teacher, a plumber, a solar panel installation specialist, or a computer engineer.
But writing is still very much a dark art. And while technical writing certainly doesn’t have the mystique of, say, literary fiction or even a good horror writer, it is definitely considered a black box in many ways. And that, right there, is the problem. People don’t understand the skill required, the techniques employed, the training we have, even though we see product of writing work all the time. This, unfortunately, tends to mean that people figure it’s easy, and anyone could do it.
So you end up with a situation where the documentation becomes something of a hot potato. Everyone knows it needs to be done, nobody wants to do it, eventually it lands on the one person who was stupid enough to admit to either knowing a typesetting language, having some felicity with a word processor, or once having had a job where they sat next to someone who had to do some writing.
Basically, we’re surrounded every day – not just in open source – by stuff written by people who barely know how to string a sentence together. And it’s not just about choosing the right ‘your’ either. It’s also about organising the information in a way that makes it … well, informational.
The next quote is from one of my favourite authors. His name was Eric Blair, but he was better known as George Orwell. He’s most famous for giving us the notion of Big Brother, but he also left us with some fabulous writing advice. His most famous writing advice was given in 1946 in the form of an essay called “Politics and the English Language”, which is where this quote also comes from:
“In certain kinds of writing … it is normal to come across long passages which are almost completely lacking in meaning.”
And while this may well have been true in 1946, unfortunately no one must have been listening, because it’s only gotten worse.
This is from a ZDNet article that was written about a product I’m currently writing for, it says:
“CloudForms, which is based upon the company-sponsored DeltaCloud project that is now part of Apache– offer sophisticated resource management, application deployment services and Infrastructure-as a Service offerings that help IT adminstrators implement private and hybrid clouds”.
It doesn’t end there, they go on to say:
“The platform consists of a cloud engine for high level automation and abstraction services across multiple virtualization hypervisors and virtualized clusters, an application engine and system engine for comprehensive application lifecycle management across multiple cloud providers and various Infrastucture -as-a-Service offerings including storage, messaging and high availability services”.
Basically, that is 88 words that are completely devoid of meaning.
I’ve left the typos in for your own amusement.
Which brings me neatly to my next piece of wisdom, this one from the web comic author Randy Milholland (Something Positive), who said that
“Typos are very important to all written form. It gives the reader something to look for so they aren’t distracted by the total lack of content in your writing.”
Which could easily explain most of the Register’s articles these days.
So let’s explore this problem a little more. In order to solve a problem, though, we need to define exactly what the problem is, and that’s where open source makes it difficult, because open source encompasses much more than just Linux, and one solution is never going to apply in all situations. So, let’s take a look at the issues. There are of course two broad types of open source project:
There’s the cathedral type, where you have some piece of software that’s been developed internally by some company and then released as open source, or the flip side of that is the RHEL model, where they branch an existing project, which is then worked on internally and released to the public again.
Then you have the bazaar type, which is what many of us tend to think of automatically when we say “open source project”. This is where some teenaged genius has a brilliant idea and then somehow convinces everyone else it’s brilliant and they should contribute to it as well.
So of course, I can go on at length about how documentation is handled in the cathedral version. In Red Hat’s case, of course, we hire people, train them, and then get them to pump out documentation. For the most part, what they pump out is pretty good, but that’s to be expected when you’re putting effort in to finding and hiring the people best suited for the job.
Another interesting one that’s more or less in the cathedral category is Libre Office. They’re created by a seemingly endless stream of volunteers, but are extremely susceptible to the newbie problem. There are one or two community elders who know where everything is and what needs to be done next, and there’s a steady flow of people who drift in, do a few things, and then drift out again. It works, oddly enough, and if you’ve ever used Libre Office documentation then you would know that what they pump out is pretty high quality.
So let’s move into the bazaar-style projects. Of course one of the best ones for documentation is Gimp. Their user manual is a thing of wonder, and they also have an amazing array of tutorials. I haven’t had much to do with the gimp docs community, but as far as I know they have a relatively tight knit group of core documenters, which says a lot about how having a core group of experienced writers can really help your overall documentation.
And it’s also interesting to contrast Gimp to Inkscape. Inkscape has a really robust community of contributors, but they haven’t had the documentation focus that Gimp has. For some time they’ve had a fairly robust users manual over at the Floss Manuals site, though, so perhaps they just haven’t seen the need to expend energy on doing it within the project.
Of course, it’s important to remember when we’re talking about Gimp and Inkscape though that in terms of bazaar-style open source projects, they really are the cream of the crop. To get a more realistic view, let’s look at a little tool I was trying to get working not so long ago called ‘recordmydesktop’. This is their documentation page, so the fact that they have one is a good start. You might notice the last time it was updated though. 2008 in the case of the FAQ, and 2007 in the case of the manual. I won’t get started on the manual itself, because we only have forty minutes.
So we’ve more or less ascertained that most documentation sucks, and open source documentation tends to suck slightly harder than the rest. The next question then is, what are we going to do about it. If you have lots of money, the answer is easy … pay a professional writer to do it. Depending on who you get, and how much money you give them, you should end up with something pretty reasonable. Hopefully.
If you’re in this happy situation, then you need to go looking for someone who is a writer first and a technology nut second. There’s a fairly common thought, especially amongst the IT crowd, that you can’t document a product unless you have a full understanding of the technology behind it, and possibly several decades of experience in using it. Well, I’d like to stand up here today as living proof that that statement is a lie. Complete and utter fiction. The skills of a professional technical writer include being able to wade into a product they’ve never seen or used before, and be able to document it fully. That’s because professional writers are trained in the art of audience analysis. They approach the product in the same way as a user, which means they are much closer to the learning curve that your users will be going through, which ultimately helps them document it.
Let’s have a car analogy! Imagine you’re a mechanic, and someone has asked you to describe a car to them. There’s a reasonable chance that you’re going to start off describing how the car converts fuel to energy, which drives the engine. But if that person has never seen a car before, what they really need to know is that it is a box with wheels that can move people from place to place, before they understand catalytic conversion.
Of course, money ain’t always easy to come by, especially if you’re in the open source space. But that’s not to say that you can’t get writers to write for free. The good thing about writers is that they tend to have this undeniable drive to … well … write. It’s that drive that creates such wonderful things as NaNoWriMo. National Novel Writing Month – or NaNoWriMo – is where people sign up to write 50,000 words in 30 days. For free! I’m sure many of you think this is completely nuts, and I’m sure you’re probably right. But there’s lessons to be learned here, too.
The biggest lesson we can take away from things like NaNoWriMo is that if you give writers an attractive writing environment, they will come to write for you simply because it seems like it might be fun to do. And so this means you might need to put a little bit of thought into how you project is going to be documented, in order to be able to make that authoring environment as attractive as possible.
Briefly, I’d like to hark back to what I said earlier about Red Hat. Red Hat have about 90 people in the documentation group now, with more than half of them being writers, and the rest translators. And we haven’t slowed down hiring (Incidentally, if you want a job …). Why is it we can find so many writers? Well, a lot of it has to do with the environment we offer potential new writers. Can you see a pattern emerging here?
So here’s my list of great writing environment factors, whether you’re paying your writers or not:
Give writers freedom in the tools they use. This allows experienced writers to use tools they’re familiar with, and to adjust and improve the way they work with your documentation. If you have always produced documentation in a word processor, and you have a great writer come in and want to start working in Docbook XML or LaTeX, then let them. If they’re experienced enough to know what that is and how to make the change, they’re worth being flexible for.
On the other hand, provide a simple structure and process for producing documentation. Don’t make people jump through hoops to contribute to the docs. This helps new writers on the project get up and running quickly, and it helps people who are not proven writers get started. We all know how important it is for our contributors to be able to submit their first patch quickly and fairly easily, so that they get that hit of satisfaction and stick around. It’s exactly the same for writers. Make it easy for them to do quick tasks like fixing spelling and grammar mistakes, and maybe have an up to date list of smaller projects that need doing, ready for when new people sign up to the mailing list.
A robust documentation team will pick up many, many bugs for you. Within Red Hat, a large proportion of the bugs found in our software before it’s released, is found by the documentation group. And that’s aside from the other positive benefits that good documentation can bring to a project, including the single biggest factor, which is decreasing support calls. Make sure you acknowledge the work the documentation team does. Make sure that whenever you mention contributors or volunteers, that those on the docs team are mentioned as well. Don’t include them as an afterthought, or as a generic group called “the documentation team”. Name them! Make sure they know you understand and appreciate that the work they have contributed is just as important as the work contributed by developers. And this works to attract more writers too: if people see that writers are acknowledged and appreciated in a project, they’re more likely to feel as though they too will be rewarded by joining.
Recognise writers as experts in their field. If they tell you that something doesn’t read well, or they recommend that you choose a different way of expressing something, listen to them as you would another developer. You don’t have to agree with them every time, because that’s not the way the world works, but recognise that where you know how to sling code, they know how to sling words. And if they’re coming to you and saying that your documentation sucks, perhaps you should give them an opportunity to step up and make it better.
And finally, ensure you have a positive and welcoming community. I know this isn’t easy, but it’s probably the single biggest recommendation I can make. As a job classification, writing – even highly technical writing – does not suffer from the same gender imbalance as software development. Roughly half of your potential writers will be women, and roughly half will be from a background other than white and north American. And it won’t necessarily be the same half. If you don’t have a code of conduct, and if you don’t have a community that actively welcomes and supports women and minorities, then you are cutting down your pool of potential writers by well over half. And I don’t know about you, but that just seems dumb to me.
So I’m going to leave you with some final words of wisdom from the Polish writer Stanis?aw Jerzy Lec: “Advice to writers: sometimes you just have to stop writing. Even before you begin”.