JAX London - Empathy The Hidden Ingredient of Software ... · •Java, Go, JS, microservices,...

50
Empathy The hidden ingredient of good software development? Daniel Bryant @danielbryantuk

Transcript of JAX London - Empathy The Hidden Ingredient of Software ... · •Java, Go, JS, microservices,...

EmpathyThehiddeningredientofgoodsoftwaredevelopment?

DanielBryant

@danielbryantuk

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

Thefeelingthatyouunderstandandshare

anotherperson'sexperiencesandemotions

Theabilitytosharesomeoneelse's

feelingsandperspective

24/10/2016 @danielbryantuk

Atypicalsoftwaredevelopmentdebacle…

Me: Ithinkwe’resomemissingempathyhere…

Client:IsthatanewJavaScriptframework?Empathy.js?

Me: No,no– sharedunderstanding...

Client:Isitanewcommunicationstyle?RxEmpathy?

Me: No,Imeanthinkingabouttheneedsandfeelingsofyour

(customer|teammate|boss|internettroll)

24/10/2016 @danielbryantuk

Empathymisplaced?

24/10/2016 @danielbryantuk

We’re(typically)developingsoftware…

…forotherpeople

…withotherpeople

...tocreatean(emotional)experience

Surelywehavetounderstandotherpeoples’experiences?

24/10/2016 @danielbryantuk

24/10/2016 @danielbryantuk

We’re(typically)developingsoftware…

…forotherpeople

…withotherpeople

...tocreatean(emotional)experience

Surelywehavetounderstandotherpeoples’experiences?

Thisiswhyempathyisimportant

24/10/2016 @danielbryantuk

@danielbryantuk

• ChiefScientistatOpenCredo,CTOatSpectoLabs

• Agile,architecture,CI/CD,DevOps

• Java,Go,JS,microservices,cloud,containers

• Drivingchangethroughtheapplicationoftechnologyandteams

• LondonJavaCommunityAssociate

• InfoQ Editor,DZone MVB,Voxxed…

• Conferenceregular:Devoxx,JavaOne,QCon…

24/10/2016 @danielbryantuk

Thenext40minutes:Empathy…

• Coreprinciples

• Intherealworld

• Requirementsgathering

• Architectureanddevelopment

• Operations

• Leadership

24/10/2016 @danielbryantuk

CoreprinciplesKnowyourself,knowothers,seekrapidfeedback

24/10/2016 @danielbryantuk

Corethemesinthepresentation

• Knowyourself

• Whowearedetermineshowweseeothers(emotionalintelligence)

• Thefirstpersonwemustexamineisourselves

• Knowothers

• Theworld– withoneexception– iscomposedofothers

• Wecanliftpeopleuportakepeopledown

• Seekrapidfeedback

• Noonegetsitrightallthetime

24/10/2016 @danielbryantuk

Knowthyself…

24/10/2016 @danielbryantuk

Knowothers

24/10/2016 @danielbryantuk

Therangeofempathy…

24/10/2016 @danielbryantuk

Strongempathy Strongapathy

RequirementsgatheringBecausewe’recreatingsoftwareforotherpeople

24/10/2016 @danielbryantuk

ITasconversationalmedium

• Post-agile

• Designthinking

• Empathy

• Ethnography

• Abductivethinking

• Iterativeusertesting

• Startwithwhy(impact)

24/10/2016 @danielbryantuk

Impactmapping

24/10/2016 @danielbryantuk

www.impactmapping.org

Personas

• Representamajorusergroup

• Expressneedsandexpectations

• Uncoveringuniversalfeaturesandfunctionality

• Describerealpeoplewithbackgrounds,goals,andvalues

24/10/2016 @danielbryantuk

Empathymapping

24/10/2016 @danielbryantuk

Ethnography- “getoutofthebuilding”

• www.notonthehighstreet.com

• “Inyourshoes”

• LargeUKretailer

• “Shopfloortime”

• Myownexperiences…

24/10/2016 @danielbryantuk

Corethemes- requirements

• Knowyourself

• WhatimpactamIseeking?(Startwithwhy)

• Knowothers

• Seektounderstandusers

• Visitusersintheirnaturalhabitat

• Seekrapidfeedback

• Prototyping

• Build,measure,learn

24/10/2016 @danielbryantuk

ArchitectureanddevelopmentBecausewe’rebuildingsoftwarealongsideotherpeople

24/10/2016 @danielbryantuk

Architecture

• Sharedunderstanding

• Architectsmustcode

• ‘Justenough’upfrontdesign

• Thepowerofdiagramming

• Riskmanagement

• Technical

• Stakeholder

24/10/2016 @danielbryantuk

Riskmanagement- evaluation

“Iwillpostponeusingthisshinynewframeworkuntilmypeershave

validatedtheproposedbenefitswithrigorousscientificexperiments”

- Saidbynoprogrammer

…ever

24/10/2016 @danielbryantuk

Evaluation- Fitnessfunctions

• Microservices asanEvolutionaryArchitecture

• NealFordandRebeccaParsons

• Greatforevaluationanddocumentation

• Platforms/Language

• Middleware

• Datastores

24/10/2016 @danielbryantuk

Evaluation- Raible’s comparisonmatrix

24/10/2016 @danielbryantuk

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

Evaluation– TheSpineModel

• Effectiveconversations makeforeffectivecollaboration

• It'saTOOLProblem• Asaspecies,wehavealwaysbeenToolusersandmakers.

• Weuse_____togetourworkdone

• Peoplegetstuckinadilemmawhereequallyplausibleoptionsareavailable

• “GoinguptheSpine”breaksdeadlock http://spinemodel.info/explanation/introduction/

Determinetheneedforthetool

• PRACTICESbeforeTools• DecideonthePracticesthatthetoolsarethereto

support

• Wedo_____tocreatevalue

• PRINCIPLESbeforePractices• DecideonthePrinciplestomeasurethosePractices

against.

• Weleverage_____tochangethesystem

• VALUESbeforePrinciples• MakeasexplicitaspossibletheValuesatplayinthe

system.

• Weoptimise for_____

• NEEDSbeforeValues• ItallstartsatNeeds.Whydoesthissystemexistinthe

firstplace?

• Weareheretosatisfy_____ http://spinemodel.info/explanation/introduction/

Coding

• Allcodeiscommunication

• ”CleanCode”

• WikisandREADMEs

“Alwayscodeasifthepersonwhoends

upmaintainingyourcodeisaviolent

psychopathwhoknowswhereyoulive.”

-JeffAtwood

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

24/10/2016 @danielbryantuk

Systemsthinking– theuserjourney

• Understandtheuserjourney

• “Shiftleft”QA

• Threeamigos

• ”QualityAdvocates”

• BDDandTDD

• Outsidein

24/10/2016 @danielbryantuk

Ifyou’rebuildingmicroservices...

24/10/2016 @danielbryantuk

specto.io/blog/recipe-for-designing-building-testing-microservices.html

Corethemes– architectureanddev

• Knowyourself

• Checkyourevaluationandcommunicationskills

• Knowothers

• Understandthewhole(systems/solution-focused)

• Establishthecorrectperspective- thinkoutside-in

• Seekrapidfeedback

• Prototype

24/10/2016 @danielbryantuk

OperationsBecauseeveryoneisresponsibleforthe(continual)deliveryofvaluablesoftware

24/10/2016 @danielbryantuk

Regulatoryfittheory

24/10/2016 @danielbryantuk

MaryPoppendieck

bit.ly/1VvYi83

Sharethepain...

24/10/2016 @danielbryantuk

“Developer-on-call”

Anoccasionalspiketothehead

isagoodthing...

...metaphoricallyspeaking

• Youbuildit,yourunit

• Accountability

• Sharedresponsibility

• Communication

24/10/2016 @danielbryantuk

DevOps- it’snotadepartment

• Pairwithdevelopers

• Treatoperatorsarestakeholders

• Involveinstandups

• Communicationface-to-face

24/10/2016 @danielbryantuk

Outside-in(andsystems)thinking

• Lineage-drivenfaultinjection

• Semanticmonitoring

• Avoidingalertfatigue

24/10/2016 @danielbryantuk

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

Corethemes- operations

• Knowyourself

• Seekfreedomandaccountability

• Knowothers

• Dev-on-call/DevOps

• It’sallaboutperspective– thinksystemsandoutside-in

• Seekrapidfeedback

• Semanticmonitoring(systems)

24/10/2016 @danielbryantuk

LeadershipBecausewe’realwaysinfluencing(leading)otherpeople

24/10/2016 @danielbryantuk

Communicatethetechvision

24/10/2016 @danielbryantuk

Don’tmicromanage- Peoplelearnfrommistakes

24/10/2016 @danielbryantuk

Devs withnewtechbelike…

…f*cking newtechnology

Thishasbeenme

manytimes!

Listen,empathise,andprovidefeedback

• Separateappreciation,coachingandevaluation

• Firstseektounderstand

• Seeyourblindspots

• Identifytherelationshipsystem

• Cultivateagrowthidentity

24/10/2016 @danielbryantuk

Dealingwithdifficultpeopleintheteam(whogenerallyaren’tpsychopaths/sociopaths)

24/10/2016 @danielbryantuk

Leadership

• Knowyourself• Bigfivepersonalitytraits,MBTI,andmeditation/mindfulness

• Knowyourvision/mission/goals

• Knowothers• Engineers(includingmyself)canbeafunny interestingbunch!

• Careabouttheteam(theirstories,journey,motivation…)

• Coachingisavaluableskills

• Seekrapidfeedback• 360feedback

24/10/2016 @danielbryantuk

WrappingupBecausethispresentationhastofinishatsomepoint…

24/10/2016 @danielbryantuk

Empathyislikeamuscle…

24/10/2016 @danielbryantuk

Empathyislikeamuscle…

• Habit1:Cultivatecuriosityaboutstrangers

• Habit2:Challengeprejudicesanddiscovercommonalities

• Habit3:Tryanotherperson’slife

• Habit4:Listenhard—andopenup

• Habit5:Inspiremassactionandsocialchange

• Habit6:Developanambitiousimagination

24/10/2016 @danielbryantuk

Finalthoughts

• Knowyourself

• Whowearedetermineshowweseeothers

• Thefirstpersonwemustexamineisourselves

• Knowothers

• Theworld– withoneexception– iscomposedofothers

• Wecanliftpeopleuportakepeopledown

• Seekrapidfeedback

• Noonegetsitrightallthetime

24/10/2016 @danielbryantuk

Therestisuptoyou…

Thanks toalltheOpenCredo teamandTareq Abedrabbo forinspiration

@danielbryantuk

[email protected]

www.opencredo.com

24/10/2016 @danielbryantuk