SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Doc Like an
Egyptian
Dru Lavigne
Documentation Lead, iXsystems
SCALE, January 23, 2016
All the old paintings on the tombs,
They do the sand dance, don't you know?
If they move too quick (oh whey oh)
They're falling down like a domino.
Walk Like an Egyptian, The Bangles
Outline
Overview of documentation goals and inherent
difficulties
Introduction to Sphinx as part of an open
source documentation solution
Disclaimer: based on my experiences. While
from an open source perspective, discussion
also applies to proprietary documentation.
In Theory....Docs:
are published with each software release...
in multiple formats which suit the
needs/devices of that software's user base...
in multiple translations which match that
software's global audience...
and are grammatically and technically correct.
The Reality
Docs are incomplete or outdated (assuming
they even exist)
Docs are given lower priority than code
Noone wants to write docs / Noone reads docs
anyways
No perfect doc management solution exists
Incomplete/Outdated Docs
Software is a MOVING target with varying
release schedules
Outdated, unversioned docs are actually worse
than no docs
Need process for versioning docs, providing
revision control, archiving older docs, and
helping people find the correct docs for their
software version
I Get No Respect Around Here...
Cultural issue: docs are equally important to
code and both are equally important to Q/A
Know your audience and give them credit
(users actually want usable docs)
Train projects' question answerers to gently
point users to the pertinent section of the docs
and to create bug reports (or update docs)
Finding the “Perfect” Tool
Is its formatting language easy to learn or a
significant barrier to entry?
Are editors available which understand the
syntax?
Does it support the required layout? (code
excerpts, table of contents, glossary,
searchability, internal and external links,
images, charts, localization, warnings, etc.)
Finding the “Perfect” Tool
Dru's 1st Law of Doc Tools: the number and
quality of the outputs is inversely proportional
to the ease of the markup language
Dru's 2nd
Law of Doc Tools: the fewer the
number of doc maintainers, the higher the
number of desired outputs
Understand your audience and your project's
limitations
doc/odt
Good: WYSIWYG editor available to any author
Bad: templates are painful
Collaborative editing and tracking changes is
often a tangled mess of emails, editing conflicts,
or waiting for someone else to make their
changes
Outputs are limited and require various degrees
of cleanup
wiki
Good: entry barrier fairly low and syntax quick to
learn
Bad: no concept of ToC, content flow, or
versioning
If you build it, they don't necessarily come (except
for the spambots...)
Outputs are limited and typically require a lot of
cleanup; translation tools are clunky
Latex
Good: multiple outputs integrate well into build
and translation systems; can format into any
desired layout
Bad: very high barrier to entry as it takes a
dedicated time (and interest) commitment to
learn (and teach) the formatting language
Sphinx Features
Relatively easy-to-learn formatting language
Supports common outputs: HTML, PDF, ePUB,
LaTeX, Texinfo, man pages, txt, API docs
Provides a number of extensions such as
auto-numbered figures
Automatic generation of ToC, index, glossary
Sphinx Features
Source files are text and easily integrate into
existing revision control, translation, build,
and CI infrastructures
Fully customizable conf.py for controlling doc
layout
Several useful built-in builders (eg link
checker)
Sphinx Features
Several built-in themes and support for
custom themes; layout fully customizable
using CSS
Anything can be linked (figures, keywords,
headings, etc.)
Writers can use any text editor on any system
with Python installed (or issue git pull
requests)
Sphinx Limitations
Some odd formatting limitations require CSS
workarounds (eg bold italic)
Search SUCKS (and ironically there is a search
engine of the same name)
Documentation is limited and needs more
usage examples
Sample Text
Sample HTML Output
Sample Pootle Interface
Helpful Tips
Do you plan to convert existing docs or archive
those in current format and start with new
docs?
Open source converter utilities exist for most
formats, often mutliple utilities per format
Experiment by converting a small doc that
contains most of your formatting requirements
Helpful Tips
Expect to spend time cleaning up the
conversion
Is your goal to have the docs match a specific
software version? to have only one version that
is the latest and greatest?
What output formats are required? Versioned
PDFs? HTML on your project page? Built into
the software itself as a help system?
Helpful Tips
Review your code repository (you do have one,
right? if not, you need one!)
Determine the required doc versioning system
and where to store your .rst files
Update the README.md (or equivalent) with
instructions for authors to create their own doc
build environment
Helpful Tips
Review your converted docs and create a cheat
sheet that includes a list of the formatting tags
and conventions used by your project
Include any gotchas to help new authors
quickly get up-to-speed
Publish the cheat sheet (eg README.md in doc
directory of repo)
Helpful Tips
Spend some time playing with conf.py and
experiment with existing themes BEFORE
writing new docs as themes change the layout
Research, experiment with, and install
extensions that are useful for your docs
Determine how much layout customization is
required and who has the CSS skills for extra
customizations
Resources & Examples
http://sphinx-doc.org/
http://pootle.translatehouse.org/
github.com/pcbsd/pcbsd/tree/master/src-
qt5/docs/
github.com/pcbsd/sysadm/tree/master/api/
Questions
Contact:
dru@freebsd.org
URL to Slides:
http://slideshare.net/dlavigne/scale2016

Contenu connexe

Similaire à Scale2016

Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manualMargaret Eker
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting salonibansal21
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidaysBastian Feder
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_dealPaul Roeland
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?Ellis Pratt
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bbs3eedAlAli
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An IntroductionAkash Tandon
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty MarketBill Dubie
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liuStreamNative
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011Kristof Van Tomme
 
Taming the paper
Taming the paperTaming the paper
Taming the paperAshley Shaw
 
Academic Reference Management.pdf
Academic Reference Management.pdfAcademic Reference Management.pdf
Academic Reference Management.pdfKayla Smith
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project ManagementSemen Arslan
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?Markus Voelter
 
DITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingDITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingBruce Conway
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit TestJill Bell
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileMary Connor
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLScott Abel
 

Similaire à Scale2016 (20)

Docs as-code-missing.-manual
Docs as-code-missing.-manualDocs as-code-missing.-manual
Docs as-code-missing.-manual
 
Software for paper formatting
Software for paper formatting Software for paper formatting
Software for paper formatting
 
Why documentation osidays
Why documentation osidaysWhy documentation osidays
Why documentation osidays
 
Plog2014 doc the-new_deal
Plog2014 doc the-new_dealPlog2014 doc the-new_deal
Plog2014 doc the-new_deal
 
Markdown - friend or foe?
Markdown - friend or foe?Markdown - friend or foe?
Markdown - friend or foe?
 
Saeed al ali 10 bb
Saeed al ali 10 bbSaeed al ali 10 bb
Saeed al ali 10 bb
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
APIs And SDKs  Breaking Into And Succeeding In A Specialty MarketAPIs And SDKs  Breaking Into And Succeeding In A Specialty Market
APIs And SDKs Breaking Into And Succeeding In A Specialty Market
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Dita documentation and open source sfd szeged 2011
Dita documentation and open source   sfd szeged 2011Dita documentation and open source   sfd szeged 2011
Dita documentation and open source sfd szeged 2011
 
Taming the paper
Taming the paperTaming the paper
Taming the paper
 
How to code
How to codeHow to code
How to code
 
Academic Reference Management.pdf
Academic Reference Management.pdfAcademic Reference Management.pdf
Academic Reference Management.pdf
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project Management
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
DITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel PublishingDITA,Single-source, Multi-channel Publishing
DITA,Single-source, Multi-channel Publishing
 
Cs121 Unit Test
Cs121 Unit TestCs121 Unit Test
Cs121 Unit Test
 
DocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of AgileDocOps: Documentation at the Speed of Agile
DocOps: Documentation at the Speed of Agile
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XML
 
The Road to DITA
The Road to DITAThe Road to DITA
The Road to DITA
 

Plus de Dru Lavigne

Plus de Dru Lavigne (20)

Olf2018
Olf2018Olf2018
Olf2018
 
Olf2017
Olf2017Olf2017
Olf2017
 
FreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdmFreeBSD System Administration Using SysAdm
FreeBSD System Administration Using SysAdm
 
Asiabsdcon2017
Asiabsdcon2017Asiabsdcon2017
Asiabsdcon2017
 
Flourish16
Flourish16Flourish16
Flourish16
 
Lfnw15
Lfnw15Lfnw15
Lfnw15
 
Asiabsdcon15
Asiabsdcon15Asiabsdcon15
Asiabsdcon15
 
Scale2015
Scale2015Scale2015
Scale2015
 
Olf2014
Olf2014Olf2014
Olf2014
 
Fossetcon14
Fossetcon14Fossetcon14
Fossetcon14
 
Tlf2014
Tlf2014Tlf2014
Tlf2014
 
Asiabsdcon14 lavigne
Asiabsdcon14 lavigneAsiabsdcon14 lavigne
Asiabsdcon14 lavigne
 
Asiabsdcon14
Asiabsdcon14Asiabsdcon14
Asiabsdcon14
 
Scale2014
Scale2014Scale2014
Scale2014
 
Dru lavigne servers-tutorial
Dru lavigne servers-tutorialDru lavigne servers-tutorial
Dru lavigne servers-tutorial
 
Dru lavigne oss-sysadmin
Dru lavigne oss-sysadminDru lavigne oss-sysadmin
Dru lavigne oss-sysadmin
 
Dru lavigne oss-desktop_apps
Dru lavigne oss-desktop_appsDru lavigne oss-desktop_apps
Dru lavigne oss-desktop_apps
 
Bsd ss
Bsd ssBsd ss
Bsd ss
 
Nycbsdcon14
Nycbsdcon14Nycbsdcon14
Nycbsdcon14
 
Olf2013
Olf2013Olf2013
Olf2013
 

Dernier

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 

Dernier (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Scale2016

  • 1. Doc Like an Egyptian Dru Lavigne Documentation Lead, iXsystems SCALE, January 23, 2016
  • 2. All the old paintings on the tombs, They do the sand dance, don't you know? If they move too quick (oh whey oh) They're falling down like a domino. Walk Like an Egyptian, The Bangles
  • 3. Outline Overview of documentation goals and inherent difficulties Introduction to Sphinx as part of an open source documentation solution Disclaimer: based on my experiences. While from an open source perspective, discussion also applies to proprietary documentation.
  • 4. In Theory....Docs: are published with each software release... in multiple formats which suit the needs/devices of that software's user base... in multiple translations which match that software's global audience... and are grammatically and technically correct.
  • 5. The Reality Docs are incomplete or outdated (assuming they even exist) Docs are given lower priority than code Noone wants to write docs / Noone reads docs anyways No perfect doc management solution exists
  • 6. Incomplete/Outdated Docs Software is a MOVING target with varying release schedules Outdated, unversioned docs are actually worse than no docs Need process for versioning docs, providing revision control, archiving older docs, and helping people find the correct docs for their software version
  • 7. I Get No Respect Around Here... Cultural issue: docs are equally important to code and both are equally important to Q/A Know your audience and give them credit (users actually want usable docs) Train projects' question answerers to gently point users to the pertinent section of the docs and to create bug reports (or update docs)
  • 8. Finding the “Perfect” Tool Is its formatting language easy to learn or a significant barrier to entry? Are editors available which understand the syntax? Does it support the required layout? (code excerpts, table of contents, glossary, searchability, internal and external links, images, charts, localization, warnings, etc.)
  • 9. Finding the “Perfect” Tool Dru's 1st Law of Doc Tools: the number and quality of the outputs is inversely proportional to the ease of the markup language Dru's 2nd Law of Doc Tools: the fewer the number of doc maintainers, the higher the number of desired outputs Understand your audience and your project's limitations
  • 10. doc/odt Good: WYSIWYG editor available to any author Bad: templates are painful Collaborative editing and tracking changes is often a tangled mess of emails, editing conflicts, or waiting for someone else to make their changes Outputs are limited and require various degrees of cleanup
  • 11. wiki Good: entry barrier fairly low and syntax quick to learn Bad: no concept of ToC, content flow, or versioning If you build it, they don't necessarily come (except for the spambots...) Outputs are limited and typically require a lot of cleanup; translation tools are clunky
  • 12. Latex Good: multiple outputs integrate well into build and translation systems; can format into any desired layout Bad: very high barrier to entry as it takes a dedicated time (and interest) commitment to learn (and teach) the formatting language
  • 13. Sphinx Features Relatively easy-to-learn formatting language Supports common outputs: HTML, PDF, ePUB, LaTeX, Texinfo, man pages, txt, API docs Provides a number of extensions such as auto-numbered figures Automatic generation of ToC, index, glossary
  • 14. Sphinx Features Source files are text and easily integrate into existing revision control, translation, build, and CI infrastructures Fully customizable conf.py for controlling doc layout Several useful built-in builders (eg link checker)
  • 15. Sphinx Features Several built-in themes and support for custom themes; layout fully customizable using CSS Anything can be linked (figures, keywords, headings, etc.) Writers can use any text editor on any system with Python installed (or issue git pull requests)
  • 16. Sphinx Limitations Some odd formatting limitations require CSS workarounds (eg bold italic) Search SUCKS (and ironically there is a search engine of the same name) Documentation is limited and needs more usage examples
  • 20. Helpful Tips Do you plan to convert existing docs or archive those in current format and start with new docs? Open source converter utilities exist for most formats, often mutliple utilities per format Experiment by converting a small doc that contains most of your formatting requirements
  • 21. Helpful Tips Expect to spend time cleaning up the conversion Is your goal to have the docs match a specific software version? to have only one version that is the latest and greatest? What output formats are required? Versioned PDFs? HTML on your project page? Built into the software itself as a help system?
  • 22. Helpful Tips Review your code repository (you do have one, right? if not, you need one!) Determine the required doc versioning system and where to store your .rst files Update the README.md (or equivalent) with instructions for authors to create their own doc build environment
  • 23. Helpful Tips Review your converted docs and create a cheat sheet that includes a list of the formatting tags and conventions used by your project Include any gotchas to help new authors quickly get up-to-speed Publish the cheat sheet (eg README.md in doc directory of repo)
  • 24. Helpful Tips Spend some time playing with conf.py and experiment with existing themes BEFORE writing new docs as themes change the layout Research, experiment with, and install extensions that are useful for your docs Determine how much layout customization is required and who has the CSS skills for extra customizations