Docs for Developers: An Engineer’s Field Guide to Technical Writing
apress.com
apress.com
* Tutorials - Learning-oriented - (practical/studying)
* How To Guides - Problem-oriented - (practical/working)
* Explanations - Understanding-oriented - (theoretical/studying)
* Reference - Information-oriented - (theoretical/working)
It passed through HN ~9 months ago [1], where
kaycebasques stated, "I think the key breakthrough with Divio's framework is getting authors to think about docs in terms of desired goals and outcomes: learning-oriented, problem-oriented, etc."Software engineers are the SMEs whose knowledge TWs are trying to crystallize into documentation; them being disengaged from the documentation effort is the same problem as business SMEs being disengaged from the software development process. And, for much technical documentation, developers of the software are also part of the target audience, as one function the documentation serves is knowledge preservation.
Docs need tech SME and target audience engagement for the same reason software needs business SME and user community engagement.
I actually think you should expect TWs to dabble in the prod codebase. At least for TWs writing docs for developer products. To write the Chrome DevTools and Lighthouse docs I frequently looked at the implementation to figure out how things actually worked. From time to time someone would file an issue on the docs and we would realize it's really just a flaw in the product that can be relatively easily fixed. I couldn't get engineers to prioritize the work but if I put in a fix myself someone would review/approve it. Rather than jump through hoops to update the docs to reflect this quirk, it was often faster to just put in a fix in the product itself.
> if you're going to hire people who are great technical writers, why would you have software developers (who are by definition not going to be as good TWs as the "real" TWs) also do it
As mentioned in the last paragraph, a difference between our viewpoints is that I do expect TWs to dabble in the codebase, so perhaps it's not a stretch to imagine how your business might improve if you also work in reverse (engineers dabbling in docs). In practice, the real "synergy" happens when engineers get into the doc creation process early and often. For example, a writer might create a very rough draft of a guide and ask the engineer to review for technical accuracy only. (Edit: as dragonwriter mentioned, it's often much more efficient for TWs to go to engineers for technical information, rather than deciphering it out of code, PRDs, etc.)). Or, have engineers write the very rough draft themselves and have the TW turn it into a polished document. Another approach is when the engineer is very motivated to improve their writing, and they take on writing a doc, and the TW works with them step-by-step to polish it into a usable doc. My hunch is that for any given org, you'll only have a minority of engineers who want to improve their writing like this, but when it happens it should be prioritized/rewarded/encouraged. One area where it might make sense for engineers to mostly own the docs is API references. There should be an expectation that any changes to the API should also require a doc update. Another useful expectation would be to have engineers review docs after making a change to the product and make sure the required documentation update is at least logged as an issue somewhere. Over time you tend to see engineers engaging with TWs more substantially ("I was reviewing the doc for change X and noticed that the overall organization of the guide seems a bit off...").
I'm not arguing that engineers should take on all the docs work themselves, just as I'm not arguing that TWs should take on all major software development. But from my experience there's a lot of benefit to having each role systematically take on a bit of ownership of each other's domain.
Learning to write documentation (which is really just trying to write them over a long period of time) is a skill that improves your overall communication skills. Devs should want to improve those skills (as everyone should), so they should want to write at least some docs.
Developer docs have a lot of conventions and it's useful to have them written down.
I've been applying the book's advice this week on my hosting platform's docs. For example, there's good advice for an information architecture, and the different content types to have it in it. The book's an easy and relatively quick read.
If we consider a documentation system, maybe with guides, references, etc ... at minimum I would expect developers to clearly document APIs, database tables / schemas, contracts, and protocols.
A good example of developers not doing a good job here is the Android reference Javadocs... and I don't think this is the domain of technical writers.
I think this is technically true, but I tend to think of it more like "Attempting to write clearly will lead to clear thinking". It's hard to be sure you're thinking clearly until you've attempted to communicate it precisely.
The $29.99 is more than reasonable as a price for the book. But who would be looking to spend the same price and receive only a chapter? Seems almost like some sort of trick to hopefully get a customer to unintentionally buy only a single chapter.
- Some restaurant menus will have 1-2 incredibly expensive entrees or appetizers. They know the volume on these items will be low, but they make other items seem less expensive by comparison.
- The most famous example is how the Economist did pricing for their online and print offerings -- The offered Online-only for $60, Print for $125, and Print + Online for $125. Obviously the Print-only option makes no sense, it's just there to make the Print + Online seem like a better deal, and push you away from the cheaper $60 offering. A less pop-up filled explanation is here: https://cxl.com/blog/pricing-experiments-you-might-not-know-...
In Apple's grand, glorified vision that should be the only one you need.
It's trivial to de-drm and convert a lot of ebooks.
You need Calibre (free/open source, gui [1]), its DeDrm plugin (free/open source, gui [2]), and its KindleUnpack plugin (free/open source, gui [3]). There's a guide [4], but the toolchain is all point/click, not a hassle at all to use.
> The DeDRM plugin handles books that use Amazon DRM, Adobe Digital Editions DRM (version 1), Barnes & Noble DRM, and some historical formats. The Obok plugin handles Kobo DRM.
For kindle books, it'll be less hassle over time if you install the Kindle app on your not-phone, not-tablet and just never update it. It'll just be a matter of import click + browse to the Kindle app's data folder and pick the most recent item after you buy one to instantly de-drm it and convert it to Epub. Amazon doesn't force upgrades of the app presently, and newer DRM schemes won't be pushed to you if your version doesn't support them.
2. https://github.com/apprenticeharper/DeDRM_tools/releases
3. https://github.com/dougmassay/kindleunpack-calibre-plugin/re...
4. https://www.epubor.com/free-kindle-drm-removal-calibre-plugi...
All of this is very well maintained and very well presented by the calibre community. Converting an Amazon format to Epub loses nothing in terms of functionality or aesthetics, the resulting Epubs in iBooks look identical to the drm versions on Kindle, and iBooks syncs notes/highlights across devices in non-drm Epubs just like Kindle does with its book formats (sans the public sharing of notes/highlights of course). The ability to embed your own metadata once the drm is gone is a nice plus as well.
I remember reading a while back that Old English and Old Frisian would have been mutually understandable. Although in fairness I doubt most Dutch today would follow a conversation in Frisian.
Or maybe I misunderstood that? I'm Dutch, so who knows...
In a managed SaaS installation, the customer would be paying for the functionality of, say, docusaurus, but the company would provide and maintain the dependencies. It's the difference between paying for a server to run a version of mysql you specify and paying a service to run mysql and keep it in a known good configuration while the customer is able to use mysql.
I could actually just install it locally, do whatever I want, generate the static files, and add it to my project. But I will have to maintain the installation (for a language that I don't use), keep it updated, maybe fight with npm for sometime, and also being familiar with Docusaurus itself.
And I prefer a service focused on this problem, than using a general (even if easier) solution like Netlify.
At the end of the day, I think I will do what you said, because that service doesn't exist now :)