| Hello, I have got questions regarding documentation writing within a team of software engineers. Some context: I am a new project leader in the computing department of a medium-sized company. My team is 6 software engineers. We are building a new product, and I cannot get the team to write documentation - we need both an user guide and API documentation too. It is seriously lagging behind, for 3 main reasons I guess: * the product is a moving target, API is not 100% stable, no one wants to start something and have to redo it later * everybody in the team prefers to write new features and code than documentation * the release date seems "far away" (in 18 months) We follow a kind of scrum methodology, but it is not enough to have documentation stories to get nice documentation ;) So here are my questions: * how do you deal with developers writing documentation ? * are there some techniques that help ? * which tools do you use ? I am thinking of gitbook for user guide, and Sphynx for API documentation * is it a good idea to hire a "technical writer" to have a specialist writing documentation instead of software engineers ? * how does it work for open-source projects ? Documentation is sometimes really great, I would like to know the recipe :) Any help would be appreciated ! Thanks in advance. |
I do like writing documentation that I will use later myself. I dislike having to dig through the code of every tool I wrote just to check how it behaves, so I constantly reach for man pages and, in their absence, for HTML.
I'm in a happy position that all of my tools are later consumed by either programmers or sysadmins, so I'm certainly my own audience.
> * are there some techniques that help ?
A two-part strategy works for me for API docs: (a) use documentation generator (a JavaDoc descendant, like Doxygen, EDoc, or Sphinx), and (b) add docucomments to every function before even writing function's body.
After the (b) part is in place, once the programmer sees that everything else around has the documentation, he wouldn't want his part to stand out by looking raw and plain; or at least that's how it works with me.
For documentation about the tool usage, I use anything that fits with the project's workflow that generates TROFF (man pages). Sometimes it's Perl's POD, sometimes it's Sphinx.
> * which tools do you use ? I am thinking of gitbook for user guide, and Sphynx for API documentation
Sphinx, EDoc, or whatever I have at hand in the language of the project.
Sphinx can also be used for user guide. I don't know much about gitbook, but given how similar in their essence are all documentation generators (JavaDoc-like ones), it shouldn't matter that much if you went with gitbook, Sphinx, raw LaTeX, or a set of Markdown compiled to HTML. Choosing the tool is not the difficult part.