SlideShare a Scribd company logo
Empathetic component design
Empathetic component design
Reusable UI components
Frank Linehan Senior Software Engineer
I’m Frank(ie)
Senior Software Engineer on Mobile APM
I like to build reusable patterns.
What is Empathy?
The action of understanding, being
aware of, being sensitive to, and
vicariously experiencing the feelings,
thoughts, and experience of another of
either the past or present without
having the feelings, thoughts, and
experience fully communicated in an
objectively explicit manner.
Empathy is not
Sympathy
Developer Experience
Why think about Developer Experience (DX)?
● DX is about how developers feel while using your API – it’s emotive.
● The Principle of Least Astonishment states that the result of performing some
operation should be obvious, consistent, and predictable, based upon the
name of the operation and other clues.
Design with developer empathy
What is the problem we’re trying to solve?
Who are we solving this problem for?
What exactly do we want the users of our API to feel?
What kind of experience are we trying to create and what kind of emotional
response are we aiming for?
A Empathetic API in practice
- with React
Make our users (hey that is us) feel good.
Make it easy to
understand
Self documenting
React proptypes are a great way to
self document a component.
By specifying what types of props a
component expects during
development. Engineers will know
what the component needs to function.
Make it easier to use
Make it Easier To Use: Worry about data
Concept of “Dumb” React components: are
composable, easy to configure, and not
opinionated on how they are used.
These “dumb” components might take data as a
prop or specify the API call the component
should make.
Management of fetching data is up to the owner
of the reusable component, she could use a API
package of generic API calls.
Separating the data calls from the “dumb”
component.
API Example
“dumb” components should have
enough state to be useful.
There should be some way to pass the
useful data up to the parent, letting the
parent know when the state has
changed.
Make it Easier To Use: A little state goes a long way
Make it feel good
Namespaces are your friends
Namespaces are your friends cont...
“Programs must be written for people to read, and only incidentally for machines to
execute.” – Hal Abelson, Structure and Interpretation of Computer Programs
“The best programs are written so that computing machines can perform them
quickly and so that human beings can understand them clearly. A programmer is
ideally an essayist who works with traditional aesthetic and literary forms as well
as mathematical concepts, to communicate the way that an algorithm works and
to convince a reader that the results will be correct.” – Donald E. Knuth, Selected
Papers on Computer Science
Empathetic component design
Why do this?
You will better understand the needs of your
customers at work.

More Related Content

PPTX
Introduction of Dialogflow with google assistant and Artificial intelligence
PPT
generic bot ,
DOCX
PPTX
[Challenge:Future] Motion-to-Speech translator
PPT
Brainstorm interactive
PPT
Chat bots and AI
PDF
BLE Beacon_Simple PPT file
PDF
How to write user story
Introduction of Dialogflow with google assistant and Artificial intelligence
generic bot ,
[Challenge:Future] Motion-to-Speech translator
Brainstorm interactive
Chat bots and AI
BLE Beacon_Simple PPT file
How to write user story

What's hot (12)

PPTX
Artificially Intelligent chatbot Implementation
PDF
Dialogflow
PDF
How do Chatbots Work? A Guide to Chatbot Architecture
ODP
Aaron laverypro1presentation
PPTX
Usability in ABAP Programs - SITSP2011
PPSX
Chatbot
PPT
Machine learning helps face recognition march 2020
DOC
Rajkumar
PDF
Cognitive Services APIs [Mihai Negrea]
PDF
Aparna Updated resume
PPTX
Watson Conversation Services and Virtual Assistant - Basic Summary
PPTX
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Artificially Intelligent chatbot Implementation
Dialogflow
How do Chatbots Work? A Guide to Chatbot Architecture
Aaron laverypro1presentation
Usability in ABAP Programs - SITSP2011
Chatbot
Machine learning helps face recognition march 2020
Rajkumar
Cognitive Services APIs [Mihai Negrea]
Aparna Updated resume
Watson Conversation Services and Virtual Assistant - Basic Summary
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Ad

Similar to Empathetic component design (20)

PDF
React for non techies
PDF
React for non techies
PDF
React for Non Techies
PDF
Learning Patterns Lydia Hallie Addy Osmani Josh W Comeau
PDF
An Introduction to React -- FED Date -- IBM Design
PPTX
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
PPTX
React patterns
PDF
Intuitive APIs and Developer Education
PDF
React Libraries For Every Purpose Your Business Needs In 2022
DOCX
React Components and Its Importance.docx
PDF
React a11y-csun
PDF
React in Action 1st Edition Mark Tielens Thomas
PDF
Thinking in Components
PDF
PyTexas 2014
PDF
Advanced React Component Patterns - ReactNext 2018
PPTX
Unit 2 Fundamentals of React -------.pptx
DOCX
React JS Components & Its Importance.docx
PPTX
From Beginner to Pro Comprehensive React JS Courses to Take in 2024.pptx
PPTX
React + Flux = Joy
KEY
Skillshare - From Noob to Tech CEO - nov 7th, 2011
React for non techies
React for non techies
React for Non Techies
Learning Patterns Lydia Hallie Addy Osmani Josh W Comeau
An Introduction to React -- FED Date -- IBM Design
Developers are People Too! Building a DX-Based API Strategy Ronnie Mitra, Pri...
React patterns
Intuitive APIs and Developer Education
React Libraries For Every Purpose Your Business Needs In 2022
React Components and Its Importance.docx
React a11y-csun
React in Action 1st Edition Mark Tielens Thomas
Thinking in Components
PyTexas 2014
Advanced React Component Patterns - ReactNext 2018
Unit 2 Fundamentals of React -------.pptx
React JS Components & Its Importance.docx
From Beginner to Pro Comprehensive React JS Courses to Take in 2024.pptx
React + Flux = Joy
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Ad

More from Frank Linehan (7)

PDF
Composition vs inheritance
PDF
Anti patterns in the wild
PDF
How mobile APM UI manages state at New Relic
PDF
Future of ui be micro
PDF
Angular pres
PDF
AngularU Recap
Composition vs inheritance
Anti patterns in the wild
How mobile APM UI manages state at New Relic
Future of ui be micro
Angular pres
AngularU Recap

Recently uploaded (20)

PDF
Web App vs Mobile App What Should You Build First.pdf
PDF
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
PDF
Architecture types and enterprise applications.pdf
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PPTX
TLE Review Electricity (Electricity).pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
project resource management chapter-09.pdf
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
1. Introduction to Computer Programming.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
The various Industrial Revolutions .pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Web App vs Mobile App What Should You Build First.pdf
2021 HotChips TSMC Packaging Technologies for Chiplets and 3D_0819 publish_pu...
Architecture types and enterprise applications.pdf
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
cloud_computing_Infrastucture_as_cloud_p
O2C Customer Invoices to Receipt V15A.pptx
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Developing a website for English-speaking practice to English as a foreign la...
TLE Review Electricity (Electricity).pptx
Group 1 Presentation -Planning and Decision Making .pptx
project resource management chapter-09.pdf
A contest of sentiment analysis: k-nearest neighbor versus neural network
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
1. Introduction to Computer Programming.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
The various Industrial Revolutions .pptx
1 - Historical Antecedents, Social Consideration.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Final SEM Unit 1 for mit wpu at pune .pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf

Empathetic component design

  • 2. Empathetic component design Reusable UI components Frank Linehan Senior Software Engineer
  • 3. I’m Frank(ie) Senior Software Engineer on Mobile APM I like to build reusable patterns.
  • 4. What is Empathy? The action of understanding, being aware of, being sensitive to, and vicariously experiencing the feelings, thoughts, and experience of another of either the past or present without having the feelings, thoughts, and experience fully communicated in an objectively explicit manner.
  • 7. Why think about Developer Experience (DX)? ● DX is about how developers feel while using your API – it’s emotive. ● The Principle of Least Astonishment states that the result of performing some operation should be obvious, consistent, and predictable, based upon the name of the operation and other clues.
  • 8. Design with developer empathy What is the problem we’re trying to solve? Who are we solving this problem for? What exactly do we want the users of our API to feel? What kind of experience are we trying to create and what kind of emotional response are we aiming for?
  • 9. A Empathetic API in practice - with React Make our users (hey that is us) feel good.
  • 10. Make it easy to understand
  • 11. Self documenting React proptypes are a great way to self document a component. By specifying what types of props a component expects during development. Engineers will know what the component needs to function.
  • 12. Make it easier to use
  • 13. Make it Easier To Use: Worry about data Concept of “Dumb” React components: are composable, easy to configure, and not opinionated on how they are used. These “dumb” components might take data as a prop or specify the API call the component should make. Management of fetching data is up to the owner of the reusable component, she could use a API package of generic API calls. Separating the data calls from the “dumb” component.
  • 15. “dumb” components should have enough state to be useful. There should be some way to pass the useful data up to the parent, letting the parent know when the state has changed. Make it Easier To Use: A little state goes a long way
  • 16. Make it feel good
  • 18. Namespaces are your friends cont...
  • 19. “Programs must be written for people to read, and only incidentally for machines to execute.” – Hal Abelson, Structure and Interpretation of Computer Programs “The best programs are written so that computing machines can perform them quickly and so that human beings can understand them clearly. A programmer is ideally an essayist who works with traditional aesthetic and literary forms as well as mathematical concepts, to communicate the way that an algorithm works and to convince a reader that the results will be correct.” – Donald E. Knuth, Selected Papers on Computer Science
  • 21. Why do this? You will better understand the needs of your customers at work.