SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
@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!

Más contenido relacionado

Similar a Building Developer Tools Your Coworkers Won't Hate

Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineeringsitemis AG
 
Pivotal Tracker - Research Findings
Pivotal Tracker - Research FindingsPivotal Tracker - Research Findings
Pivotal Tracker - Research FindingsPaulina Galindo
 
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?Float
 
UX class presentation
UX class presentationUX class presentation
UX class presentationTheo V
 
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 projectsTommy Ferry
 
15 web tools for administrators
15 web tools for administrators15 web tools for administrators
15 web tools for administratorsBrandon Raymo
 
7 Phases of Web Design Process
7 Phases of Web Design Process7 Phases of Web Design Process
7 Phases of Web Design ProcessNiswey
 
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.pdfpreetikumara
 
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...Marc C. Lange
 
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 MoneyMediacurrent
 
Javascript & SEO 2019
Javascript & SEO 2019Javascript & SEO 2019
Javascript & SEO 2019Edd Wilson
 
Frappe Open Day - March 2018
Frappe Open Day - March 2018Frappe Open Day - March 2018
Frappe Open Day - March 2018Kenneth Sequeira
 
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 teamAngel Banks
 
Agile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridAgile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridSander Hoogendoorn
 
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 ...Francesco Mapelli
 
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-FounderProduct School
 
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projectsDrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projectsVladimir Roudakov
 

Similar a 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
 
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
 
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projectsDrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
 

Más de J On The Beach

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 wayJ On The Beach
 
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 HaveJ 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
 
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 IoTJ On The Beach
 
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 actorsJ On The Beach
 
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 patternJ On The Beach
 
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 SectorJ On The Beach
 
The big data Universe. Literally.
The big data Universe. Literally.The big data Universe. Literally.
The big data Universe. Literally.J On The Beach
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EEJ On The Beach
 
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...J On The Beach
 
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 BlazorJ On The Beach
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTingJ On The Beach
 
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...J On The Beach
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysJ On The Beach
 
Servers are doomed to fail
Servers are doomed to failServers are doomed to fail
Servers are doomed to failJ On The Beach
 
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 mannersJ On The Beach
 
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 ...J On The Beach
 
Leadership at every level
Leadership at every levelLeadership at every level
Leadership at every levelJ 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 LibrariesJ On The Beach
 

Más de 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
 

Último

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Último (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

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!