Upload
daniel-bryant
View
424
Download
0
Embed Size (px)
Citation preview
EmpathyThe hidden ingredient of good software development?
Daniel Bryant@danielbryantuk
01/05/2023 @danielbryantuk
empathynoun | em·pa·thy | \ˈem-pə-thē\
The feeling that you understand and share another person's experiences and emotions
The ability to share someone else'sfeelings and perspective
01/05/2023 @danielbryantuk
A typical software development debacle…Me: I think we’re some missing empathy here…Client: Is that a new JavaScript framework? Empathy.js?
Me: No, no – shared understanding...Client: Is it a new communication style? RxEmpathy?
Me: No, I mean thinking about the needs and feelings of your (customer|team mate|boss|internet troll)
01/05/2023 @danielbryantuk
Empathy misplaced?
01/05/2023 @danielbryantuk
We’re (typically) developing software……for other people…with other people...to create an (emotional) experience
Surely we have to understand other peoples’ experiences?
01/05/2023 @danielbryantuk
01/05/2023 @danielbryantuk
We’re (typically) developing software……for other people…with other people...to create an (emotional) experience
Surely we have to understand other peoples’ experiences?
This is why empathy is important
01/05/2023 @danielbryantuk
@danielbryantuk• Chief Scientist at OpenCredo, CTO at SpectoLabs
• Agile, architecture, CI/CD, DevOps
• Java, Go, JS, microservices, cloud, containers
• Driving change through the application of technology and teams
• London Java Community Associate• InfoQ Editor, DZone MVB, Voxxed…• Conference regular: Devoxx, JavaOne, QCon…
01/05/2023 @danielbryantuk
The next 40 minutes: Empathy…• Core principles
• In the real world• Requirements gathering• Architecture and development• Operations
• Leadership
01/05/2023 @danielbryantuk
Core principlesKnow yourself, know others, seek rapid feedback
01/05/2023 @danielbryantuk
Core themes in the presentation• Know yourself• Who we are determines how we see others (emotional intelligence)• The first person we must examine is ourselves
• Know others• The world – with one exception – is composed of others• We can lift people up or take people down
• Seek rapid feedback• No one gets it right all the time
01/05/2023 @danielbryantuk
Know thyself…
01/05/2023 @danielbryantuk
Know others
01/05/2023
The range of empathy…
@danielbryantuk
Strong empathy Strong apathy
01/05/2023 @danielbryantuk
Requirements gatheringBecause we’re creating software for other people
01/05/2023 @danielbryantuk
IT as conversational medium• Post-agile
• Design thinking• Empathy• Ethnography• Abductive thinking• Iterative user testing
• Start with why (impact)
01/05/2023 @danielbryantuk
Personas• Represent a major user group
• Express needs and expectations
• Uncovering universal features and functionality
• Describe real people with backgrounds, goals, and values
01/05/2023 @danielbryantuk
Empathy mapping
01/05/2023 @danielbryantuk
Ethnography - “get out of the building”
• www.notonthehighstreet.com• “In your shoes”
• Large UK retailer• “Shop floor time”
• My own experiences…
01/05/2023 @danielbryantuk
Core themes - requirements• Know yourself• What impact am I seeking? (Start with why)
• Know others• Seek to understand users• Visit users in their natural habitat
• Seek rapid feedback• Prototyping• Build, measure, learn
01/05/2023 @danielbryantuk
Architecture and developmentBecause we’re building software alongside other people
01/05/2023 @danielbryantuk
Architecture• Shared understanding• Architects must code
• ‘Just enough’ upfront design• The power of diagramming
• Risk management• Technical • Stakeholder
01/05/2023 @danielbryantuk
Risk management - evaluation
“I will postpone using this shiny new framework until my peers have validated the proposed benefits with rigorous scientific experiments”
- Said by no programmer …ever
01/05/2023 @danielbryantuk
Evaluation - Fitness functions
• Microservices as an Evolutionary Architecture• Neal Ford and Rebecca Parsons
• Great for evaluation and documentation• Platforms / Language• Middleware• Data stores
01/05/2023
Evaluation - Raible’s comparison matrix
@danielbryantuk
www.slideshare.net/mraible/comparing-jvm-web-frameworks-february-2014
Evaluation – The Spine Model• Effective conversations make for effective
collaboration
• It's a TOOL Problem• As a species, we have always been Tool
users and makers. • We use _____ to get our work done
• People get stuck in a dilemma where equally plausible options are available
• “Going up the Spine” breaks deadlock http://spinemodel.info/explanation/introduction/
Determine the need for the tool• PRACTICES before Tools
• Decide on the Practices that the tools are there to support• We do _____ to create value
• PRINCIPLES before Practices• Decide on the Principles to measure those Practices against.• We leverage _____ to change the system
• VALUES before Principles• Make as explicit as possible the Values at play in the system.• We optimise for _____
• NEEDS before Values• It all starts at Needs. Why does this system exist in the first
place?• We are here to satisfy _____
http://spinemodel.info/explanation/introduction/
01/05/2023 @danielbryantuk
Coding
• All code is communication
• ”Clean Code”
• Wikis and READMEs
“Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.”
-Jeff Atwoodblog.codinghorror.com/coding-for-violent-psychopaths/
01/05/2023 @danielbryantuk
Systems thinking – the user journey• Understand the user journey
• “Shift left” QA• Three amigos• ”Quality Advocates”
• BDD and TDD• Outside in
01/05/2023 @danielbryantuk
If you’re building microservices...
specto.io/blog/recipe-for-designing-building-testing-microservices.html
01/05/2023 @danielbryantuk
Core themes – architecture and dev• Know yourself• Check your evaluation and communication skills
• Know others• Understand the whole (systems/solution-focused)• Establish the correct perspective - think outside-in
• Seek rapid feedback• Prototype
01/05/2023 @danielbryantuk
OperationsBecause everyone is responsible for the (continual) delivery of valuable software
01/05/2023 @danielbryantuk
Regulatory fit theory
Mary Poppendieckbit.ly/1VvYi83
01/05/2023 @danielbryantuk
Share the pain...
01/05/2023 @danielbryantuk
“Developer-on-call”An occasional spike to the head
is a good thing...
...metaphorically speaking
• You build it, you run it• Accountability• Shared responsibility• Communication
01/05/2023 @danielbryantuk
DevOps - it’s not a department
• Pair with developers
• Treat operators are stakeholders
• Involve in standups• Communication face-to-face
01/05/2023 @danielbryantuk
Outside-in (and systems) thinking
• Lineage-driven fault injection
• Semantic monitoring • Avoiding alert fatigue
www.infoq.com/presentations/failure-test-research-netflix
01/05/2023 @danielbryantuk
Core themes - operations• Know yourself• Seek freedom and accountability
• Know others• Dev-on-call / DevOps• It’s all about perspective – think systems and outside-in
• Seek rapid feedback• Semantic monitoring (systems)
01/05/2023 @danielbryantuk
LeadershipBecause we’re always influencing (leading) other people
01/05/2023 @danielbryantuk
Communicate the tech vision
01/05/2023
Don’t micromanage - People learn from mistakes
@danielbryantuk
Devs with new tech be like…
…f*cking new technology
This has been me many times!
01/05/2023 @danielbryantuk
Listen, empathise, and provide feedback• Separate appreciation, coaching and
evaluation
• First seek to understand
• See your blind spots
• Identify the relationship system
• Cultivate a growth identity
01/05/2023 @danielbryantuk
Dealing with difficult people in the team(who generally aren’t psychopaths/sociopaths)
01/05/2023 @danielbryantuk
Leadership• Know yourself
• Big five personality traits, MBTI, and meditation/mindfulness• Know your vision/mission/goals
• Know others• Engineers (including myself) can be a funny interesting bunch!• Care about the team (their stories, journey, motivation…)• Coaching is a valuable skills
• Seek rapid feedback• 360 feedback
01/05/2023 @danielbryantuk
Wrapping upBecause this presentation has to finish at some point…
01/05/2023 @danielbryantuk
Empathy is like a muscle…
01/05/2023 @danielbryantuk
Empathy is like a muscle…• Habit 1: Cultivate curiosity about strangers
• Habit 2: Challenge prejudices and discover commonalities
• Habit 3: Try another person’s life
• Habit 4: Listen hard—and open up
• Habit 5: Inspire mass action and social change
• Habit 6: Develop an ambitious imagination
01/05/2023 @danielbryantuk
Final thoughts• Know yourself• Who we are determines how we see others• The first person we must examine is ourselves
• Know others• The world – with one exception – is composed of others• We can lift people up or take people down
• Seek rapid feedback• No one gets it right all the time
01/05/2023 @danielbryantuk
The rest is up to you…
Thanks to all the OpenCredo team and Tareq Abedrabbo for inspiration
@danielbryantuk