Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Documentation is UX

Glenn
April 22, 2023

Documentation is UX

We spend a lot of time designing beautiful websites and tools; Crafting the perfect onboarding experiences for our users. Obsessing over colours and buttons and fonts, and yet ... why is writing the user documentation always left to last? and why is it always so difficult? and why does it not spark joy in our users?

This talk will look at the importance of documentation for your web based and CLI tools (because it'll be the first thing they go looking for when something goes wrong!) and will give tips on how to create the three types (and many forms) of product documentation so that users will truly enjoy the UX you created for them.

Glenn

April 22, 2023
Tweet

More Decks by Glenn

Other Decks in Technology

Transcript

  1. According to Nielsen Norman Group, 'user experience' includes all the

    aspects of the interaction between the end-user with the company, its services, and its products. @glennsarti - https://en.wikipedia.org/wiki/User_experience “
  2. … According to the ISO definition, user experience includes all

    the users' emotions, beliefs, preferences, perceptions, physical and psychological responses, behaviors and accomplishments that occur before, during, and after use … @glennsarti - https://en.wikipedia.org/wiki/User_experience “
  3. @glennsarti - https://en.wikipedia.org/wiki/User_experience … According to the ISO definition, user

    experience includes all the users' emotions, beliefs, preferences, perceptions, physical and psychological responses, behaviors and accomplishments that occur before, during, and after use … “
  4. @glennsarti > docker plugin create [OPTIONS] > docker start my_container

    > docker ps > docker rm > docker top > docker rmi my_image
  5. @glennsarti - https://www.youtube.com/watch?v=rQxJefYGWwU&t=346s As a consequence of our brains reaching

    for metaphors to come to grips with the world around us, we gain partial understanding of experiences. And which parts we grasp versus which parts elude us are determined by the metaphors we use. “
  6. @glennsarti - https://www.youtube.com/watch?v=rQxJefYGWwU&t=346s As a consequence of our brains reaching

    for metaphors to come to grips with the world around us, we gain partial understanding of experiences. And which parts we grasp versus which parts elude us are determined by the metaphors we use. “
  7. @glennsarti PS> Import-Module bad_module WARNING: The names of some imported

    commands from the module 'bad_module' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb. UX, Pwsh and Docs
  8. @glennsarti PS> Import-Module bad_module WARNING: The names of some imported

    commands from the module 'bad_module' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb. UX, Pwsh and Docs
  9. @glennsarti PS> Import-Module bad_module WARNING: The names of some imported

    commands from the module 'bad_module' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb. UX, Pwsh and Docs
  10. @glennsarti PS> Import-Module bad_module WARNING: The names of some imported

    commands from the module 'bad_module' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb. UX, Pwsh and Docs
  11. @glennsarti UX, Pwsh and Docs PS> Get-Help Get-AzResourceGroupDeploymentWhatIfResult -Detailed NAME

    Get-AzResourceGroupDeploymentWhatIfResult SYNOPSIS Gets a template What-If result for a deployment at resource group scope. SYNTAX Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] [-ExcludeChangeType <System.String[]>] [-Mode {Incremental | Complete}] [-Name <System.String>] [-Pre] -ResourceGroupName <System.String> [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile <System.String> [<CommonParameters>] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] [-ExcludeChangeType <System.String[]>] [-Mode {Incremental | Complete}] [-Name <System.String>] [-Pre] -ResourceGroupName <System.String> [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile <System.String> -TemplateParameterObject <System.Collections.Hashtable> [<CommonParameters>] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] [-ExcludeChangeType <System.String[]>] [-Mode {Incremental | Complete}] [-Name <System.String>] [-Pre] -ResourceGroupName <System.String> [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile <System.String> -TemplateParameterFile <System.String> [<CommonParameters>] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile <Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer>] [-ExcludeChangeType <System.String[]>] [-Mode {Incremental | Complete}] [-Name <System.String>] [-Pre] -ResourceGroupName <System.String> [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateUri <System.String> [<CommonParameters>] ... So much scrolling later ... 🥱
  12. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  13. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  14. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  15. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  16. @glennsarti User Stories As a user who has never seen

    the PlayPS module before I would like to quickly find the module requirements so that I can figure out if I can use the module on my computer
  17. @glennsarti User Personas Name: Harper PowerShell skill: Basic Job Role:

    IT Support PS Version: 5.1 OS: Windows PC Type: Desktop Name: Riley PowerShell skill: Medium Job Role: QA Lead PS Version: 7.3 OS: OSX PC Type: Laptop
  18. @glennsarti User Journeys … journey mapping starts by compiling a

    series of user actions into a timeline … with user thoughts and emotions in order to create a narrative … ultimately leading to a visualization. - https://www.nngroup.com/articles/journey-mapping-101/
  19. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  20. @glennsarti Narrative Documentation Explains how and why a user can

    do a thing Uses the structure of a story Most effective type Diggers of the pit of success
  21. @glennsarti Types of Documentation Reference Get-Help Get-HelpPreview Get-Help … –Online

    PowerShell Gallery Get-Help platyps Conceptual Source Repository README Get-Help about_Functions
  22. @glennsarti Types of Documentation Reference Get-Help Get-HelpPreview Get-Help … –Online

    PowerShell Gallery Get-Help platyps Conceptual Source Repository README Get-Help about_Functions Narrative README PowerShell Gallery External sites (Blogs etc.)
  23. @glennsarti - https://docsfordevelopers.com Most of us have to learn the

    importance of documentation the hard way, by finding it missing when we need it the most. “
  24. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users What Who
  25. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users Run tests New Contributor What Who
  26. @glennsarti Can they use the module Everyone Learn something general

    about the module First time users Returning inexperienced users Experienced PowerShell users Perform a specific task with the module Experienced PowerShell users Find why an error happened Returning inexperienced users Submit a bug report Returning inexperienced users Experienced PowerShell users Run tests New Contributor What Who ✅ ✅ ✅ ✅ ✅ ❌
  27. @glennsarti Source Module PlatyPS Generation docsy-pwsh Static documentation hugo GitHub

    Pages GitHub Actions - https://github.com/glennsarti/platyPS/blob/gs/docs-demo/.github/workflows/publish_docs.yaml
  28. @glennsarti Resources Source Code https://github.com/glennsarti/platyPS https://www.powershellgallery.com/packages/platyPS User Experience https://en.wikipedia.org/wiki/User_experience Eric

    Sorenson - Metaphors https://www.youtube.com/watch?v=rQxJefYGWwU&t=346s Journey Mapping https://www.nngroup.com/articles/journey-mapping-101/ Images https://unsplash.com @glennsarti