What Can UX Designers Teach Us About Being Better Devops Practitioners?

What Can UX Designers Teach Us About Being Better Devops Practitioners?

This is a set of slides from "What Can UX Designers Teach Us About Being Better Devops Practitioners?" from Agile + Devops West in June 2020.

Product for Internal teams: https://medium.com/@skamille/product-for-internal-platforms-9205c3a08142 Fundamentals of Design: How to Think Like A Designer https://www.skillshare.com/classes/Fundamentals-of-Design-How-to-Think-Like-a-Designer/1986357063 Don’t Make Me Think: http://sensible.com/dmmt.html
Rocket Surgery Made Easy: http://sensible.com/rsme.html Bootstrap: https://getbootstrap.com/
Ant.Design: https://ant.design/
Design Sprints: https://www.gv.com/sprint/

C7393b7ba7ec9c8890dd77d209fbb3c9?s=128

maltzj

June 11, 2020
Tweet

Transcript

  1. None
  2. None
  3. None
  4. None
  5. What Can UX Designers Teach Us About Being Better Devops

    Practitioners? Jonathan Maltz - June 11th, 2020
  6. 6 Agenda Culture Process Tools

  7. 7 Agenda Culture Tools

  8. Culture

  9. Build a culture of talking to users

  10. None
  11. 11

  12. Infrastructure teams build products.

  13. 13 What Are Your Products? Jenkins Kubernetes Pagerduty Splunk

  14. 14 Jenkins Kubernetes Pagerduty Splunk A product to help users

    reliably run CI jobs What Are Your Products?
  15. 15 Jenkins Kubernetes Pagerduty Splunk A product to help users

    reliably run CI jobs A product to help users deploy + scale applications What Are Your Products?
  16. 16 Jenkins Kubernetes Pagerduty Splunk A product to help users

    reliably run CI jobs A product to help users deploy + scale applications A product to help users respond to incidents What Are Your Products?
  17. 17 Jenkins Kubernetes Pagerduty Splunk A product to help users

    reliably run CI jobs A product to help users deploy + scale applications A product to help users respond to incidents A product to help users debug failures in their system What Are Your Products?
  18. 18 Who are your users?

  19. 19 Who are your users? Name: Just-Get-It-Done Jonathan Role: Software

    engineer Background: - Previously worked as a mobile engineer - Now building services for risk operators at Stripe - Occasionally goes to devops conferences Goals: - Get his services deployed easily - Help his team effectively use infra tools
  20. 20 These products have interfaces apiVersion: apps/v1 kind: Deployment metadata:

    name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80
  21. 21 These products have interfaces apiVersion: apps/v1 kind: Deployment metadata:

    name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 kubectl apply service.yaml
  22. 22 These products have interfaces service_image: stripe/test-service instance_size: r2.xlarge min_instances:

    1 max_instances: 100
  23. 23 These products have interfaces service_image: stripe/test-service instance_size: r2.xlarge min_instances:

    1 max_instances: 100
  24. Your users are all around you.

  25. Your users are all around you. Talk to them

  26. None
  27. 27 How to Talk to Users Find users Ask them

    questions Synthesize to make changes Repeat
  28. 28 How to Talk to Users Find users Ask them

    questions Synthesize to make changes Repeat
  29. Get diversity

  30. Get diversity of role

  31. Get diversity of experience

  32. Get diversity of background

  33. 33 How to Talk to Users Find users Ask them

    questions Synthesize to make changes Repeat
  34. Ask open ended questions

  35. “Do you like using Jenkins for testing services?”

  36. “Do you like using Jenkins for testing services?”

  37. “Can you talk to me about how you interacted with

    Jenkins on your last PR?”
  38. “Can you talk to me about how you interacted with

    Jenkins on your last PR?” ✅
  39. Users

  40. They are not

  41. They are not wrong

  42. 42 How to Talk to Users Find users Ask them

    questions Synthesize to make changes Repeat
  43. “I’m not really sure what that does. Whenever I have

    a CI failure I have to spend 3 minutes clicking around to find the stack trace ”
  44. “I’m not sure which buttons I can safely click here”

  45. “I often keep a few branches running because CI takes

    a long time.”
  46. Themes 46

  47. Themes Speed of results 1 47

  48. Themes Speed of results Simple error reporting 1 2 48

  49. Themes Speed of results Simple error reporting Ability to dig

    in as required 1 2 49 3
  50. None
  51. None
  52. None
  53. None
  54. 54 How to Talk to Users Find users Ask them

    questions Synthesize to make changes Repeat
  55. None
  56. None
  57. Interview to understand needs

  58. Interview to understand needs Decide on approaches

  59. Interview to understand needs Decide on approaches Create lightweight mock-ups

  60. Interview to understand needs Decide on approaches Create lightweight mock-ups

  61. Interview to understand needs Decide on approaches Create lightweight mock-ups

    Decide on final approach
  62. Interview to understand needs Decide on approaches Create lightweight mock-ups

    Decide on final approach Bug bash
  63. Tools

  64. None
  65. 65 Major Principles Similarity Principle Proximity Principle Past Experience Principle

    Common Region
  66. 66 Major Principles Similarity Principle Proximity Principle Past Experience Principle

    Common Region
  67. 67 Similarity Principle

  68. 68 Similarity Principle - In Practice Load Balancer Web Application

    Queue Workers Data Warehouse MySQL Queue Consumers
  69. 69 Similarity Principle - In Practice Load Balancer Web Application

    Queue Workers Data Warehouse MySQL Queue Consumers
  70. 70 Similarity Principle - In Practice Load Balancer Web Application

    Queue Consumers Data Warehouse MySQL Queue Workers
  71. 71 Similarity Principle - In Practice Load Balancer Web Application

    Queue Consumers Data Warehouse MySQL Queue Workers
  72. 72 Major Principles Similarity Principle Proximity Principle Past Experience Principle

    Common Region
  73. 73 Proximity Principle

  74. Queue worker throughput Overall error rate P99 response times 74

    Proximity Principle - In Practice P99 response times Overall error rate Queue worker throughput Queue Size Underreplicated partitions Frontend error rate P50 response times Checkout fulfillment error rate P95 response times
  75. 75 Proximity Principle - In Practice P99 response times Overall

    error rate Queue worker throughput Queue Size Underreplicated partitions Frontend error rate P95 response times P50 response times Checkout fulfillment error rate
  76. 76 Past Experience Principle Similarity Principle Proximity Principle Past Experience

    Principle Common Region
  77. 77 Past Experiences Principle

  78. 78 Past Experience Principle - In Practice Are you sure

    you want to delete this graph? Yes No
  79. 79 Past Experience Principle - In Practice Are you sure

    you want to delete this graph? Yes No
  80. 80 Past Experience Principle - In Practice Are you sure

    you want to turn off this this cluster? Yes No
  81. 81 Past Experience Principle Similarity Principle Proximity Principle Past Experience

    Principle Common Region
  82. 82 Common Region

  83. 83 Common Region

  84. 84 Common Region

  85. 85 Common Region - In Practice Your Deployments • Deployment

    #1: aaaaaa • Deployment #2: bbbbb • Deployment #3: cccccc All Deployments • Deployment #10: 123456 • Deployment #22: 987654 • Deployment #33: 024689
  86. 86 Common Region - In Practice Your Deployments • Deployment

    #1: aaaaaa • Deployment #2: bbbbb • Deployment #3: cccccc All Deployments • Deployment #10: 123456 • Deployment #22: 987654 • Deployment #33: 024689
  87. 87 Common Region - In Practice Your Deployments • Deployment

    #1: aaaaaa • Deployment #2: bbbbb • Deployment #3: cccccc All Deployments • Deployment #10: 123456 • Deployment #22: 987654 • Deployment #33: 024689
  88. Design Systems

  89. 89 Design Systems

  90. Task: Build a tool to know if a service is

    healthy and create an incident if it’s not.
  91. 91 What makes the service healthy? Responding reasonably quickly Users

    are seeing an acceptable level of errors Data is flowing to the data warehouse
  92. Response times (p99) Response times (p95) Error Rates Checkout Errors

    Redshift Exporter Duration Redshift Delay (seconds) Create Incident
  93. Response times (p99) Response times (p95) Error Rates Checkout Errors

    Redshift Exporter Duration Redshift Delay (seconds) Create Incident Open Open Open Open Open Open
  94. Response times (p99) Response times (p95) Error Rates Checkout Errors

    Redshift Exporter Duration Redshift Delay (seconds) Create Incident Open Open Open Open Open Open
  95. Response Latency Response times (p99) Error Rates Total Errors Redshift

    Connector Redshift Delay (seconds) Create Incident Healthy Healthy Unhealthy Open Open Open
  96. Response Latency Response times (p99) Error Rates Total Errors Redshift

    Connector Redshift Delay (seconds) Create Incident Healthy Healthy Unhealthy Open Open Open
  97. Response Latency Response times (p99) Error Rates Total Errors Redshift

    Connector Redshift Delay (seconds) Create Incident Open Open Open
  98. Response Latency Response times (p99) Error Rates Total Errors Redshift

    Connector Redshift Delay (seconds) Create Incident Open Open Open
  99. Response Latency Response times (p99) Error Rates Total Errors Redshift

    Connector Redshift Delay (seconds) Create Incident Open Open Open
  100. Summary

  101. Three Takeaways 101

  102. Three Takeaways You’re building products. Your users are your colleagues

    1 102
  103. Three Takeaways You’re building products. Your users are your colleagues

    Involve your users in open-ended conversations 1 2 103
  104. Three Takeaways You’re building products. Your customers are your colleagues

    Involve your customers in open-ended conversations You don’t need a design degree to make usable tools 1 2 104 3
  105. 105

  106. Jonathan Maltz - @maltzj

  107. Resources Product for Internal teams: https://medium.com/@skamille/product-for-internal-platforms-9205c3a08142 Fundamentals of Design: How

    to Think Like A Designer https://www.skillshare.com/classes/Fundamentals-of-Design-How-to-Think-Like-a-Designer/1986357063 Don’t Make Me Think: http://sensible.com/dmmt.html Rocket Surgery Made Easy: http://sensible.com/rsme.html Bootstrap: https://getbootstrap.com/ Ant.Design: https://ant.design/ Design Sprints: https://www.gv.com/sprint/ 107
  108. 108