Slide 1

Slide 1 text

@glennsarti glenn-sarti Glenn Sarti - Senior Software Engineer at

Slide 2

Slide 2 text

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 “

Slide 3

Slide 3 text

… 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 “

Slide 4

Slide 4 text

@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 … “

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

@glennsarti

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

@glennsarti

Slide 9

Slide 9 text

@glennsarti

Slide 10

Slide 10 text

@glennsarti

Slide 11

Slide 11 text

@glennsarti Icons Colour

Slide 12

Slide 12 text

@glennsarti CLI Applications

Slide 13

Slide 13 text

@glennsarti

Slide 14

Slide 14 text

@glennsarti

Slide 15

Slide 15 text

@glennsarti /? -h --help help –H ? …

Slide 16

Slide 16 text

@glennsarti > kubectl get pod example-pod1

Slide 17

Slide 17 text

@glennsarti > docker plugin create [OPTIONS]

Slide 18

Slide 18 text

@glennsarti > docker start my_container

Slide 19

Slide 19 text

@glennsarti > docker ps > docker rm > docker top

Slide 20

Slide 20 text

@glennsarti > docker rmi my_image

Slide 21

Slide 21 text

@glennsarti > docker plugin create [OPTIONS] > docker start my_container > docker ps > docker rm > docker top > docker rmi my_image

Slide 22

Slide 22 text

@glennsarti Aside : Metaphors

Slide 23

Slide 23 text

@glennsarti Aside : Metaphors - https://www.youtube.com/watch?v=rQxJefYGWwU&t=346s

Slide 24

Slide 24 text

@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. “

Slide 25

Slide 25 text

@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. “

Slide 26

Slide 26 text

@glennsarti Where’s the docs?

Slide 27

Slide 27 text

@glennsarti Where’s the docs?

Slide 28

Slide 28 text

@glennsarti

Slide 29

Slide 29 text

@glennsarti

Slide 30

Slide 30 text

@glennsarti

Slide 31

Slide 31 text

@glennsarti

Slide 32

Slide 32 text

@glennsarti First use Where’s the docs?

Slide 33

Slide 33 text

@glennsarti First use Failures Where’s the docs?

Slide 34

Slide 34 text

@glennsarti

Slide 35

Slide 35 text

@glennsarti 🔊 🔊 🔊 🔊 🔊 🔊 🔊 🔊

Slide 36

Slide 36 text

@glennsarti First use Failures Where’s the docs?

Slide 37

Slide 37 text

@glennsarti

Slide 38

Slide 38 text

@glennsarti Service Manual Install manual

Slide 39

Slide 39 text

@glennsarti First use Failures Modifications Where’s the docs?

Slide 40

Slide 40 text

@glennsarti First use Failures Modifications UX, Pwsh and Docs

Slide 41

Slide 41 text

@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

Slide 42

Slide 42 text

@glennsarti Get-Help UX, Pwsh and Docs

Slide 43

Slide 43 text

@glennsarti UX, Pwsh and Docs

Slide 44

Slide 44 text

@glennsarti UX, Pwsh and Docs

Slide 45

Slide 45 text

@glennsarti UX, Pwsh and Docs

Slide 46

Slide 46 text

@glennsarti First use Failures Modifications UX, Pwsh and Docs

Slide 47

Slide 47 text

@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

Slide 48

Slide 48 text

@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

Slide 49

Slide 49 text

@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

Slide 50

Slide 50 text

@glennsarti First use Failures Modifications UX, Pwsh and Docs

Slide 51

Slide 51 text

@glennsarti UX, Pwsh and Docs

Slide 52

Slide 52 text

@glennsarti UX, Pwsh and Docs

Slide 53

Slide 53 text

@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 ] [-ExcludeChangeType ] [-Mode {Incremental | Complete}] [-Name ] [-Pre] -ResourceGroupName [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile [] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile ] [-ExcludeChangeType ] [-Mode {Incremental | Complete}] [-Name ] [-Pre] -ResourceGroupName [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile -TemplateParameterObject [] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile ] [-ExcludeChangeType ] [-Mode {Incremental | Complete}] [-Name ] [-Pre] -ResourceGroupName [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateFile -TemplateParameterFile [] Get-AzResourceGroupDeploymentWhatIfResult [-DefaultProfile ] [-ExcludeChangeType ] [-Mode {Incremental | Complete}] [-Name ] [-Pre] -ResourceGroupName [-ResultFormat {ResourceIdOnly | FullResourcePayloads}] [-SkipTemplateParameterPrompt] -TemplateUri [] ... So much scrolling later ... 🥱

Slide 54

Slide 54 text

@glennsarti UX, Pwsh and Docs

Slide 55

Slide 55 text

@glennsarti Documentation is part of the UX.

Slide 56

Slide 56 text

@glennsarti Documentation is part of the UX.

Slide 57

Slide 57 text

@glennsarti - https://www.powershellgallery.com/packages/platyPS

Slide 58

Slide 58 text

@glennsarti What & Who

Slide 59

Slide 59 text

@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

Slide 60

Slide 60 text

@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

Slide 61

Slide 61 text

@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

Slide 62

Slide 62 text

@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

Slide 63

Slide 63 text

@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

Slide 64

Slide 64 text

@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

Slide 65

Slide 65 text

@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/

Slide 66

Slide 66 text

@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

Slide 67

Slide 67 text

@glennsarti Types of Documentation

Slide 68

Slide 68 text

@glennsarti Types of Documentation - https://www.youtube.com/watch?v=0S0eAuGzjpI

Slide 69

Slide 69 text

@glennsarti Reference Documentation Explains technical details Mostly ubiquitous Unforgivable if missing Insufficient

Slide 70

Slide 70 text

@glennsarti Conceptual Documentation Least common type Mandatory for good UX Answers a specific question

Slide 71

Slide 71 text

@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

Slide 72

Slide 72 text

@glennsarti Types of Documentation Reference Get-Help Get-HelpPreview Get-Help … –Online PowerShell Gallery Get-Help platyps

Slide 73

Slide 73 text

@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

Slide 74

Slide 74 text

@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.)

Slide 75

Slide 75 text

@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. “

Slide 76

Slide 76 text

@glennsarti Reference Conceptual Procedural Types of Documentation Getting Started READMEs Code Comments

Slide 77

Slide 77 text

@glennsarti Reference Conceptual Procedural Types of Documentation Getting Started READMEs Code Comments

Slide 78

Slide 78 text

@glennsarti Reference Conceptual Procedural Types of Documentation Getting Started READMEs Code Comments

Slide 79

Slide 79 text

@glennsarti Reference Conceptual Procedural Types of Documentation Getting Started READMEs Code Comments

Slide 80

Slide 80 text

@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

Slide 81

Slide 81 text

@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

Slide 82

Slide 82 text

@glennsarti

Slide 83

Slide 83 text

@glennsarti From Where Chat Email “Knowledge Bases” Forums Issue Trackers Meta-documents

Slide 84

Slide 84 text

@glennsarti From Where Chat Email “Knowledge Bases” Forums Issue Trackers Meta-documents

Slide 85

Slide 85 text

@glennsarti From Where Chat Email “Knowledge Bases” Forums Issue Trackers Meta-documents Asking Humans

Slide 86

Slide 86 text

@glennsarti To where?

Slide 87

Slide 87 text

@glennsarti Findable Readable Changeable

Slide 88

Slide 88 text

@glennsarti Demo

Slide 89

Slide 89 text

@glennsarti Demo https://sarti.dev/platyPS

Slide 90

Slide 90 text

@glennsarti Documentarian https://github.com/microsoft/Documentarian - https://sarti.dev/platyPS

Slide 91

Slide 91 text

@glennsarti - https://sarti.dev/platyPS

Slide 92

Slide 92 text

@glennsarti

Slide 93

Slide 93 text

@glennsarti

Slide 94

Slide 94 text

@glennsarti

Slide 95

Slide 95 text

@glennsarti

Slide 96

Slide 96 text

@glennsarti

Slide 97

Slide 97 text

@glennsarti

Slide 98

Slide 98 text

@glennsarti

Slide 99

Slide 99 text

@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 ✅ ✅ ✅ ✅ ✅ ❌

Slide 100

Slide 100 text

@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

Slide 101

Slide 101 text

@glennsarti

Slide 102

Slide 102 text

@glennsarti

Slide 103

Slide 103 text

@glennsarti Demo https://sarti.dev/platyPS

Slide 104

Slide 104 text

@glennsarti

Slide 105

Slide 105 text

@glennsarti http://sarti.dev/platyPS https://speakerdeck.com/glennsarti https://powershellsummit.org/sessionfeedback THANK YOU! Please use the link below to submit a session rating!

Slide 106

Slide 106 text

@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

Slide 107

Slide 107 text

@glennsarti Resources Documentation as UX https://www.youtube.com/watch?v=0S0eAuGzjpI Docs for Developers https://docsfordevelopers.com @glennsarti