SlideShare a Scribd company logo
1 of 68
MARKUP LANGUAGES AND
WARP-SPEED
DOCUMENTATION
Lois Patterson – Presentation
What this presentation is about
• How software development culture is moving towards Dev Ops
• Using markup languages to adjust to the Dev Ops culture
• Advantages and disadvantages of different markup languages
• How content written in a markup language is converted to attractive
documentation
• How you can switch to using markup languages
Lois Patterson - Presentation
In the olden days …
Lois Patterson - Presentation
Today’s demands
• Weekly, daily, hourly releases
Lois Patterson - Presentation
How about you?
• What type of team?
Lois Patterson - Presentation
Agile development
• Agile workflows <-> continual, timely updates
of code and docs
Lois Patterson - Presentation
Are you agile?
Lois Patterson - Presentation
Book recommendation:
Modern Technical Writing: An Introduction to
Software Documentation Kindle Edition
by Andrew Etter
Lois Patterson - Presentation
Documentation is not separate
from the product
• Part of the product, embedded in the product
Lois Patterson - Presentation
Dev ops and doc ops
• Dev ops, doc ops
• Full stack approach
Lois Patterson - Presentation
Markup languages and doc ops
• Simplify!
o Writing
o Docs production
o Integration of docs with product
Lois Patterson - Presentation
What is a markup language?
• Plain text, with various tags or other elements
that indicate how the text should be processed
• HTML is best-known
• XML – family of markup languages
• Simple, doc-friendly markup languages:
• reStructuredText
• AsciiDoc
• Markdown
Lois Patterson - Presentation
Simple vs. complex markup languages
• DITA and DocBook
• reStructuredText, Markdown, and AsciiDoc
• Overhead versus structure
Lois Patterson - Presentation
Markup languages foster content collaboration
• Learn a markup language quickly
• Constant documentation updates require cross-team contributors
• Make life easy for all contributors
Lois Patterson - Presentation
Proprietary vs. open source
• Expensive and difficult tools, limited licenses
• Free tools, unlimited users
Lois Patterson - Presentation
Markup + Processor
• General principle: Write doc in markup language
• Process the markup to get your final docs
• DITA Open Toolkit, Sphinx (for reStructuredText), Jekyll (for Markdown)
• Static site generators produce static HTML
• Dynamic site generators render on the fly
• GitHub processes various markup formats instantaneously
Lois Patterson - Presentation
Let’s look at Markdown
• My portfolio page at GitHub
Lois Patterson - Presentation
Lois Patterson - Presentation
More about Github
• 35 million repositories!
Lois Patterson - Presentation
GitHub, markup languages, and collaborative culture
• Github as an exemplar
• Full engagement from team
• Widespread contributions
• We’re in this together
Lois Patterson - Presentation
Collaborative culture
Lois Patterson - Presentation
You can be a contributor
• Help out open source software
• Learn new technologies
• Build your portfolio
Lois Patterson - Presentation
Do you have a Github site?
• Will you get a Github site?
Lois Patterson - Presentation
Nitty-gritty
Lois Patterson - Presentation
Challenges of unstructured languages
• DITA forces unity among writers. Deviation is punished.
• Impose structure with templates and standards.
• “You can, but you shouldn’t.”
• Structure and unity particularly important if localization is happening.
Lois Patterson - Presentation
reStructuredText
Lois Patterson - Presentation
Let’s look at reStructuredText
• Start at readthedocs.org. (Docs at https://docs.readthedocs.io/ .)
• Python community origin
• Versatile
• Used with Sphinx static site generator
Lois Patterson - Presentation
Let’s look at reStructuredText
• ReadTheDocs page, editable at GitHub
• Rendered at GitHub
• Rendered at ReadTheDocs.org
• You can do the same!
Lois Patterson - Presentation
Sample reStructuredText template
Lois Patterson - Presentation
Sample reStructuredText template
Lois Patterson - Presentation
Look at a specific example
Lois Patterson - Presentation
restructuredText looks like this
Getting Started
===============
This document will show you how to get up and running with Read the Docs.
You will have your docs imported on Read the Docs in 5 minutes,
displayed beautifully for the world.
If you are already using Sphinx or Markdown for your docs, skip ahead to
:ref:`import-docs`.
Sphinx transforms restructuredText
Compare restructuredText to DITA XML
•
XML (DITA XML) – VERY SIMPLE FILE
• <?xml version="1.0" encoding="UTF-8"?>
• <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
• <topic id="topic_qk5_knc_fg">
• <title>Troubleshooting</title>
• <body>
• <p>Troubleshoot most common issues.</p>
• </body>
• </topic>
From source to docs with Sphinx
•
SPHINX AND RESTRUCTUREDTEXT
• reStructuredText (reST) is rather like Markdown.
• Sphinx is a static site generator.
• restructuredText other stuff (HTML, PDF, etc.)
• restructuredText/Sphinx:: Markdown/Jekyll
SPHINX, DOCUTILS, RST - SUMMARY
• Output formats
• Extensive cross-references
• Hierarchical structure
• Automatic indices
• Code handling
• Extensions
• Contributed extensions
• Uses reStructuredText for markup, and Docutils for parsing
See more: http://sphinx-doc.org/index.html
Want to author in reStructuredText and generate in
Sphinx?
Install Python first. (We used a 2.7.x version, but 3.3+ supported too.)
Sphinx Tutorial: http://sphinx-doc.org/tutorial.html
YouTube too!
https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
Look, copy, build, experiment
Static site generators
• Server load reduced
• Less prone to network difficulties and
intermittent errors
• Speed, security
• Available offline (many clients require this)
• Recent count: 394 different ones
• Choosing a well-supported one is key
• Disadvantages too
Lois Patterson - Presentation
Incorporating content from code
• Pull content from the code
• DRY (Don’t Repeat Yourself)
Lois Patterson - Presentation
Automate, automate,
automate
Lois Patterson - Presentation
Organization – still
important
Lois Patterson - Presentation
WHY WE LEFT THE CUSTOM XML WORLD
• Custom XML locked us in.
• HTML-based systems (e.g., MadCap Flare) do not easily integrate into our
vision of all devs write
• Did not really leave after all
GREAT THINGS ABOUT SPHINX AND RST
• Well-developed eco-system
• Python!
• Versatile outputs
• Easy to write
• Easy to read
• Text-based
• Encourages topic-based authoring!
MORE BENEFITS
• Everyone writes
• Tool-agnostic (emacs, vim, Notepad++, SublimeText, whatever you love)
• Version-control friendly
OLD VS. NEW
Structured XML
• Proprietary format
• Complex build machinery
• Tightly coupled with product (in a
bad way)
• Supports MathJax
Positives
Enforced programming structure
It’s ours!
Sphinx/rsT
• Open format
• Easy to build
• Easy to write
• Easy to read
• Supports MathJax
• Negatives
• Some customization needed
TYPICAL CONVERSION WORKFLOW (XML TO RST)
• High-level website design
• Create templates (for our sanity)
• Convert content
• Create content
• (All the time be building)
• Integrate into product and build system
WEBSITE DESIGN (DOCUMENTATION SYSTEM)
• A corporate-branded site, not a personal or open-source look
• Standard UX and design work
• Liaise with Marketing and other stakeholders
• jinja templating engines are a starting point
CREATE RESTRUCTUREDTEXT TEMPLATES
• restructuredText allows you to author without much structure (ironic?)
• Enforce structure with templates and code reviews.
CONVERT CONTENT
• Pandoc!
http://www.pandoc.org/
• Semi-manual
Custom scripts
ALWAYS BE BUILDING
Know how your docs look at any moment. (Continuous integration for docs.)
INTEGRATE INTO PRODUCT BUILD SYSTEM
CODE PRACTICES FOR DOCUMENTATION
• Code review
• Version control
• Automated testing
WHAT ABOUT?
• Content reuse?
• Content management systems?
CASE STUDY
• Rackspace (along with NASA invented OpenStack)
switched/is switching OpenStack docs from DocBook XML to Sphinx/RST.
• http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/
• https://wiki.openstack.org/wiki/Documentation/Migrate
CUSTOM EXTENSIONS
Docs must pull information from the code in unique ways.
CREATE, USE MORE EXTENSIONS
Sphinx has so many options, just finding what is available takes time.
WHAT COULD HAVE BEEN BETTER
NOT SO BLAMELESS POST-MORTEM
COULD HAVE STARTED SOONER
But Sphinx did not exist way back when ….
MORE AUTOMATION
Lack of time, but still …
MAKE TASKS MORE GRANULAR
Too big and scary a task? Break it down!
SHOULD YOU USE MARKUP LANGUAGES?
IT DEPENDS
Consider:
• Markdown (different flavors)
• AsciiDoc
• DocBook
• DITA XML
• Or ?
WHAT NOT TO DO
• Design your custom bespoke system from scratch by yourself.
• Except if …
RESOURCES
• http://sphinx-doc.org/
• http://readthedocs.org
• http://www.pandoc.org
http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/
https://wiki.openstack.org/wiki/Documentation/Migrate
http://sphinx-doc.org/tutorial.html
https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
In summary
Lois Patterson - Presentation
• Technical writers must work faster than ever
• Technical writers must collaborate across teams
• Markup languages facilitate a collaborative culture
• You have huge flexibility in the solutions you choose
• Structure, standards, and process are as important as ever
THANK YOU!
• Lois Patterson
• LoisRPatterson@gmail.com
• Twitter: @LoisRP
• Tumblr: http://www.AnAPIaDay.tumblr.com

More Related Content

What's hot

Navigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationNavigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationBrett Porter
 
ApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big DataApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big DataOpenSource Connections
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018Matthew Groves
 
Searching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldSearching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldOpenSource Connections
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerLuca Bianchi
 
Whitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveWhitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveDragos Manolescu
 
BP-8 Global Federation and Search
BP-8 Global Federation and SearchBP-8 Global Federation and Search
BP-8 Global Federation and SearchAlfresco Software
 
Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Laura Dent
 
Learning Silicon Valley Culture
Learning Silicon Valley CultureLearning Silicon Valley Culture
Learning Silicon Valley CultureTaro L. Saito
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoAgile Connect®
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsAchievers Tech
 
Putting the (docs) Cart Before the (standards) Horse
Putting the (docs) Cart Before the (standards) HorsePutting the (docs) Cart Before the (standards) Horse
Putting the (docs) Cart Before the (standards) HorseDrewAPicture
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...Matthew Groves
 
Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Ben Corlett
 
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections Nico Meisenzahl
 

What's hot (20)

Navigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software FoundationNavigating the Incubator at the Apache Software Foundation
Navigating the Incubator at the Apache Software Foundation
 
ApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big DataApacheCon Europe 2012 -Big Search 4 Big Data
ApacheCon Europe 2012 -Big Search 4 Big Data
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
Big Search 4 Big Data War Stories
Big Search 4 Big Data War StoriesBig Search 4 Big Data War Stories
Big Search 4 Big Data War Stories
 
Searching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data WorldSearching Chinese Patents Presentation at Enterprise Data World
Searching Chinese Patents Presentation at Enterprise Data World
 
Serverless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL ShortenerServerless On Stage - Serverless URL Shortener
Serverless On Stage - Serverless URL Shortener
 
Fedora4
Fedora4Fedora4
Fedora4
 
Whitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to ReactiveWhitepages Practical Experience Converting from Ruby to Reactive
Whitepages Practical Experience Converting from Ruby to Reactive
 
BP-8 Global Federation and Search
BP-8 Global Federation and SearchBP-8 Global Federation and Search
BP-8 Global Federation and Search
 
Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?
 
Learning Silicon Valley Culture
Learning Silicon Valley CultureLearning Silicon Valley Culture
Learning Silicon Valley Culture
 
Dbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo PiairoDbops, DevOps & Ops, by Eduardo Piairo
Dbops, DevOps & Ops, by Eduardo Piairo
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
Putting the (docs) Cart Before the (standards) Horse
Putting the (docs) Cart Before the (standards) HorsePutting the (docs) Cart Before the (standards) Horse
Putting the (docs) Cart Before the (standards) Horse
 
Rupher = Ruby + Gopther
Rupher = Ruby + GoptherRupher = Ruby + Gopther
Rupher = Ruby + Gopther
 
Rupher
RupherRupher
Rupher
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
 
Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013
 
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
Soccnx11 Two wrongs don't make a right - Troubleshooting Connections
 

Viewers also liked

Automated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersAutomated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersSanders Kleinfeld
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Lois Patterson
 
Automated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAutomated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAhmed Hindawi
 
From print textbook to MathML
From print textbook to MathMLFrom print textbook to MathML
From print textbook to MathMLTara Robertson
 
Mogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsMogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsGwendal Daniel
 
Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Greg TAPPERO
 
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph DatabasesUMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph DatabasesGwendal Daniel
 
Virtual keyboard ppt
Virtual keyboard pptVirtual keyboard ppt
Virtual keyboard pptPiyush Rajput
 

Viewers also liked (8)

Automated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for PublishersAutomated Equation Processing and Rendering Workflows for Publishers
Automated Equation Processing and Rendering Workflows for Publishers
 
Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)Mathematical content in documentation (DITA Europe 2008)
Mathematical content in documentation (DITA Europe 2008)
 
Automated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations ResponsiveAutomated Equation Breaking: Making Equations Responsive
Automated Equation Breaking: Making Equations Responsive
 
From print textbook to MathML
From print textbook to MathMLFrom print textbook to MathML
From print textbook to MathML
 
Mogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large ModelsMogwaï: A Framework to Handle Complex Queries on Large Models
Mogwaï: A Framework to Handle Complex Queries on Large Models
 
Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]Gui Input Tools for Math [UKMC09]
Gui Input Tools for Math [UKMC09]
 
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph DatabasesUMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
UMLtoGraphDB: Mapping Conceptual Schemas to Graph Databases
 
Virtual keyboard ppt
Virtual keyboard pptVirtual keyboard ppt
Virtual keyboard ppt
 

Similar to Markup languages and warp-speed documentation

Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liuStreamNative
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Den Delimarsky
 
Apache Content Technologies
Apache Content TechnologiesApache Content Technologies
Apache Content Technologiesgagravarr
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!gagravarr
 
Let's create a multilingual site in WordPress
Let's create a multilingual site in WordPressLet's create a multilingual site in WordPress
Let's create a multilingual site in WordPressMarko Heijnen
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFxThomas Daly
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluzRicard Clau
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4Joubin Najmaie
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceJen Wei Lee
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampAnne Gentle
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Dennis Zhuravlev (a.k.a. Crane)
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...Radhika Puthiyetath
 
Lean and Collaborative Content - Workshop
Lean and Collaborative Content - WorkshopLean and Collaborative Content - Workshop
Lean and Collaborative Content - WorkshopIXIASOFT
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Lucas Jellema
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011Paulo Mattos
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentBill Ayers
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITASuite Solutions
 

Similar to Markup languages and warp-speed documentation (20)

Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018Docs as Part of the Product - Open Source Summit North America 2018
Docs as Part of the Product - Open Source Summit North America 2018
 
Apache Content Technologies
Apache Content TechnologiesApache Content Technologies
Apache Content Technologies
 
If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!If You Have The Content, Then Apache Has The Technology!
If You Have The Content, Then Apache Has The Technology!
 
Let's create a multilingual site in WordPress
Let's create a multilingual site in WordPressLet's create a multilingual site in WordPress
Let's create a multilingual site in WordPress
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
 
Domain Specific Development using T4
Domain Specific Development using T4Domain Specific Development using T4
Domain Specific Development using T4
 
Introduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital WorkplaceIntroduction To Web Development & The New Digital Workplace
Introduction To Web Development & The New Digital Workplace
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
OpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot CampOpenStack Doc Overview for Boot Camp
OpenStack Doc Overview for Boot Camp
 
Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5Rapid development of help files and user documentation in Dr.Explain 5
Rapid development of help files and user documentation in Dr.Explain 5
 
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...Open Writing ! -	Collaborative Authoring on Apache’s First Open-Source Cloud ...
Open Writing ! - Collaborative Authoring on Apache’s First Open-Source Cloud ...
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
Lean and Collaborative Content - Workshop
Lean and Collaborative Content - WorkshopLean and Collaborative Content - Workshop
Lean and Collaborative Content - Workshop
 
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
Introducing NoSQL and MongoDB to complement Relational Databases (AMIS SIG 14...
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 

Recently uploaded

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 

Recently uploaded (20)

Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 

Markup languages and warp-speed documentation

  • 2. What this presentation is about • How software development culture is moving towards Dev Ops • Using markup languages to adjust to the Dev Ops culture • Advantages and disadvantages of different markup languages • How content written in a markup language is converted to attractive documentation • How you can switch to using markup languages Lois Patterson - Presentation
  • 3. In the olden days … Lois Patterson - Presentation
  • 4. Today’s demands • Weekly, daily, hourly releases Lois Patterson - Presentation
  • 5. How about you? • What type of team? Lois Patterson - Presentation
  • 6. Agile development • Agile workflows <-> continual, timely updates of code and docs Lois Patterson - Presentation
  • 7. Are you agile? Lois Patterson - Presentation
  • 8. Book recommendation: Modern Technical Writing: An Introduction to Software Documentation Kindle Edition by Andrew Etter Lois Patterson - Presentation
  • 9. Documentation is not separate from the product • Part of the product, embedded in the product Lois Patterson - Presentation
  • 10. Dev ops and doc ops • Dev ops, doc ops • Full stack approach Lois Patterson - Presentation
  • 11. Markup languages and doc ops • Simplify! o Writing o Docs production o Integration of docs with product Lois Patterson - Presentation
  • 12. What is a markup language? • Plain text, with various tags or other elements that indicate how the text should be processed • HTML is best-known • XML – family of markup languages • Simple, doc-friendly markup languages: • reStructuredText • AsciiDoc • Markdown Lois Patterson - Presentation
  • 13. Simple vs. complex markup languages • DITA and DocBook • reStructuredText, Markdown, and AsciiDoc • Overhead versus structure Lois Patterson - Presentation
  • 14. Markup languages foster content collaboration • Learn a markup language quickly • Constant documentation updates require cross-team contributors • Make life easy for all contributors Lois Patterson - Presentation
  • 15. Proprietary vs. open source • Expensive and difficult tools, limited licenses • Free tools, unlimited users Lois Patterson - Presentation
  • 16. Markup + Processor • General principle: Write doc in markup language • Process the markup to get your final docs • DITA Open Toolkit, Sphinx (for reStructuredText), Jekyll (for Markdown) • Static site generators produce static HTML • Dynamic site generators render on the fly • GitHub processes various markup formats instantaneously Lois Patterson - Presentation
  • 17. Let’s look at Markdown • My portfolio page at GitHub Lois Patterson - Presentation
  • 18. Lois Patterson - Presentation
  • 19. More about Github • 35 million repositories! Lois Patterson - Presentation
  • 20. GitHub, markup languages, and collaborative culture • Github as an exemplar • Full engagement from team • Widespread contributions • We’re in this together Lois Patterson - Presentation
  • 22. You can be a contributor • Help out open source software • Learn new technologies • Build your portfolio Lois Patterson - Presentation
  • 23. Do you have a Github site? • Will you get a Github site? Lois Patterson - Presentation
  • 25. Challenges of unstructured languages • DITA forces unity among writers. Deviation is punished. • Impose structure with templates and standards. • “You can, but you shouldn’t.” • Structure and unity particularly important if localization is happening. Lois Patterson - Presentation
  • 27. Let’s look at reStructuredText • Start at readthedocs.org. (Docs at https://docs.readthedocs.io/ .) • Python community origin • Versatile • Used with Sphinx static site generator Lois Patterson - Presentation
  • 28. Let’s look at reStructuredText • ReadTheDocs page, editable at GitHub • Rendered at GitHub • Rendered at ReadTheDocs.org • You can do the same! Lois Patterson - Presentation
  • 29. Sample reStructuredText template Lois Patterson - Presentation
  • 30. Sample reStructuredText template Lois Patterson - Presentation
  • 31. Look at a specific example Lois Patterson - Presentation
  • 32. restructuredText looks like this Getting Started =============== This document will show you how to get up and running with Read the Docs. You will have your docs imported on Read the Docs in 5 minutes, displayed beautifully for the world. If you are already using Sphinx or Markdown for your docs, skip ahead to :ref:`import-docs`.
  • 35. XML (DITA XML) – VERY SIMPLE FILE • <?xml version="1.0" encoding="UTF-8"?> • <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"> • <topic id="topic_qk5_knc_fg"> • <title>Troubleshooting</title> • <body> • <p>Troubleshoot most common issues.</p> • </body> • </topic>
  • 36. From source to docs with Sphinx •
  • 37. SPHINX AND RESTRUCTUREDTEXT • reStructuredText (reST) is rather like Markdown. • Sphinx is a static site generator. • restructuredText other stuff (HTML, PDF, etc.) • restructuredText/Sphinx:: Markdown/Jekyll
  • 38. SPHINX, DOCUTILS, RST - SUMMARY • Output formats • Extensive cross-references • Hierarchical structure • Automatic indices • Code handling • Extensions • Contributed extensions • Uses reStructuredText for markup, and Docutils for parsing See more: http://sphinx-doc.org/index.html
  • 39. Want to author in reStructuredText and generate in Sphinx? Install Python first. (We used a 2.7.x version, but 3.3+ supported too.) Sphinx Tutorial: http://sphinx-doc.org/tutorial.html YouTube too! https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs Look, copy, build, experiment
  • 40. Static site generators • Server load reduced • Less prone to network difficulties and intermittent errors • Speed, security • Available offline (many clients require this) • Recent count: 394 different ones • Choosing a well-supported one is key • Disadvantages too Lois Patterson - Presentation
  • 41. Incorporating content from code • Pull content from the code • DRY (Don’t Repeat Yourself) Lois Patterson - Presentation
  • 43. Organization – still important Lois Patterson - Presentation
  • 44. WHY WE LEFT THE CUSTOM XML WORLD • Custom XML locked us in. • HTML-based systems (e.g., MadCap Flare) do not easily integrate into our vision of all devs write • Did not really leave after all
  • 45. GREAT THINGS ABOUT SPHINX AND RST • Well-developed eco-system • Python! • Versatile outputs • Easy to write • Easy to read • Text-based • Encourages topic-based authoring!
  • 46. MORE BENEFITS • Everyone writes • Tool-agnostic (emacs, vim, Notepad++, SublimeText, whatever you love) • Version-control friendly
  • 47. OLD VS. NEW Structured XML • Proprietary format • Complex build machinery • Tightly coupled with product (in a bad way) • Supports MathJax Positives Enforced programming structure It’s ours! Sphinx/rsT • Open format • Easy to build • Easy to write • Easy to read • Supports MathJax • Negatives • Some customization needed
  • 48. TYPICAL CONVERSION WORKFLOW (XML TO RST) • High-level website design • Create templates (for our sanity) • Convert content • Create content • (All the time be building) • Integrate into product and build system
  • 49. WEBSITE DESIGN (DOCUMENTATION SYSTEM) • A corporate-branded site, not a personal or open-source look • Standard UX and design work • Liaise with Marketing and other stakeholders • jinja templating engines are a starting point
  • 50. CREATE RESTRUCTUREDTEXT TEMPLATES • restructuredText allows you to author without much structure (ironic?) • Enforce structure with templates and code reviews.
  • 52. ALWAYS BE BUILDING Know how your docs look at any moment. (Continuous integration for docs.)
  • 53. INTEGRATE INTO PRODUCT BUILD SYSTEM
  • 54. CODE PRACTICES FOR DOCUMENTATION • Code review • Version control • Automated testing
  • 55. WHAT ABOUT? • Content reuse? • Content management systems?
  • 56. CASE STUDY • Rackspace (along with NASA invented OpenStack) switched/is switching OpenStack docs from DocBook XML to Sphinx/RST. • http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/ • https://wiki.openstack.org/wiki/Documentation/Migrate
  • 57. CUSTOM EXTENSIONS Docs must pull information from the code in unique ways.
  • 58. CREATE, USE MORE EXTENSIONS Sphinx has so many options, just finding what is available takes time.
  • 59. WHAT COULD HAVE BEEN BETTER NOT SO BLAMELESS POST-MORTEM
  • 60. COULD HAVE STARTED SOONER But Sphinx did not exist way back when ….
  • 61. MORE AUTOMATION Lack of time, but still …
  • 62. MAKE TASKS MORE GRANULAR Too big and scary a task? Break it down!
  • 63. SHOULD YOU USE MARKUP LANGUAGES?
  • 64. IT DEPENDS Consider: • Markdown (different flavors) • AsciiDoc • DocBook • DITA XML • Or ?
  • 65. WHAT NOT TO DO • Design your custom bespoke system from scratch by yourself. • Except if …
  • 66. RESOURCES • http://sphinx-doc.org/ • http://readthedocs.org • http://www.pandoc.org http://justwriteclick.com/2015/02/23/state-of-the-migration-to-sphinxrst/ https://wiki.openstack.org/wiki/Documentation/Migrate http://sphinx-doc.org/tutorial.html https://www.youtube.com/watch?feature=player_embedded&v=oJsUvBQyHBs
  • 67. In summary Lois Patterson - Presentation • Technical writers must work faster than ever • Technical writers must collaborate across teams • Markup languages facilitate a collaborative culture • You have huge flexibility in the solutions you choose • Structure, standards, and process are as important as ever
  • 68. THANK YOU! • Lois Patterson • LoisRPatterson@gmail.com • Twitter: @LoisRP • Tumblr: http://www.AnAPIaDay.tumblr.com

Editor's Notes

  1. Hi, I’m Lois Patterson. I’ve worked at many software companies in different roles. My focus for the past few years has been developer documentation. Much of this presentation was written while I was at my previous role as a Technical Communications Manager at a company where we did a large conversion project for our documentation.
  2. Let’s look at the shift in culture. What are markup languages and dev ops? Why use one language over another?
  3. A release every year or two was common. The docs would go to the printers. We would get proofs. It would take weeks! Delays between development and documentation were expected. Long release cycles. Printing, corrections – it was a different world.
  4. Who does this? Google, Atlassian, many companies who need to go live with new content all the time. How can you keep documentation in sync if you go through a print house review cycle? Consider the code review process for software development.
  5. Who has a technical documentation team with a defined set of writers using proprietary tools?(Gatekeeping model, may be necessary in certain environments) Who has a technical documentation team with writers, but also outside contributors? (Typical software world) Who has no official tech docs team, but a host of contributors? (E.g., last I heard, Twitter has 4 technical writers. But look where Twitter is.)
  6. Agile means something different to every person and every company, but we generally agree that it’s a way to develop working software continuously and incrementally, rather than waiting for a big bang product. Do not get hung up on the philosophy differences. The idea is the teams are continuously checking in against each other, and delivering improvements almost all the time.
  7. We all strive to be. But still not completely suitable for all cases. Modeling requirements and planning are still important (and can be part of Agile).
  8. Book recommendation I recently read this book, and he covers many of the same concepts I discuss in this talk. I recommend reading it if you can. If you get Kindle Unlimited, then it’s free (a plug).
  9. For many products, the documentation is integrated into the product. It’s not possible to pull them apart. Not all documentation is in the product, but enough of it is that you have to keep up to date.
  10. Dev ops means you will likely hear about Ansible, Puppet, Chef, Docker. Agile development continues through to the IT team. Fully integrated dev ops has development, QA, documentation, IT deployment, and customer support all prepared and all aligned with the current product version at any given moment.
  11. How can you do this type of rapid, continuous development, integration, and deployment if you do not simplify processes? Judicious use of markup languages, and treating docs as code, allows you to vastly speed up your process.
  12. You have used markup languages, I’m sure. I’m focusing on the simple ones for this presentation – perhaps I should have said – Why use simple markup languages for documentation?
  13. I don’t want to make a hard and fast division. easyDITA, FluidTopics, and other vendors are working on ways to make DITA work in a high-speed environment. But I’m discussing what has worked for us, and what I know has worked for many others working particularly in the field of developer documentation. XML markup, like DITA and DocBook vs. simpler markup, like reStructuredText, Markdown, and AsciiDoc Different domains – different requirements Situation is evolving! Balance of overhead versus structure
  14. By quickly, I mean within an hour. Just like anyone can write in a wiki. Some writers worry they are less valuable if everyone is documenting. No – you do necessarily take an editorial role, but there are always documents to write, particularly for complex software. You can go well beyond the basics.
  15. The right use of markup languages allows anyone to become a contributor with close to zero rampup, and no concern about licenses or weeks of training.
  16. If you use markup languages, you need a way to process the raw documents into a finished product. So here’s the general process.
  17. My portfolio page at GitHub Markdown is highly versatile, widely used Different flavors hinder compatibility Customizations are common
  18. We’ve taken a look at Markdown. Now we’ll look at reStructuredText.
  19. Github is an example of what collaborative culture can look like. GitHub phenomenon has a general theme: widespread contributors We’re in this together Technical writers, to produce constantly updated docs, require full contributions from other team members Dev/Doc Ops requires an engaged, fully coordinated team Every developer knows markup languages; contribution is straightforward ->I just saw this quote on Twitter.
  20. I just saw this quote on Twitter. Developers know they need good documentation to use new APIs, new languages, and so forth. Having excellent technical contributors in no way diminishes technical writers.
  21. Let’s take this idea of contribution more generally. Not only in the company you work for, but for the tools you know and love. You can see this collaborative culture with everyone who has contributed to Github or other open communities. Many excellent open-source software projects with great developers need technical documentation Use of markup languages, a knowledge of Git, and a willingness to follow the process required Build your portfolio Growing trend for hiring managers to look at GitHub commits
  22. We all strive to be. But still not completely suitable for all cases. Modeling requirements and planning are still important (and can be part of Agile).
  23. Let’s look a some technical details of using markup languages.
  24. Some possible negatives. I’m discussing positives throughout, so I want to keep these in mind.
  25. Let’s take some look at some examples.
  26. I am very partial to reStructuredText. I love Python, which is where reST originated (not to be confused with REST APIs). So many excellent projects are using rest, and you can see many of these projects at the Read The Docs site. We were very fortunate to have the resources of an experienced Python developer, who is very familiar with the build system, how content is pulled in from various places, and who was just generally a superstar developer.
  27. You can get an idea of how flexible rest is. The ReadTheDocs page is editable at Github, and you can see the source. You can also see it rendered at Github, and you can also see it rendered at ReadTheDocs. If they wanted to make a PDF, or some other format, they could.
  28. Remember reStructuredText designed to work with Python functions originally Look at RackSpace implementations Stripe’s API docs General principle: Write a script that pulls content out of code and into a markup file, which is then processed into documentation DRY (Don’t Repeat Yourself) I have done so much copy and paste in my life, but you are setting yourself up for error. We need to automate!
  29. Automation is what makes Agile work, what makes dev ops work, and what will make markup languages work for you. If ever you find yourself copying and pasting, see if there’s a way you can automate that. Having continuously updated docs relies on automation. What are some examples of automation that you use?
  30. Templates, variables, planning, thinking – markup languages are a tool, but technical documentation still requires planning and organizing.
  31. Why we left custom XML behind.