The future of documentation at Canonical (2021)
ubuntu.com
ubuntu.com
BTW, I use Ubuntu. But for documentation I go to Arch.
1. Actual executable programs into reference
2. References into how-tos (combine references into larger useful tasks)
3. References into explanations (extract common concepts and data structures)
4. How-tos and explanations into tutorials
I think an AI tool that could automatically provide documentation (higher-level conceptual description of how SW works or operates) it could be more useful than Github Copilot.
Therefore, when code changes, the documentation might tell a different story.
Documentation-as-code (i.e. doctests in Rust or Go) alleviates some of the shortcomings by showing how to use an API correctly.
The beauty of Docs-as-Code is that parts of it can even be generated. I'm thinking Diagrams-as-Code where the system under test can be i.e. queried for capabilities.
I would ask not so much whether it has paid off or whether there was improvement, but whether it is paying off.
We're not done yet, we have really only just got started - it's a long-term project of transformation, that starts with practice and processes and people and will eventually show up in the documentation that's produced.
You can see evidence of it already in some of our documentation, it's the work of those engineering teams that have been spearheading the efforts, but it's all work in progress and we have a long way to go. (It's also all incremental work, so in general, there won't be dramatic big bangs to show.)
What you can't see from the outside are things like mindset, priorities and understanding of documentation - those are the things that will make for long-term success.
All the same, you remind me that it's probably a good idea to follow up that article with one pointing to some visible results.
Specifically I'm about to try using the apt section, and I'm not exactly sure how to translate the curtin docs to the autoinstall format... Especially when it comes to adding keys. And a comment about needing to use exact bytes for normal partitions in the storage section would have saved me a few hours the other day... :)
Oh, and thanks for linking to that Diátaxis framework. I might have use for that at work.
[0] https://ubuntu.com/server/docs/install/autoinstall-reference
Also the dumb trend of doing
command help subcommand
instead of command subcommand --help
it's annoying to have to back to the middle of the command just to add help there and get the manualIf you install via apt like normal, there's the man pages. Snap is canonical competitor with docker, ... Kinda
There should be a way to call snap in a way that gives you manual and it should be available via the usual cmdline tools
man git command
and that was eventually added "a b" -> "a-b" translation.While I agree with the larger point of your comment, I work around this particular inconvenience of going back to the middle of the command by using the GNU Readline (or Zsh Line Editor in Zsh) key bindings. The key sequence to go back by one word and enter the new "help" argument is:
command subcommand <Alt + b> help <Space>
In the Emacs/GNU Readline notation the additional key sequence can be expressed as: M-b help SPC
That's 7 extra key presses which is exactly the same number of key presses it would take to type and append " --help" at the end of an existing command.Now imagine you're 2 subcommands deep, smartass
Yes I know how readline works
The M-b keybinding is merely a workaround, not a fix. I believe the snarky remark was unwarranted. I didn't mean to doubt your knowledge of readline. Like I said, I do agree with the larger point you made in your comment. I too find the non-standard help trends inconvenient. My comment was meant for sharing a workaround that helps me to alleviate some of the inconvenience caused by these problematic trends.
(I've mostly given up making this complaint, and things have gotten better, but I couldn't resist on an article on the importance of better documentation.)
I would love a doc framework that was structured in a way to expose that and shame bad design. "How to FOO because we couldn't manage to make it easy for you" and "3 ways to work around our BAR" would be wonderful help topics. Topics indexed by known problem with the software. Etc.
Diátaxis could be used that way, but is not necessarily a forcing function.
And as far as user-friendly, I'm pretty sure users would appreciate the honesty.
don't need, don't have > need it, have it >> need it but don't have it
"don't need it, but have it anyway" can be better than don't-and-don't, but that varies depending on the quality of the documentation.
But not all users are well-versed on the purpose and possibilities of the tool, so documentation should at the very least give an overall view of those. And even experts need to read about the vocabulary, peculiarities and assumptions of how the tool works in that field domain.
Some of those explanation may be taught in-app through explanatory text and step-by-step guides (which are forms of documentation), but for tools more complex than a trivial phone app, documentation explaining the tool and detailing its primary workflows and use cases is a necessity.
The above two ideas are incongruent, but anyway, you do realize that system design can't be self-evident for complex systems? How for example would you have no documentation for the Linux kernel?
Either you're mis-communicating your point or not thinking of anything larger than tiny systems.