I've been writing a lot (and I mean a whole lot) of JavaDoc lately. It's all for the new Ricebridge product, to be announced Real Soon Now.
One of the things that I like to do with my components is to document pretty much every method. This really makes things easier for users as you can grab usage information out of context just by reading one method description. So it's a big part of what makes Ricebridge components special – pretty good docs.
The reason most JavaDoc documentation is not very good is that it is a real pain to write. Technical writing in general is very hard. It's one of those things that "disappears" when it's good. You only notice bad documentation. Sun is quite good at it. But in fairness a lot of their documentation is still fairly sparse. And don't get me started on most open source Java components (even my own!). There's just not enough payback to really put the hours in.
But for paying customers, you just gotta do it. It's part of what people pay for. I certainly expect proper and complete documentation with anything I buy. I am often disappointed, but when the documentation is good it really makes a big impression on me. So that's why I have to document pretty much everything when it comes to Ricebridge components.
Right now, I can do this myself. It's time consuming and hard work, but it still makes sense to do it myself. However, I am beginning to wonder how the documentation process can be optimised. I'm sorry, but you can't just throw technical writers at it. First of all, it's not usage documentation in the traditional sense. We're talking hard-core techie stuff here. Secondly, you really have to be a developer to have a feeling for the pain points. Thirdly, forcing developers to write creates a nice feedback loop that actually increases code quality. But still, we do need to actually produce something that describes all the salient information about a given method, in good writing. I'm thinking text that is of the O'Reilly standard.
So developers can't write well (as a rule), but they know the facts. And technical writers can write, but a deep understanding of the API is something they will struggle with. Where do we go from here? I don't know. I know there are some folks out there who can mix these disciplines. I know that a lot of technical writers would say that they are up to job. But I want to know how it can be done with ordinary people in a small company. That's useful. Star performers are not a real solution. How does the average developer/technical writer produce great API documentation?

















Especially for the kind of highly technical docs you speak of, collaboration between techie and writer is the key. The techie brings the technical know-how to the table, and the tech writer brings the whole range of skills that are essential in that profession: proofreading, editing, checking for usability and suitability to target readership, checking that the style and grammar are correct, ensuring a logical flow of information, etc. Actual writing skills are only one part of the value that a tech writer brings to a software company.
How to implement this in a small company? First, recognise the added value of a tech writer and be prepared to put your money where your mouth is. Then, find yourself a freelance tech writer - there are lots out there. Sit down with him/her and explain your needs. Be prepared to answer questions and have regular meetings. Collaborate as you would with any fellow-professional.
Posted by TechWriter (83.147.149.28) on November 08, 2005 at 01:32 PM GMT+00:00 #
Posted by Richard Rodger on November 29, 2005 at 08:39 PM GMT+00:00
Website: http://www.ricebridge.com #