39
Empathy The missing ingredient to effective software development? Daniel Bryant @danielbryantuk

CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Embed Size (px)

Citation preview

Page 1: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

EmpathyThemissingingredienttoeffectivesoftwaredevelopment?

DanielBryant@danielbryantuk

Page 2: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

empathynoun|em·pa·thy |\ˈem-pə-thē\

Thefeelingthatyouunderstandandshareanotherperson'sexperiencesandemotions

Theabilitytosharesomeoneelse'sfeelings

25/04/2016 @danielbryantuk

Page 3: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Atypicalsoftwaredevelopmentdebacle…

Me: Ithinkwe’resomemissingempathyhere…Dev: IsthataJavaScriptframework?Empathy.js?

Me: No,no– sharedunderstanding...Dev: Isitanewcommunicationstyle?RxEmpathy?

Me: No,Imeanthinkingabouttheneedsandfeelingsofyour(customer|teammate|boss|internettroll)

Dev: ...

25/04/2016 @danielbryantuk

Page 4: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Empathymisplaced?

25/04/2016 @danielbryantuk

Page 5: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

We’re(typically)developingsoftware…

…forotherpeople…withotherpeople...tocreatean(emotional)experience

Surelywehavetounderstandexperiences(andemotions)?

Thisiswhyempathyisimportant

25/04/2016 @danielbryantuk

Page 6: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

@danielbryantuk

• ChiefScientistatOpenCredo• Agile,Architecture,CI/CD,DevOps

• Microservices,cloud,containers

• Drivingchangethroughtheapplicationoftechnologyandteams

• LondonJavaCommunityAssociate• InfoQ Editor,DZoneMVB,Voxxed…• Conferenceregular:Devoxx,JavaOne,QCon…

25/04/2016 @danielbryantuk

Page 7: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Thenext30minutes

• Coreprinciples

• Empathyintherealworld• Requirementsgathering• Architectureanddevelopment• Operations

• Leadership

25/04/2016 @danielbryantuk

Page 8: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

CoreprinciplesKnowyourself,knowothers,seekrapidfeedback

25/04/2016 @danielbryantuk

Page 9: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Corethemesinthepresentation

• Knowyourself• Whowearedetermineshowweseeothers(emotionalintelligence)• Thefirstpersonwemustexamineisourselves

• Knowothers• Theworld– withoneexception– iscomposedofothers• Wecanliftpeopleuportakepeopledown

• Seekrapidfeedback• Noonegetsitrightallthetime

25/04/2016 @danielbryantuk

Page 10: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Knowthyself…

25/04/2016 @danielbryantuk

Page 11: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Knowothers

25/04/2016 @danielbryantuk

Page 12: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Therangeofempathy…

25/04/2016 @danielbryantuk

Strongempathy Strongapathy

Page 13: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

RequirementsgatheringBecausewe’recreatingsoftwareforotherpeople

25/04/2016 @danielbryantuk

Page 14: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

ITasconversationalmedium

• Agile

• Startwithwhy(impact)

• Designthinking• Empathy• Ethnography• Abductivethinking• Iterativeusertesting

25/04/2016 @danielbryantuk

Page 15: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Impactmapping

25/04/2016 @danielbryantuk

www.impactmapping.org

Page 16: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Personas

• Representamajorusergroup

• Expressneedsandexpectations

• Uncoveringuniversalfeaturesandfunctionality

• Describerealpeoplewithbackgrounds,goals,andvalues

25/04/2016 @danielbryantuk

Page 17: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Empathymapping

25/04/2016 @danielbryantuk

Page 18: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Ethnography- “Getoutofthebuilding”

• www.notonthehighstreet.com• “Inyourshoes”

• LargeUKretailer• “Shopfloortime”

• Myownexperiences…

25/04/2016 @danielbryantuk

Page 19: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Corethemes- requirements

• Knowyourself• Identifyyourbias(asmuchaspossible)• WhatimpactamIseeking(startwithwhy)?

• Knowothers• Seektounderstandusers• Visitusersintheirnaturalhabitat

• Seekrapidfeedback• Prototyping• Build,measure,learn

25/04/2016 @danielbryantuk

Page 20: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

ArchitectureanddevelopmentBecausewe’rebuildingsoftwarealongsideotherpeople

25/04/2016 @danielbryantuk

Page 21: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Architecture

• Sharedunderstanding• Architectsmustcode

• Riskmanagement• Technical• Stakeholder

• ‘Justenough’upfrontdesign

25/04/2016 @danielbryantuk

Page 22: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Riskmanagement- evaluation

“Iwillpostponeusingthisshinynewframeworkuntilmypeershavevalidatedtheproposedbenefitswithrigorousscientificexperiments”

- Saidbynoprogrammer…ever

25/04/2016 @danielbryantuk

Page 23: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Raible’s comparisonmatrix

25/04/2016 @danielbryantuk

www.slideshare.net/mraible/comparing-jvm-web-frameworks-february-2014

Page 24: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Coding

• Allcodeiscommunication

• ”CleanCode”

• WikisandREADMEs

“Alwayscodeasifthepersonwhoendsupmaintainingyourcodeisaviolentpsychopathwhoknowswhereyoulive.”

-JeffAtwoodblog.codinghorror.com/coding-for-violent-psychopaths/

25/04/2016 @danielbryantuk

Page 25: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Systemsthinking– theuserjourney

• Understandtheuserjourney

• “Shiftleft”QA• Threeamigos• ”QualityAdvocates”

• BDDandTDD• Outsidein

25/04/2016 @danielbryantuk

Page 26: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Corethemes– architectureanddev

• Knowyourself• Checkyourcommunicationskills

• Knowothers• Solution-focused• Thinkoutside-in

• Seekrapidfeedback• Prototype

25/04/2016 @danielbryantuk

Page 27: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

OperationsBecauseeveryoneisresponsibleforthe(continual)deliveryofvaluablesoftware

25/04/2016 @danielbryantuk

Page 28: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Regulatoryfittheory

25/04/2016 @danielbryantuk

MaryPoppendieckbit.ly/1VvYi83

Page 29: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Sharethepain...

25/04/2016 @danielbryantuk

Page 30: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

“Developer-on-call”

Anoccasionalspiketotheheadisagoodthing...

...metaphoricallyspeaking

• Youbuildit,yourunit• Accountability• Sharedresponsibility• Communication

25/04/2016 @danielbryantuk

Page 31: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

DevOps- it’snotadepartment

• Pairwithdevelopers

• Treatoperatorsarestakeholders

• Involveinstandups• Communicationface-to-face

25/04/2016 @danielbryantuk

Page 32: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Outside-in(andsystems)thinking

• Lineage-drivenfaultinjection

• Semanticmonitoring• Avoidingalertfatigue

25/04/2016 @danielbryantuk

www.infoq.com/presentations/failure-test-research-netflix

Page 33: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Corethemes- operations

• Knowyourself• Seekfreedomandaccountability

• Knowothers• Dev-on-call/DevOps• Thinkoutside-in

• Seekrapidfeedback• Semanticmonitoring(systems)

25/04/2016 @danielbryantuk

Page 34: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

LeadershipBecausewe’realwaysinfluencing(leading)otherpeople

25/04/2016 @danielbryantuk

Page 35: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Leadership

• Knowyourself• Bigfivepersonalitytraits,MBTI,meditation

• Knowothers• Engineers(includingmyself)canbeafunny interestingbunch!• Careabouttheteam(theirstories,journey,motivation…)• Coachingisavaluableskills

• Seekrapidfeedback• 360feedback

25/04/2016 @danielbryantuk

Page 36: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

WrappingupBecausethispresentationhastofinishatsomepoint…

25/04/2016 @danielbryantuk

Page 37: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Empathyislikeamuscle…

25/04/2016 @danielbryantuk

Page 38: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Finalthoughts

• Knowyourself• Whowearedetermineshowweseeothers• Thefirstpersonwemustexamineisourselves

• Knowothers• Theworld– withoneexception– iscomposedofothers• Wecanliftpeopleuportakepeopledown

• Seekrapidfeedback• Noonegetsitrightallthetime

25/04/2016 @danielbryantuk

Page 39: CraftConf [Preview] "Empathy - The Hidden Ingredient of Good Software Development"

Therestisuptoyou…

Thanks toalltheOpenCredo teamandTareq Abedrabbo forinspiration

@danielbryantuk

[email protected]

25/04/2016 @danielbryantuk