So there are lot of developers who write open source because they love writing code, feel passionately about open source, and want to increase their employment prospects.
But is there a similar community of technical writers? I've only known a few but if I asked if their idea of a good time on a Saturday was banging out some technical documentation they would look at me like I'm crazy.
Not the kind of mundane technical writing where one is merely documenting APIs, but where one is explaining stuff in a tutorial-like fashion or writing about cool new features.
Most people who write computer books must surely enjoy technical writing to some extent. (Would love to hear what motivates O’Reilly authors, if there are any here)
For me there’s something satisfying about writing something in Sphinx and seeing the beautiful final product on readthedocs.org.
I’m also the sort of person who feels a sense of satisfaction seeing my writing end up in the form of aesthetically pleasing LaTeX output. Aesthetics is unrelated to the writing process, but oddly it does seem to provide motivation for it in my experience. Also, producing a piece of writing makes me feel like I’ve made a creative contribution to the world, however small.
> Not the kind of mundane technical writing where one is merely documenting APIs, but where one is explaining stuff in a tutorial-like fashion or writing about cool new features.
API documentation is one area that really, REALLY needs the latter kind of writing. There is far too much Doxygen-generated "documentation" which says things like "int foo(int power): Does 'foo' with power set to 'power' and returns the result."
I normally write API documentation as reStructuredText directly in Python docstrings which are then auto generated via Sphinx.
Because I tend to write numerical algorithms, I also embed math via LaTeX tags. Sphinx converts them to MathJax which renders the math quite nicely.
The final output from Sphinx is beautiful (I use the Solar theme [1] for Sphinx). As long as I keep my docstrings up to date, the API documentation generates itself and does so beautifully.
I’m sure something similar exists for other languages but I would agree with you that most Doxygen docs are mechanical and devoid of the human touch (most only contain method signatures and non descriptive comments if they exist at all). They are also aesthetically unpleasant which affects their usability, which in turn dampens devs’ motivation to document their code (“why document if the final output is ugly and no one looks at it?”). I wonder if a better theme would help.
Mosra has put a lot of nice work into what is roughly a Doxygen theme (I'm not certain, but AFAIR it technically builds from the XML output and isn't a true drop-in replacement for the default theme), m.css, which you can see in action at https://doc.magnum.graphics/magnum/ and https://mcss.mosra.cz/doxygen/
These demonstrate, I think, that Doxygen isn't irredeemable--but the exception does also highlight that the ecosystem has some tendencies that aren't great :)
It does. I think you know this given how you phrased the last part, but I do want a mount a tiny defense of Doxygen, here: it's just as easy to write the same low-effort documentation in a simple comment, docstring, RST, markdown, docbook, latex, etc.
I think it's often a symptom of things like: just trying to tick the box (i.e. doc-building rules that only include "documented" members, satisfy a doc linter/coverage tool), and being too close to the code to imagine what will and won't make sense to unfamiliar users.
Oh, absolutely. Doxygen is a good tool - possibly TOO good, because it allows lazy devs to produce something that looks like documentation with almost zero effort. There are plenty of other ways for them to achieve the same goal, though.
I think your "trying to tick the box" cause is most likely, especially because that often results in "get the newbie to do it" or even "outsource it to India" where the person writing the docs has no idea what to write and so they just translate the function prototype into English.
You can definitely also get it from being too close to the code (or to the problem domain) - I looked up the help for a form in my new accounting package and the help literally says "fill out the form"! Super helpful when populating columns like "Amount".
Probably not a ton. But technical writers need resumes, too. Some of them might also be programmers. Or interested in transitioning into a programmer-writer.
I pointed someone in this direction on an hn thread a few years ago.
My educational background is in writing, but occupationally I'm primarily a programmer. I do some work on doc contributions, too. It's a nice way to give something, however small, back to a project I use but am not prepared to contribute code to.
I think it can also build naturally to more substantive contributions. People who did not write a system but have to understand it well enough to document it are well situated to ask questions that expose design flaws, write blog posts/tutorials that help you onboard new users, triage issues, help out on any forum/list/chat, and more.
If you look around at the github pages of a lot of the successful open-source projects, you'll noticed that there's emerged this pattern of well-written readmes that give you a great overview of the intent of the project and then how to get started using it. Especially for newer projects, the lack of such a page can be a death sentence. And then such developers start to write deep technical blogs that everyone starts sharing and following. And then they start going to conferences and giving in-depth talks. All it is to say, lots of people work on open source, but if you want to become known for your work, you must become good at technical writing.
> I've only known a few but if I asked if their idea of a good time on a Saturday was banging out some technical documentation they would look at me like I'm crazy.
I fondly remember a college class where we had to produce a software product, complete with documentation, over the course of the class. Groups were randomly assigned, and one of those on my team was a technical documentation major who immediately volunteered to handle all documentation tasks. It was awesome and made appreciate having such folks around at various points in my career.
But is there a similar community of technical writers? I've only known a few but if I asked if their idea of a good time on a Saturday was banging out some technical documentation they would look at me like I'm crazy.