SlideShare a Scribd company logo
Docs as Part of the Product
Den Delimarsky, PM
@denniscode
Who am I?
•Program Manager at Microsoft
•Building docs.microsoft.com
•Based in Vancouver
•Helping drive:
• API Documentation
• Samples
• Interactive Experiences
State of
Documentation
State of Documentation
•What we expect from doc experiences
• Up-to-date and always reflecting the true state of
the product.
• Comprehensive.
• Easy to edit.
• Intuitive search and discovery.
• Connected to the communities inside and
outside the company.
• Rich, interactive presentation.
State of Documentation
•What we get from doc experiences
• Out-of-date – generated once and forgotten.
• Inaccurate API docs written by hand.
• Maintained in content silos.
• Scattered – every team has their own site with
their own format and publishing pipeline.
• Search is bad due to fragmentation.
• Text and basic media (images).
State of Documentation
Looking Back
Looking Back
•Started with the goal to be the
one true place for all Microsoft
developer resources.
•Powered by a closed,
proprietary publishing system.
•Content stored in an internal
XML flavor.
Looking Back
• Brittle code base not designed for the cloud.
• Everything is manually written – almost zero
automation.
• Complicated process to update and publish
content – sometimes it took days, if not weeks.
• Teams outgrew MSDN, held back by its update
velocity – new sites started appearing.
Docs: The New Hope
Docs: The New Hope
• One doc site to rule them all – unify
documentation for all company.
• Start from zero, for the cloud, from the cloud.
• Automate all the things.
• Open, using standard open-source tools and
formats.
• Global by default – 64 locales built-in.
• We don’t know the right way – but we can
experiment.
Docs: The New Hope
•Consistent editing experience – Markdown is
the golden standard.
•Integrated in API reference (part of Javadoc
comments, Swagger specs and Python
docstrings).
•Edit directly in GitHub or favorite editor.
•Easily preview changes.
Docs: The New Hope
Docs: The New Hope
Docs: The New Hope
Docs: The New Hope
•Automation at the heart of the publishing
process
• API Doc Tooling (Node, Java, Python, .NET,
REST, PowerShell, CLI)
• Content Build and Validation
• Content Testing Suite (404s, orphaned pages,
SEO compliance)
• GitHub Bots (automatically merge PRs, channel
external feedback to internal bug tracker)
• Sample Code Testing
Docs: The New Hope
•Making URLs readable
https://msdn.microsoft.com/en-us/library/8ehhxeaf(v=vs.110).aspx
https://docs.microsoft.com/dotnet/api/system.collections.generic.icomparer-1
Docs: The New Hope
•Convention over configuration – we infer
content structure from folders in GitHub.
•/content/test.md becomes
docs.microsoft.com/cloud/content/test
•Easy to set up redirects when things
change, directly from the repo – broken
links are much easier to fix.
Docs: The New Hope
•Content Versioning
• No “burning in” into the URL.
• Ensures URL consistency even when new
versions are released.
• Easily discoverable.
• Reduces friction and broken links.
• Using query param - ?view={moniker}
Docs: The New Hope
• API documentation discoverable from one
place – the API Browser.
• No need to hop between N+1 sites to find the
API.
• Semantic understanding of the APIs.
• Reduce discovery and documentation friction.
• Provide the artifacts (npm, pypi, source) and
the docs are staged automatically.
• Intertwined with human-edited content.
Docs: The New Hope
npm Package
or Source
Code
JSDoc/TypeDoc
Schema-based
Document Processor
YAML + Markdown docs.microsoft.com
PyPI
Package,
sdist/bdist or
Source Code
Sphinx
Schema-based
Document Processor
YAML + Markdown docs.microsoft.com
Maven
Package or
Source Code
Javadoc/Doxygen
Schema-based
Document Processor
YAML + Markdown docs.microsoft.com
Swagger
Spec
Swagger Processor
Schema-based
Document Processor
YAML + Markdown docs.microsoft.com
NuGet
Package or
DLLs
nue/mdoc
Schema-based
Document Processor
YAML + Markdown docs.microsoft.com
Docs: The New Hope
•28K+ API
documentation CI
executed in the past
year.
•10MM+ lines of auto-
generated docs dropped
into GitHub.
Docs: The New Hope
•This powers:
• 9.5K+ JavaScript API documentation pages
• 55K+ Java API documentation pages
• 16K+ Python API documentation pages
• 15K+ REST API documentation pages
• 499K+ .NET API documentation pages
Docs: The New Hope
•Builds run multiple times
a day.
•Always documenting
public latest versions of
APIs in addition to
secondary (supported)
versions.
Docs: The New Hope
•All API docs have standard URL patterns
• /python/api/{package-name}/{entity}
• /java/api/{entity-qualified-name}
• /javascript/api/{package-name}/{entity}
• /rest/api/{product}/{op-group}/{operation}
• /cli/{product}/{command}
Docs: The New Hope
• Documentation linked to
source code.
• Switch between versions on
the fly.
• Logically grouped API entities
in the table of contents.
• Grouping generated
automatically – no human
ever does that.
• Allows us to scale to 10K+
APIs in minutes.
Docs: The New Hope
•Contracts over hand-crafted documents.
•Schema defines entities and overall
hierarchy.
•Template globally applied.
•Driving consistency in presentation.
•Updates don’t break existing
documentation.
Docs: The New Hope
•Generate any post-processing artifacts
after build – IntelliSense and cross-
reference files.
•Artifacts can be used by product teams
(Javadoc to be shipped with product).
Docs: The New Hope
• Structured documentation
enables us to power rich API
discovery experiences.
• Find the necessary API in
seconds.
• Search across all products
in a platform.
• IDE “auto-suggest” – in a
search experience.
Beyond Text
Beyond Text
(sourced from The Onion)
Beyond Text
•Good documentation is not a wall of text.
•Reducing friction from reading to trying –
how can we allow you to see how things
work in seconds?
•Structured content allows us to understand
where we can enable interactivity.
Beyond Text
•REST “Try It”
•Powered by Swagger
specs.
•Run REST calls from a
documentation page.
•Instantly see output, with
no apps involved.
Beyond Text
•.NET REPL
•Run C# code in a
stateless container.
•Zero friction to get
started – no auth
required.
•Any C# snippet can
integrate it.
Beyond Text
•Azure Cloud Shell
•Linux in the browser.
•Works with Bash and
PowerShell Core.
•Stateful container
connected to Azure
subscription.
Focus on Community
Focus on Community
•2.5K+ repositories
• 1.1K+ public
•4.3K+ internal members
•A huge shift in how the
entire company sees
documentation and
contributions to open
source.
Focus on Community
•A lot of our projects were
moved over to GitHub
(VSCode, TypeScript, .NET,
Monaco Editor).
•Natural place to have
documentation, with a huge
community of passionate
developers.
(stats courtesy of GitHub)
Focus on Community
•Shifting feedback from
silo-ed platforms to be
open.
•GitHub Issues – for
content and site
feedback.
•Documentation is
treated like a product –
doc issue = bug.
Focus on Community
•Key learning – transparency matters.
•Your customers know their needs better than you
do – talk to them. All the time.
•Working with your community is not the same as
asking them to do the work for you.
•Fostering the community and building trust takes
time – coaching them on best practices and
approaches is important.
Focus on Community
•Automation is your friend (again)
• Contribution License Agreements (CLAs)
• PR reviews (“Is my PR changing the right
things?”)
• Content build validation (“Is what I added
causing issues?”)
• Test any inserted code (“Does it build?”)
Overview
Before After
Open Source Docs No Yes
Localization Poor 64 Languages
Mobile Support None Major platforms
Accessibility Varied Built-in
Content Location Fragmented Unified
Sample Testing Sparse Automated CI
API Docs Manual Automatic
Feedback Varied, closed GitHub
Analytics Fragmented Unified
Engineering Duplicated Shared
Handling Legacy
Resources
Handling Legacy Resources
Expectation Reality
Handling Legacy Resources
• Mo’ sites, mo’ problems.
• Not as simple as simple as shutting the old site down
in favor of the new one.
• Content migration takes time – you will discover
problems. A lot of problems.
• Redirection is important – customers don’t like broken
links. Neither do search engines.
• Links are “baked into” products over years – you don’t
want to break those.
Handling Legacy Resources
•You will inevitably get feedback that “old
was better” – that’s not a cue to rebuild the
old experience on the new site.
•Communication is important – set
expectations.
•Habits die hard – it will take time for people
to rely on new workflows.
Contact & Resources
@denniscode
@docsmsft
https://docs.microsoft.com
dendeli@microsoft.com
https://aka.ms/docfx
Docs as Part of the Product - Open Source Summit North America 2018

More Related Content

PPTX
Global Azure Bootcamp - Vancouver (2018) - Testing with Containers
PDF
Ursula Sarracini - When Old Meets New: Codebases
PDF
Sponia with QingCloud
PDF
Git and GitHub for Documentation
PDF
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
PPTX
Provisioning environments. A simplistic approach
PDF
Let’s start Continuous Integration with jenkins
PPTX
Configuration As Code: The Job DSL Plugin
Global Azure Bootcamp - Vancouver (2018) - Testing with Containers
Ursula Sarracini - When Old Meets New: Codebases
Sponia with QingCloud
Git and GitHub for Documentation
Configuration As Code - Adoption of the Job DSL Plugin at Netflix
Provisioning environments. A simplistic approach
Let’s start Continuous Integration with jenkins
Configuration As Code: The Job DSL Plugin

What's hot (20)

PDF
The Job DSL Plugin: Introduction & What’s New
PDF
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
PDF
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
PDF
Build your application in seconds and optimize workflow as much as you can us...
PPTX
Azure Functions
PDF
From Virtual Machines to Containers
PDF
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
PPTX
The busy developers guide to Docker
PDF
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
PDF
calmio-cicd-containers
PDF
JUC Europe 2015: Plugin Development with Gradle and Groovy
PPTX
Jenkins & scriptable build
PDF
Jenkins Best Practices
PPTX
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
PDF
Using Docker for Testing
PPTX
Tooling for the productive front-end developer
PDF
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
PDF
Don Wibier
PPTX
Unicom DevCon - CI/CD for Asp.net core apps using Docker
PDF
CI is dead, long live CI
The Job DSL Plugin: Introduction & What’s New
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Jenkins-Based Continuous Integration for Heterogeneous Hardw...
Build your application in seconds and optimize workflow as much as you can us...
Azure Functions
From Virtual Machines to Containers
.Net OSS Ci & CD with Jenkins - JUC ISRAEL 2013
The busy developers guide to Docker
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
calmio-cicd-containers
JUC Europe 2015: Plugin Development with Gradle and Groovy
Jenkins & scriptable build
Jenkins Best Practices
SenchaCon 2016: Being Productive with the New Sencha Fiddle - Mitchell Simoens
Using Docker for Testing
Tooling for the productive front-end developer
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
Don Wibier
Unicom DevCon - CI/CD for Asp.net core apps using Docker
CI is dead, long live CI
Ad

Similar to Docs as Part of the Product - Open Source Summit North America 2018 (20)

PDF
Code the docs-yu liu
PDF
Docs Like Code
PDF
Docs Like Code: Strategies and Stories
PDF
Building APIs in an easy way using API Platform
PPTX
Markup languages and warp-speed documentation
PDF
Lois Patterson: Markup Languages and Warp-Speed Documentation
PPT
Lean-Agile SharePoint Development
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
PPTX
Publishing strategies for API documentation
PDF
Drupal and Apache Stanbol
PPTX
Managing changes to eZPublish Database
PDF
Managing Changes to the Database Across the Project Life Cycle (presented by ...
PPTX
DevOps Friendly Doc Publishing for APIs & Microservices
PDF
Agile Secure Cloud Application Development Management
PPTX
Devops
PDF
The Developers World
PPT
Case study
PPTX
SplunkLive London 2014 Developer Presentation
PDF
DocOps: Documentation at the Speed of Agile
PPTX
Pat Farrell, Migrating Legacy Documentation to XML and DITA
Code the docs-yu liu
Docs Like Code
Docs Like Code: Strategies and Stories
Building APIs in an easy way using API Platform
Markup languages and warp-speed documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lean-Agile SharePoint Development
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Publishing strategies for API documentation
Drupal and Apache Stanbol
Managing changes to eZPublish Database
Managing Changes to the Database Across the Project Life Cycle (presented by ...
DevOps Friendly Doc Publishing for APIs & Microservices
Agile Secure Cloud Application Development Management
Devops
The Developers World
Case study
SplunkLive London 2014 Developer Presentation
DocOps: Documentation at the Speed of Agile
Pat Farrell, Migrating Legacy Documentation to XML and DITA
Ad

Recently uploaded (20)

PPTX
Internet___Basics___Styled_ presentation
PPTX
Introduction to Information and Communication Technology
PPTX
cyber security Workshop awareness ppt.pptx
PPTX
Digital Literacy And Online Safety on internet
DOCX
Unit-3 cyber security network security of internet system
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PPTX
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
PPTX
SAP Ariba Sourcing PPT for learning material
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PDF
“Google Algorithm Updates in 2025 Guide”
PPTX
artificial intelligence overview of it and more
PDF
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
PDF
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...
PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PDF
Triggering QUIC, presented by Geoff Huston at IETF 123
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
Internet___Basics___Styled_ presentation
Introduction to Information and Communication Technology
cyber security Workshop awareness ppt.pptx
Digital Literacy And Online Safety on internet
Unit-3 cyber security network security of internet system
Introuction about ICD -10 and ICD-11 PPT.pptx
Slides PDF The World Game (s) Eco Economic Epochs.pdf
Cloud-Scale Log Monitoring _ Datadog.pdf
RPKI Status Update, presented by Makito Lay at IDNOG 10
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
SAP Ariba Sourcing PPT for learning material
INTERNET------BASICS-------UPDATED PPT PRESENTATION
“Google Algorithm Updates in 2025 Guide”
artificial intelligence overview of it and more
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
Behind the Smile Unmasking Ken Childs and the Quiet Trail of Deceit Left in H...
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
Triggering QUIC, presented by Geoff Huston at IETF 123
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx

Docs as Part of the Product - Open Source Summit North America 2018

  • 1. Docs as Part of the Product Den Delimarsky, PM @denniscode
  • 2. Who am I? •Program Manager at Microsoft •Building docs.microsoft.com •Based in Vancouver •Helping drive: • API Documentation • Samples • Interactive Experiences
  • 4. State of Documentation •What we expect from doc experiences • Up-to-date and always reflecting the true state of the product. • Comprehensive. • Easy to edit. • Intuitive search and discovery. • Connected to the communities inside and outside the company. • Rich, interactive presentation.
  • 5. State of Documentation •What we get from doc experiences • Out-of-date – generated once and forgotten. • Inaccurate API docs written by hand. • Maintained in content silos. • Scattered – every team has their own site with their own format and publishing pipeline. • Search is bad due to fragmentation. • Text and basic media (images).
  • 8. Looking Back •Started with the goal to be the one true place for all Microsoft developer resources. •Powered by a closed, proprietary publishing system. •Content stored in an internal XML flavor.
  • 9. Looking Back • Brittle code base not designed for the cloud. • Everything is manually written – almost zero automation. • Complicated process to update and publish content – sometimes it took days, if not weeks. • Teams outgrew MSDN, held back by its update velocity – new sites started appearing.
  • 11. Docs: The New Hope • One doc site to rule them all – unify documentation for all company. • Start from zero, for the cloud, from the cloud. • Automate all the things. • Open, using standard open-source tools and formats. • Global by default – 64 locales built-in. • We don’t know the right way – but we can experiment.
  • 12. Docs: The New Hope •Consistent editing experience – Markdown is the golden standard. •Integrated in API reference (part of Javadoc comments, Swagger specs and Python docstrings). •Edit directly in GitHub or favorite editor. •Easily preview changes.
  • 16. Docs: The New Hope •Automation at the heart of the publishing process • API Doc Tooling (Node, Java, Python, .NET, REST, PowerShell, CLI) • Content Build and Validation • Content Testing Suite (404s, orphaned pages, SEO compliance) • GitHub Bots (automatically merge PRs, channel external feedback to internal bug tracker) • Sample Code Testing
  • 17. Docs: The New Hope •Making URLs readable https://msdn.microsoft.com/en-us/library/8ehhxeaf(v=vs.110).aspx https://docs.microsoft.com/dotnet/api/system.collections.generic.icomparer-1
  • 18. Docs: The New Hope •Convention over configuration – we infer content structure from folders in GitHub. •/content/test.md becomes docs.microsoft.com/cloud/content/test •Easy to set up redirects when things change, directly from the repo – broken links are much easier to fix.
  • 19. Docs: The New Hope •Content Versioning • No “burning in” into the URL. • Ensures URL consistency even when new versions are released. • Easily discoverable. • Reduces friction and broken links. • Using query param - ?view={moniker}
  • 20. Docs: The New Hope • API documentation discoverable from one place – the API Browser. • No need to hop between N+1 sites to find the API. • Semantic understanding of the APIs. • Reduce discovery and documentation friction. • Provide the artifacts (npm, pypi, source) and the docs are staged automatically. • Intertwined with human-edited content.
  • 21. Docs: The New Hope npm Package or Source Code JSDoc/TypeDoc Schema-based Document Processor YAML + Markdown docs.microsoft.com PyPI Package, sdist/bdist or Source Code Sphinx Schema-based Document Processor YAML + Markdown docs.microsoft.com Maven Package or Source Code Javadoc/Doxygen Schema-based Document Processor YAML + Markdown docs.microsoft.com Swagger Spec Swagger Processor Schema-based Document Processor YAML + Markdown docs.microsoft.com NuGet Package or DLLs nue/mdoc Schema-based Document Processor YAML + Markdown docs.microsoft.com
  • 22. Docs: The New Hope •28K+ API documentation CI executed in the past year. •10MM+ lines of auto- generated docs dropped into GitHub.
  • 23. Docs: The New Hope •This powers: • 9.5K+ JavaScript API documentation pages • 55K+ Java API documentation pages • 16K+ Python API documentation pages • 15K+ REST API documentation pages • 499K+ .NET API documentation pages
  • 24. Docs: The New Hope •Builds run multiple times a day. •Always documenting public latest versions of APIs in addition to secondary (supported) versions.
  • 25. Docs: The New Hope •All API docs have standard URL patterns • /python/api/{package-name}/{entity} • /java/api/{entity-qualified-name} • /javascript/api/{package-name}/{entity} • /rest/api/{product}/{op-group}/{operation} • /cli/{product}/{command}
  • 26. Docs: The New Hope • Documentation linked to source code. • Switch between versions on the fly. • Logically grouped API entities in the table of contents. • Grouping generated automatically – no human ever does that. • Allows us to scale to 10K+ APIs in minutes.
  • 27. Docs: The New Hope •Contracts over hand-crafted documents. •Schema defines entities and overall hierarchy. •Template globally applied. •Driving consistency in presentation. •Updates don’t break existing documentation.
  • 28. Docs: The New Hope •Generate any post-processing artifacts after build – IntelliSense and cross- reference files. •Artifacts can be used by product teams (Javadoc to be shipped with product).
  • 29. Docs: The New Hope • Structured documentation enables us to power rich API discovery experiences. • Find the necessary API in seconds. • Search across all products in a platform. • IDE “auto-suggest” – in a search experience.
  • 32. Beyond Text •Good documentation is not a wall of text. •Reducing friction from reading to trying – how can we allow you to see how things work in seconds? •Structured content allows us to understand where we can enable interactivity.
  • 33. Beyond Text •REST “Try It” •Powered by Swagger specs. •Run REST calls from a documentation page. •Instantly see output, with no apps involved.
  • 34. Beyond Text •.NET REPL •Run C# code in a stateless container. •Zero friction to get started – no auth required. •Any C# snippet can integrate it.
  • 35. Beyond Text •Azure Cloud Shell •Linux in the browser. •Works with Bash and PowerShell Core. •Stateful container connected to Azure subscription.
  • 37. Focus on Community •2.5K+ repositories • 1.1K+ public •4.3K+ internal members •A huge shift in how the entire company sees documentation and contributions to open source.
  • 38. Focus on Community •A lot of our projects were moved over to GitHub (VSCode, TypeScript, .NET, Monaco Editor). •Natural place to have documentation, with a huge community of passionate developers. (stats courtesy of GitHub)
  • 39. Focus on Community •Shifting feedback from silo-ed platforms to be open. •GitHub Issues – for content and site feedback. •Documentation is treated like a product – doc issue = bug.
  • 40. Focus on Community •Key learning – transparency matters. •Your customers know their needs better than you do – talk to them. All the time. •Working with your community is not the same as asking them to do the work for you. •Fostering the community and building trust takes time – coaching them on best practices and approaches is important.
  • 41. Focus on Community •Automation is your friend (again) • Contribution License Agreements (CLAs) • PR reviews (“Is my PR changing the right things?”) • Content build validation (“Is what I added causing issues?”) • Test any inserted code (“Does it build?”)
  • 42. Overview Before After Open Source Docs No Yes Localization Poor 64 Languages Mobile Support None Major platforms Accessibility Varied Built-in Content Location Fragmented Unified Sample Testing Sparse Automated CI API Docs Manual Automatic Feedback Varied, closed GitHub Analytics Fragmented Unified Engineering Duplicated Shared
  • 45. Handling Legacy Resources • Mo’ sites, mo’ problems. • Not as simple as simple as shutting the old site down in favor of the new one. • Content migration takes time – you will discover problems. A lot of problems. • Redirection is important – customers don’t like broken links. Neither do search engines. • Links are “baked into” products over years – you don’t want to break those.
  • 46. Handling Legacy Resources •You will inevitably get feedback that “old was better” – that’s not a cue to rebuild the old experience on the new site. •Communication is important – set expectations. •Habits die hard – it will take time for people to rely on new workflows.

Editor's Notes

  • #7: Way too often documentation is treated as an after-thought, where the product goes into a different direction, and then documentation teams have to
  • #10: User has to go to three different places to learn something basic – say I want to build a website with a database. I have to go to asp.net for some fundamental web docs, then to the SQL site to learn about databases, then to some library sites to get more info about how to connect them together.
  • #18: URLs became easily “hackable” and discoverable.
  • #26: We are no longer just a Windows company – we want to make sure that we empower developers across different platforms, such as Python, Java, JavaScript and others. We follow the standard URL conventions to make sure that developers feel confident they can find the APIs they need quickly.
  • #27: We are no longer just a Windows company – we want to make sure that we empower developers across different platforms, such as Python, Java, JavaScript and others. We follow the standard URL conventions to make sure that developers feel confident they can find the APIs they need quickly.
  • #38: We were using GitHub before we bought GitHub -
  • #41: Customers want to see that their feedback is being acted upon. They want to see that we are taking action and it’s not just going to some noreply mailbox.