SlideShare a Scribd company logo
@amyngyn J on the Beach 2018
building developer
tools your coworkers
won't hate
amy nguyen (@amyngyn)
j on the beach | may 24, 2018
@amyngyn J on the Beach 2018
hello!
● observability engineer at stripe
● excited about user experience design and
education for developer tools
● @amyngyn
● amynguyen.net
@amyngyn J on the Beach 2018
agenda
● motivation
● how to do user research
● UX design principles
○ command line tools
○ data analysis tools
○ build tools
@amyngyn J on the Beach 2018
why care?
● bad UX causes incidents.
incidents cost money.
● bad UX wastes time.
time costs money.
● bad UX creates hostility.
hostility costs money.
@amyngyn J on the Beach 2018
● talk to people
○ one-on-one
○ focus groups
how to do user research
@amyngyn J on the Beach 2018
how to do user research
● ask the right questions
○ don't ask questions that confirm
what you were expecting
○ dig deep, don't accept the first answer
@amyngyn J on the Beach 2018
● communicate as you follow-up
○ build trust
○ confirm your solutions are the right
solutions
how to do user research
@amyngyn J on the Beach 2018
● talk to people
● ask the right questions
● communicate as you follow-up
how to do user research
@amyngyn J on the Beach 2018
does anyone even know what that flag does?
command line tools
@amyngyn J on the Beach 2018
preview as the default
● if your tool makes critical changes to
infrastructure, don't allow users to make
those changes accidentally
./run-script --confirm
@amyngyn J on the Beach 2018
preview as the default
● provide diffs of what will change
@amyngyn J on the Beach 2018
be consistent
% man -h
Usage: man [OPTION] [SECTION] PAGE…
[...]
@amyngyn J on the Beach 2018
be consistent
% less -h
Value is required after -h
(--max-back-scroll)
@amyngyn J on the Beach 2018
be consistent
● match arguments to your other tools
● match arguments to historical usage
@amyngyn J on the Beach 2018
don’t break existing tools
● have integration tests for your internal tools
● design with existing tools in mind
cat ex.txt | grep hi | sort -r
@amyngyn J on the Beach 2018
command line tools should
● be consistent
● integrate with the rest of your tools
● provide previews and diffs
@amyngyn J on the Beach 2018
everyday we stray further
from unix philosophy
● these ideas have been discussed for decades!
○ rule of composition
○ rule of modularity
○ rule of least surprise
@amyngyn J on the Beach 2018
command line tool design
● provide previews and diffs
● be consistent
● integrate with the rest of your tools
● for more, read "The Art of Unix
Programming" by Eric S. Raymond
(or just read the Wikipedia article!)
@amyngyn J on the Beach 2018
does that data really mean what i think it means?
data analysis tools
@amyngyn J on the Beach 2018
rapid testing
● users need a REPL or
other way of quickly
validating ideas
@amyngyn J on the Beach 2018
discoverability
● autocomplete
● GUI or other menus for
showing all the options
@amyngyn J on the Beach 2018
correctness
● syntax errors and highlighting
● explanations for syntax errors
@amyngyn J on the Beach 2018
explorability
let me go back to the
previous page
don't lose my
place if I refresh
let me share URLs
let me open in a
new tab
@amyngyn J on the Beach 2018
data analysis tool design
● rapid testing
● discoverability
● correctness
● explorability
@amyngyn J on the Beach 2018
i don't know who broke the build
because i don't know how to find the build
build tools
@amyngyn J on the Beach 2018
navigation
● anticipate the most common actions
○ find my latest build
○ locate failing output
○ rebuild
● autocomplete!!!
@amyngyn J on the Beach 2018
fail fast
● if something is failing, don't wait to
finish before showing the result to
the user
@amyngyn J on the Beach 2018
helpful messages at the right time
● remind users to lint and unit test
before kicking off a long build
process
● suggest corrections for bad input
@amyngyn J on the Beach 2018
useful output
@amyngyn J on the Beach 2018
useful output
@amyngyn J on the Beach 2018
summary
● communicate early and
often with users
● imagine the context in which
users will use your tools
● user experience and good
design matters even for
infrastructure tools
@amyngyn J on the Beach 2018
thanks!

More Related Content

Similar to Building Developer Tools Your Coworkers Won't Hate

UX class presentation
UX class presentationUX class presentation
UX class presentation
Theo V
 
15 web tools for administrators
15 web tools for administrators15 web tools for administrators
15 web tools for administrators
Brandon Raymo
 
When Developer Must Become Designer - How to be a one-person UX team
When Developer Must Become Designer - How to be a one-person UX teamWhen Developer Must Become Designer - How to be a one-person UX team
When Developer Must Become Designer - How to be a one-person UX team
Angel Banks
 

Similar to Building Developer Tools Your Coworkers Won't Hate (20)

Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineerings
 
Pivotal Tracker - Research Findings
Pivotal Tracker - Research FindingsPivotal Tracker - Research Findings
Pivotal Tracker - Research Findings
 
What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?What Problem is Your Organization Looking to Solve?
What Problem is Your Organization Looking to Solve?
 
Developer Discipline
Developer DisciplineDeveloper Discipline
Developer Discipline
 
UX class presentation
UX class presentationUX class presentation
UX class presentation
 
Taking the plunge: Why you should use new technology on client projects
Taking the plunge: Why you should use new technology on client projectsTaking the plunge: Why you should use new technology on client projects
Taking the plunge: Why you should use new technology on client projects
 
15 web tools for administrators
15 web tools for administrators15 web tools for administrators
15 web tools for administrators
 
7 Phases of Web Design Process
7 Phases of Web Design Process7 Phases of Web Design Process
7 Phases of Web Design Process
 
CP vs Project - Elevate Ep. 02.pdf
CP vs Project  - Elevate Ep. 02.pdfCP vs Project  - Elevate Ep. 02.pdf
CP vs Project - Elevate Ep. 02.pdf
 
Discover the Design Sprint - Workshop at International Astronautical Congress...
Discover the Design Sprint - Workshop at International Astronautical Congress...Discover the Design Sprint - Workshop at International Astronautical Congress...
Discover the Design Sprint - Workshop at International Astronautical Congress...
 
How to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save MoneyHow to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save Money
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019
 
Frappe Open Day - March 2018
Frappe Open Day - March 2018Frappe Open Day - March 2018
Frappe Open Day - March 2018
 
Frappe Open Day - March 2018
Frappe Open Day - March 2018Frappe Open Day - March 2018
Frappe Open Day - March 2018
 
User Behavior: Interacting With Important Website Elements
User Behavior: Interacting With Important Website ElementsUser Behavior: Interacting With Important Website Elements
User Behavior: Interacting With Important Website Elements
 
When Developer Must Become Designer - How to be a one-person UX team
When Developer Must Become Designer - How to be a one-person UX teamWhen Developer Must Become Designer - How to be a one-person UX team
When Developer Must Become Designer - How to be a one-person UX team
 
Agile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridAgile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion Madrid
 
Advanced automated visual testing at selenium conf india 2020
Advanced automated visual testing at selenium conf india 2020Advanced automated visual testing at selenium conf india 2020
Advanced automated visual testing at selenium conf india 2020
 
Lean manufacturing, lean development and kanban - Lean Development and Agile ...
Lean manufacturing, lean development and kanban - Lean Development and Agile ...Lean manufacturing, lean development and kanban - Lean Development and Agile ...
Lean manufacturing, lean development and kanban - Lean Development and Agile ...
 
How to Use Data Analytics in Gaming by Telligent Data Co-Founder
How to Use Data Analytics in Gaming by Telligent Data Co-FounderHow to Use Data Analytics in Gaming by Telligent Data Co-Founder
How to Use Data Analytics in Gaming by Telligent Data Co-Founder
 

More from J On The Beach

Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
J On The Beach
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTing
J On The Beach
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The Monkeys
J On The Beach
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind Libraries
J On The Beach
 

More from J On The Beach (20)

Massively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard wayMassively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard way
 
Big Data On Data You Don’t Have
Big Data On Data You Don’t HaveBig Data On Data You Don’t Have
Big Data On Data You Don’t Have
 
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
 
Pushing it to the edge in IoT
Pushing it to the edge in IoTPushing it to the edge in IoT
Pushing it to the edge in IoT
 
Drinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actorsDrinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actors
 
How do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server patternHow do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server pattern
 
Java, Turbocharged
Java, TurbochargedJava, Turbocharged
Java, Turbocharged
 
When Cloud Native meets the Financial Sector
When Cloud Native meets the Financial SectorWhen Cloud Native meets the Financial Sector
When Cloud Native meets the Financial Sector
 
The big data Universe. Literally.
The big data Universe. Literally.The big data Universe. Literally.
The big data Universe. Literally.
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
 
Pushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and BlazorPushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and Blazor
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTing
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The Monkeys
 
Servers are doomed to fail
Servers are doomed to failServers are doomed to fail
Servers are doomed to fail
 
Interaction Protocols: It's all about good manners
Interaction Protocols: It's all about good mannersInteraction Protocols: It's all about good manners
Interaction Protocols: It's all about good manners
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
 
Leadership at every level
Leadership at every levelLeadership at every level
Leadership at every level
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind Libraries
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 

Building Developer Tools Your Coworkers Won't Hate

  • 1. @amyngyn J on the Beach 2018 building developer tools your coworkers won't hate amy nguyen (@amyngyn) j on the beach | may 24, 2018
  • 2. @amyngyn J on the Beach 2018 hello! ● observability engineer at stripe ● excited about user experience design and education for developer tools ● @amyngyn ● amynguyen.net
  • 3. @amyngyn J on the Beach 2018 agenda ● motivation ● how to do user research ● UX design principles ○ command line tools ○ data analysis tools ○ build tools
  • 4. @amyngyn J on the Beach 2018 why care? ● bad UX causes incidents. incidents cost money. ● bad UX wastes time. time costs money. ● bad UX creates hostility. hostility costs money.
  • 5. @amyngyn J on the Beach 2018 ● talk to people ○ one-on-one ○ focus groups how to do user research
  • 6. @amyngyn J on the Beach 2018 how to do user research ● ask the right questions ○ don't ask questions that confirm what you were expecting ○ dig deep, don't accept the first answer
  • 7. @amyngyn J on the Beach 2018 ● communicate as you follow-up ○ build trust ○ confirm your solutions are the right solutions how to do user research
  • 8. @amyngyn J on the Beach 2018 ● talk to people ● ask the right questions ● communicate as you follow-up how to do user research
  • 9. @amyngyn J on the Beach 2018 does anyone even know what that flag does? command line tools
  • 10. @amyngyn J on the Beach 2018 preview as the default ● if your tool makes critical changes to infrastructure, don't allow users to make those changes accidentally ./run-script --confirm
  • 11. @amyngyn J on the Beach 2018 preview as the default ● provide diffs of what will change
  • 12. @amyngyn J on the Beach 2018 be consistent % man -h Usage: man [OPTION] [SECTION] PAGE… [...]
  • 13. @amyngyn J on the Beach 2018 be consistent % less -h Value is required after -h (--max-back-scroll)
  • 14. @amyngyn J on the Beach 2018 be consistent ● match arguments to your other tools ● match arguments to historical usage
  • 15. @amyngyn J on the Beach 2018 don’t break existing tools ● have integration tests for your internal tools ● design with existing tools in mind cat ex.txt | grep hi | sort -r
  • 16. @amyngyn J on the Beach 2018 command line tools should ● be consistent ● integrate with the rest of your tools ● provide previews and diffs
  • 17. @amyngyn J on the Beach 2018 everyday we stray further from unix philosophy ● these ideas have been discussed for decades! ○ rule of composition ○ rule of modularity ○ rule of least surprise
  • 18. @amyngyn J on the Beach 2018 command line tool design ● provide previews and diffs ● be consistent ● integrate with the rest of your tools ● for more, read "The Art of Unix Programming" by Eric S. Raymond (or just read the Wikipedia article!)
  • 19. @amyngyn J on the Beach 2018 does that data really mean what i think it means? data analysis tools
  • 20. @amyngyn J on the Beach 2018 rapid testing ● users need a REPL or other way of quickly validating ideas
  • 21. @amyngyn J on the Beach 2018 discoverability ● autocomplete ● GUI or other menus for showing all the options
  • 22. @amyngyn J on the Beach 2018 correctness ● syntax errors and highlighting ● explanations for syntax errors
  • 23. @amyngyn J on the Beach 2018 explorability let me go back to the previous page don't lose my place if I refresh let me share URLs let me open in a new tab
  • 24. @amyngyn J on the Beach 2018 data analysis tool design ● rapid testing ● discoverability ● correctness ● explorability
  • 25. @amyngyn J on the Beach 2018 i don't know who broke the build because i don't know how to find the build build tools
  • 26. @amyngyn J on the Beach 2018 navigation ● anticipate the most common actions ○ find my latest build ○ locate failing output ○ rebuild ● autocomplete!!!
  • 27. @amyngyn J on the Beach 2018 fail fast ● if something is failing, don't wait to finish before showing the result to the user
  • 28. @amyngyn J on the Beach 2018 helpful messages at the right time ● remind users to lint and unit test before kicking off a long build process ● suggest corrections for bad input
  • 29. @amyngyn J on the Beach 2018 useful output
  • 30. @amyngyn J on the Beach 2018 useful output
  • 31. @amyngyn J on the Beach 2018 summary ● communicate early and often with users ● imagine the context in which users will use your tools ● user experience and good design matters even for infrastructure tools
  • 32. @amyngyn J on the Beach 2018 thanks!