際際滷

際際滷Share a Scribd company logo
When UX (guy) Meets Operations
Tim Sheiner
Velocity Conference
27 May 2015
When UX guy meets DevOps
2
?
When UX guy meets DevOps
2
DevOps
, he has a lot to learn
He uses a time-tested design process
1. Personas
2. Mental Model
3. Analogy
4. Prototype
3
What are personas?
Personas are 鍖ctitious characters that are used to help teams design products.
 Personas are as fake and as real as the characters in your favorite TV show.
 They dont actually exist, and yet, you learn to care about them and have many of the
same expectations about them as the real people in your life.
4
Why personas?
Personas were created to address a too common product design communication
problem.
5
Users want
feature x.
Nope.
Why personas?
The human instinct for empathy means we know how to share ideas about the behavior of
people we know in common.
6
Kyle wants
feature x.
Yup.
We use personas to tell product stories
To help us create an accountable connection between the needs we gather during
research and the agile stories we implement.
7
Mental Model
validate
iterate
Features
Prototypes
validate
iterate
DevOps Persona
8
Customers
System
Increase capacity and resilience of
the System
Protect the System
Use the System to deliver
features to customers
Future System
Thomas - The Architect
Kyle - The Ops Guy
Jenny - The Dev Gal
What is their
mental model of the
system?
9
System
Thomas - The Architect
Kyle - The Ops Guy
Jenny - The Dev Gal
Mental models help us understand the world.
10
Illustration and argument from Hugh Dubberly, Models of Models, 2009
Mental models help us make sense of things.
11
Illustration and argument from Hugh Dubberly, Models of Models, 2009
We use mental models to make decisions.
12
Illustration and argument from Hugh Dubberly, Models of Models, 2009
Mental models are the basis for learning.
13
Illustration and argument from Hugh Dubberly, Models of Models, 2009
Mental models are the basis for learning.
13
Illustration and argument from Hugh Dubberly, Models of Models, 2009
We learn relative to our existing models.
14
Illustration and argument from Hugh Dubberly, Models of Models, 2009
We communicate by telling stories about models.
15
Illustration and argument from Hugh Dubberly, Models of Models, 2009
Before I understand the jargon, descriptions dont help much.
16
Kyle, tell me about
the system.
System
Before I understand the jargon, descriptions dont help much.
16
Blah blah data center blah blah
microservices blah blah high
availability blah blah ipsec mesh
blah blah horizontal duplication
blah blah
System
Stories about challenges are the thing.
17
Kyle, tell me a story
about what happens
when you get an
alert?
System
In Kyles model the ops space has 3 dimensions!
18
1. Who is being affected?
2. How are they being affected?
3. How long have they been
affected?
Services - Logical
Hardware - Physical
Time
Customers
In Kyles model the ops space has 3 dimensions!
18
1. Who is being affected?
2. How are they being affected?
3. How long have they been
affected?
Services - Logical
Hardware - Physical
Time
Customers
Keep going, what
happens next?
Stories in this space are about nested operation sequences.
19
Log In Stream MediaMedia Query
1. Applications
Stories in this space are about nested operation sequences.
19
Log In Stream MediaMedia Query
Parse Optimize
Build Execution
Plan
Run Plan
Syntax Check
Semantic
Check
Shared Pool
Check
SC 1 SC 2 SC 3
Services - Logical
Hardware - Physical
1. Applications
2. Nested Services &
sub-services
3. Steps are
transactions
4. Logical to Physical
Return Results
To me, the model is sensible but novel.
20
Hmm.
Services, steps,
transactions
I find a familiar model by analogy.
21
Oh!
I see. Like Fedex!
Sure.
I need to validate that I understand the model.
22
Illustration and argument from Hugh Dubberly, Models of Models, 2009
The Power of Analogy
Analogy is a critical design thinking method.
 A way to validate congruence in mental models
 A method to bring past experience to bear on present
circumstances
 A source of inspiration for developing solutions
23
Design by Analogy - Georgia Tech - KBAI:
This is inspiration for a prototype.
24
What is a prototype?
Prototypes are simple, focused, tools for testing
ideas visually.
 every prototype has a speci鍖c learning
objective
 prototype scope is the simplest thing you can
create to achieve that objective
 a series of prototypes can be used to iterate
towards a 鍖nal solution
25
http://zurb.com/word/prototyping
http://boltgroup.com/product/work-product/studies-product/kobalt-
tools-product#.VWXzi1xVhBc
https://www.behance.net/gallery/4323339/iPhone-App-ConceptPrototype
http://www.infoq.com/articles/guest-simon-sketchflow
I want to test an experience based on this model
26
//jut.io
Dashboard
Last 24 hours
Canvas Admin
Blog Community Documentation 27
Service Monitor
Hardware Health
Customer KPIs
Service Monitor
Visitors
TotalVisitors(x1000)
0
5
11
16
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Streams
TotalStreams(x1000)
0
5
9
14
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Login Success Rate
99%
Media Query Execution Time
800ms
Stream Lag Ratio
2%
//jut.io
Dashboard
Last 24 hours
Canvas Admin
Blog Community Documentation 27
Service Monitor
Hardware Health
Customer KPIs
Service Monitor
Visitors
TotalVisitors(x1000)
0
5
11
16
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Streams
TotalStreams(x1000)
0
5
9
14
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Login Success Rate
99%
Media Query Execution Time
800ms
Stream Lag Ratio
2%
//jut.io
Dashboard
Last 24 hours
Canvas Admin
Blog Community Documentation 28
Service Monitor
Visitors
TotalVisitors(x1000)
0
5
11
16
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Streams
TotalStreams(x1000)
0
5
9
14
06:00 10:00 14:00 18:00 22:00 02:00 06:00
Login Success Rate
99%
Media Query Execution Time
800ms
Stream Lag Ratio
2%
Service Monitor
Hardware Health
Customer KPIs
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 29
Service Monitor > Query ServiceService Monitor
Login Service
Query Service
Streaming Service
Hardware Health
Customer KPIs
Query Steps/Time (ms) by Region
Step Americas EU APAC
Parse 120 1200 130
Optimize 120 120 100
Build Plan 100 100 100
Run Plan 90 90 90
Return Results 60 60 80
Query Steps = average for last month
Optimize Run Plan Return ResultsBuild Execution PlanParse
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 29
Service Monitor > Query ServiceService Monitor
Login Service
Query Service
Streaming Service
Hardware Health
Customer KPIs
Query Steps/Time (ms) by Region
Step Americas EU APAC
Parse 120 1200 130
Optimize 120 120 100
Build Plan 100 100 100
Run Plan 90 90 90
Return Results 60 60 80
Query Steps = average for last month
Optimize Run Plan Return ResultsBuild Execution PlanParse
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 30
Service Monitor > Query ServiceService Monitor
Login Service
Query Service
Streaming Service
Hardware Health
Customer KPIs
Query Steps/Time (ms) by Region
Step Americas EU APAC
Parse 120 1200 130
Optimize 120 120 100
Build Plan 100 100 100
Run Plan 90 90 90
Return Results 60 60 80
Query Steps = average for last month
Optimize Run Plan Return ResultsBuild Execution PlanParse
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 31
Service Monitor > Query Service > ParseService Monitor
Login Service
Query Service
Parse
Optimize
Build Plan
Run Plan
Return
Streaming Service
Hardware Health
Customer KPIs
Parsing Service Steps = average for last month
Syntax Check Semantic Check Shared Pool Check
Syntax Check Shared Pool CheckPOP Semantic Check
ENG1
ENG2
FR1
GER1
IR1
ITA2
SPA1
SPA2
40
30
3500
30
30
40
45
45
Physical location
London, England
Bristol, England
Paris, France
Berlin, Germany
Dublin, Ireland
Milan, Italy
Madrid, Spain
Barcelona, Spain
40
30
30
30
30
40
45
45
40
30
30
30
30
40
45
45
EURegion
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 31
Service Monitor > Query Service > ParseService Monitor
Login Service
Query Service
Parse
Optimize
Build Plan
Run Plan
Return
Streaming Service
Hardware Health
Customer KPIs
Parsing Service Steps = average for last month
Syntax Check Semantic Check Shared Pool Check
Syntax Check Shared Pool CheckPOP Semantic Check
ENG1
ENG2
FR1
GER1
IR1
ITA2
SPA1
SPA2
40
30
3500
30
30
40
45
45
Physical location
London, England
Bristol, England
Paris, France
Berlin, Germany
Dublin, Ireland
Milan, Italy
Madrid, Spain
Barcelona, Spain
40
30
30
30
30
40
45
45
40
30
30
30
30
40
45
45
EURegion
//jut.io
Canvas Admin
Last 24 hours
Dashboard
Blog Community Documentation 32
Service Monitor > Query Service > ParseService Monitor
Login Service
Query Service
Parse
Optimize
Build Plan
Run Plan
Return
Streaming Service
Hardware Health
Customer KPIs
Parsing Service Steps = average for last month
Syntax Check Semantic Check Shared Pool Check
Syntax Check Shared Pool CheckPOP Semantic Check
ENG1
ENG2
FR1
GER1
IR1
ITA2
SPA1
SPA2
40
30
3500
30
30
40
45
45
Physical location
London, England
Bristol, England
Paris, France
Berlin, Germany
Dublin, Ireland
Milan, Italy
Madrid, Spain
Barcelona, Spain
40
30
30
30
30
40
45
45
40
30
30
30
30
40
45
45
EURegion
//jut.io
Dashboard
Last 24 hours
Canvas Admin
Blog Community Documentation 33
Hardware Health > By POP
CPU
%Load
0
4
7
11
06:00 10:00 14:00 18:00 22:00 02:00 06:00
host 1 host 2 host 3 host 4 host 5 host 6
host 7 host 8
Memory
%Used
0
33
67
100
06:00 10:00 14:00 18:00 22:00 02:00 06:00
host 1 host 2 host 3 host 4 host 5 host 6
host 7 host 8
FR1POP
Service Monitor
Hardware Health
By Pop
By Host
Customer KPIs
The prototype moves the conversation forward.
34
Hmmm. OK.
Interesting.
Not entirely plausible.
Why prototype?
Prototypes improve communication.
 They produce a shared reference for communication
 They encourage thinking in terms of stories
 They bring attention to interaction
35
Beginning Middle End
The design process creates a conversation around value.
By iterating models, the UX guy learns how to build tools for the Ops guy.
36
Features
validate
iterate
validate
iterate
How can you use this process?
1. Learn about your customers
2. Understand their perspectives
3. Find a shared understanding of the problem
4. Use a low risk, collaborative method to get to a solution
38
Learn about your customers
1. Ask to interview them
1. Ask about their role
2. Ask about the background on their need
3. Ask them to describe success
2. Observe
1. Ask them to show you how they work
2. Pay attention to the difference between what they say and what they do
39
Understand their perspective
1. Be humble
2. There are no dumb questions
3. Get them telling stories about their work, about challenges
4. Visualize your understanding
40
Find a shared understanding of the problem
1. Focus on understanding the problem 鍖rst
2. Search for analogous problems
3. Use analogy to restate the problem
4. Validate that your customer agrees with the restatement
41
Use a low risk, collaborative method to get to a solution
1. De鍖ne learning objectives for each prototype or iteration
2. Use the lowest 鍖delity approach that captures the detail you need to understand
3. Tell stories with and about your prototype
4. Share your prototypes and encourage feedback
42
Be a modeler!
Use models to communicate.
 Recognize models
 Build models
 Draw models
 Share models
 Talk about models
43
At Jut these we are using these design practices
to build an operations data hub for unified
analytics on logs, metrics and events.
Check it out at www.jut.io and let me know what
you think.
Tim Sheiner
@tsheiner
44

More Related Content

When UX (guy) Meets Operations

  • 1. When UX (guy) Meets Operations Tim Sheiner Velocity Conference 27 May 2015
  • 2. When UX guy meets DevOps 2
  • 3. ? When UX guy meets DevOps 2 DevOps , he has a lot to learn
  • 4. He uses a time-tested design process 1. Personas 2. Mental Model 3. Analogy 4. Prototype 3
  • 5. What are personas? Personas are 鍖ctitious characters that are used to help teams design products. Personas are as fake and as real as the characters in your favorite TV show. They dont actually exist, and yet, you learn to care about them and have many of the same expectations about them as the real people in your life. 4
  • 6. Why personas? Personas were created to address a too common product design communication problem. 5 Users want feature x. Nope.
  • 7. Why personas? The human instinct for empathy means we know how to share ideas about the behavior of people we know in common. 6 Kyle wants feature x. Yup.
  • 8. We use personas to tell product stories To help us create an accountable connection between the needs we gather during research and the agile stories we implement. 7 Mental Model validate iterate Features Prototypes validate iterate
  • 9. DevOps Persona 8 Customers System Increase capacity and resilience of the System Protect the System Use the System to deliver features to customers Future System Thomas - The Architect Kyle - The Ops Guy Jenny - The Dev Gal
  • 10. What is their mental model of the system? 9 System Thomas - The Architect Kyle - The Ops Guy Jenny - The Dev Gal
  • 11. Mental models help us understand the world. 10 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 12. Mental models help us make sense of things. 11 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 13. We use mental models to make decisions. 12 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 14. Mental models are the basis for learning. 13 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 15. Mental models are the basis for learning. 13 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 16. We learn relative to our existing models. 14 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 17. We communicate by telling stories about models. 15 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 18. Before I understand the jargon, descriptions dont help much. 16 Kyle, tell me about the system. System
  • 19. Before I understand the jargon, descriptions dont help much. 16 Blah blah data center blah blah microservices blah blah high availability blah blah ipsec mesh blah blah horizontal duplication blah blah System
  • 20. Stories about challenges are the thing. 17 Kyle, tell me a story about what happens when you get an alert? System
  • 21. In Kyles model the ops space has 3 dimensions! 18 1. Who is being affected? 2. How are they being affected? 3. How long have they been affected? Services - Logical Hardware - Physical Time Customers
  • 22. In Kyles model the ops space has 3 dimensions! 18 1. Who is being affected? 2. How are they being affected? 3. How long have they been affected? Services - Logical Hardware - Physical Time Customers Keep going, what happens next?
  • 23. Stories in this space are about nested operation sequences. 19 Log In Stream MediaMedia Query 1. Applications
  • 24. Stories in this space are about nested operation sequences. 19 Log In Stream MediaMedia Query Parse Optimize Build Execution Plan Run Plan Syntax Check Semantic Check Shared Pool Check SC 1 SC 2 SC 3 Services - Logical Hardware - Physical 1. Applications 2. Nested Services & sub-services 3. Steps are transactions 4. Logical to Physical Return Results
  • 25. To me, the model is sensible but novel. 20 Hmm. Services, steps, transactions
  • 26. I find a familiar model by analogy. 21 Oh! I see. Like Fedex! Sure.
  • 27. I need to validate that I understand the model. 22 Illustration and argument from Hugh Dubberly, Models of Models, 2009
  • 28. The Power of Analogy Analogy is a critical design thinking method. A way to validate congruence in mental models A method to bring past experience to bear on present circumstances A source of inspiration for developing solutions 23 Design by Analogy - Georgia Tech - KBAI:
  • 29. This is inspiration for a prototype. 24
  • 30. What is a prototype? Prototypes are simple, focused, tools for testing ideas visually. every prototype has a speci鍖c learning objective prototype scope is the simplest thing you can create to achieve that objective a series of prototypes can be used to iterate towards a 鍖nal solution 25 http://zurb.com/word/prototyping http://boltgroup.com/product/work-product/studies-product/kobalt- tools-product#.VWXzi1xVhBc https://www.behance.net/gallery/4323339/iPhone-App-ConceptPrototype http://www.infoq.com/articles/guest-simon-sketchflow
  • 31. I want to test an experience based on this model 26
  • 32. //jut.io Dashboard Last 24 hours Canvas Admin Blog Community Documentation 27 Service Monitor Hardware Health Customer KPIs Service Monitor Visitors TotalVisitors(x1000) 0 5 11 16 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Streams TotalStreams(x1000) 0 5 9 14 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Login Success Rate 99% Media Query Execution Time 800ms Stream Lag Ratio 2%
  • 33. //jut.io Dashboard Last 24 hours Canvas Admin Blog Community Documentation 27 Service Monitor Hardware Health Customer KPIs Service Monitor Visitors TotalVisitors(x1000) 0 5 11 16 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Streams TotalStreams(x1000) 0 5 9 14 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Login Success Rate 99% Media Query Execution Time 800ms Stream Lag Ratio 2%
  • 34. //jut.io Dashboard Last 24 hours Canvas Admin Blog Community Documentation 28 Service Monitor Visitors TotalVisitors(x1000) 0 5 11 16 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Streams TotalStreams(x1000) 0 5 9 14 06:00 10:00 14:00 18:00 22:00 02:00 06:00 Login Success Rate 99% Media Query Execution Time 800ms Stream Lag Ratio 2% Service Monitor Hardware Health Customer KPIs
  • 35. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 29 Service Monitor > Query ServiceService Monitor Login Service Query Service Streaming Service Hardware Health Customer KPIs Query Steps/Time (ms) by Region Step Americas EU APAC Parse 120 1200 130 Optimize 120 120 100 Build Plan 100 100 100 Run Plan 90 90 90 Return Results 60 60 80 Query Steps = average for last month Optimize Run Plan Return ResultsBuild Execution PlanParse
  • 36. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 29 Service Monitor > Query ServiceService Monitor Login Service Query Service Streaming Service Hardware Health Customer KPIs Query Steps/Time (ms) by Region Step Americas EU APAC Parse 120 1200 130 Optimize 120 120 100 Build Plan 100 100 100 Run Plan 90 90 90 Return Results 60 60 80 Query Steps = average for last month Optimize Run Plan Return ResultsBuild Execution PlanParse
  • 37. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 30 Service Monitor > Query ServiceService Monitor Login Service Query Service Streaming Service Hardware Health Customer KPIs Query Steps/Time (ms) by Region Step Americas EU APAC Parse 120 1200 130 Optimize 120 120 100 Build Plan 100 100 100 Run Plan 90 90 90 Return Results 60 60 80 Query Steps = average for last month Optimize Run Plan Return ResultsBuild Execution PlanParse
  • 38. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 31 Service Monitor > Query Service > ParseService Monitor Login Service Query Service Parse Optimize Build Plan Run Plan Return Streaming Service Hardware Health Customer KPIs Parsing Service Steps = average for last month Syntax Check Semantic Check Shared Pool Check Syntax Check Shared Pool CheckPOP Semantic Check ENG1 ENG2 FR1 GER1 IR1 ITA2 SPA1 SPA2 40 30 3500 30 30 40 45 45 Physical location London, England Bristol, England Paris, France Berlin, Germany Dublin, Ireland Milan, Italy Madrid, Spain Barcelona, Spain 40 30 30 30 30 40 45 45 40 30 30 30 30 40 45 45 EURegion
  • 39. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 31 Service Monitor > Query Service > ParseService Monitor Login Service Query Service Parse Optimize Build Plan Run Plan Return Streaming Service Hardware Health Customer KPIs Parsing Service Steps = average for last month Syntax Check Semantic Check Shared Pool Check Syntax Check Shared Pool CheckPOP Semantic Check ENG1 ENG2 FR1 GER1 IR1 ITA2 SPA1 SPA2 40 30 3500 30 30 40 45 45 Physical location London, England Bristol, England Paris, France Berlin, Germany Dublin, Ireland Milan, Italy Madrid, Spain Barcelona, Spain 40 30 30 30 30 40 45 45 40 30 30 30 30 40 45 45 EURegion
  • 40. //jut.io Canvas Admin Last 24 hours Dashboard Blog Community Documentation 32 Service Monitor > Query Service > ParseService Monitor Login Service Query Service Parse Optimize Build Plan Run Plan Return Streaming Service Hardware Health Customer KPIs Parsing Service Steps = average for last month Syntax Check Semantic Check Shared Pool Check Syntax Check Shared Pool CheckPOP Semantic Check ENG1 ENG2 FR1 GER1 IR1 ITA2 SPA1 SPA2 40 30 3500 30 30 40 45 45 Physical location London, England Bristol, England Paris, France Berlin, Germany Dublin, Ireland Milan, Italy Madrid, Spain Barcelona, Spain 40 30 30 30 30 40 45 45 40 30 30 30 30 40 45 45 EURegion
  • 41. //jut.io Dashboard Last 24 hours Canvas Admin Blog Community Documentation 33 Hardware Health > By POP CPU %Load 0 4 7 11 06:00 10:00 14:00 18:00 22:00 02:00 06:00 host 1 host 2 host 3 host 4 host 5 host 6 host 7 host 8 Memory %Used 0 33 67 100 06:00 10:00 14:00 18:00 22:00 02:00 06:00 host 1 host 2 host 3 host 4 host 5 host 6 host 7 host 8 FR1POP Service Monitor Hardware Health By Pop By Host Customer KPIs
  • 42. The prototype moves the conversation forward. 34 Hmmm. OK. Interesting. Not entirely plausible.
  • 43. Why prototype? Prototypes improve communication. They produce a shared reference for communication They encourage thinking in terms of stories They bring attention to interaction 35 Beginning Middle End
  • 44. The design process creates a conversation around value. By iterating models, the UX guy learns how to build tools for the Ops guy. 36 Features validate iterate validate iterate
  • 45. How can you use this process? 1. Learn about your customers 2. Understand their perspectives 3. Find a shared understanding of the problem 4. Use a low risk, collaborative method to get to a solution 38
  • 46. Learn about your customers 1. Ask to interview them 1. Ask about their role 2. Ask about the background on their need 3. Ask them to describe success 2. Observe 1. Ask them to show you how they work 2. Pay attention to the difference between what they say and what they do 39
  • 47. Understand their perspective 1. Be humble 2. There are no dumb questions 3. Get them telling stories about their work, about challenges 4. Visualize your understanding 40
  • 48. Find a shared understanding of the problem 1. Focus on understanding the problem 鍖rst 2. Search for analogous problems 3. Use analogy to restate the problem 4. Validate that your customer agrees with the restatement 41
  • 49. Use a low risk, collaborative method to get to a solution 1. De鍖ne learning objectives for each prototype or iteration 2. Use the lowest 鍖delity approach that captures the detail you need to understand 3. Tell stories with and about your prototype 4. Share your prototypes and encourage feedback 42
  • 50. Be a modeler! Use models to communicate. Recognize models Build models Draw models Share models Talk about models 43
  • 51. At Jut these we are using these design practices to build an operations data hub for unified analytics on logs, metrics and events. Check it out at www.jut.io and let me know what you think. Tim Sheiner @tsheiner 44