JAX London - Empathy The Hidden Ingredient of Software ... · •Java, Go, JS, microservices,...
Transcript of JAX London - Empathy The Hidden Ingredient of Software ... · •Java, Go, JS, microservices,...
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
We’re(typically)developingsoftware…
…forotherpeople
…withotherpeople
...tocreatean(emotional)experience
Surelywehavetounderstandotherpeoples’experiences?
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
Corethemesinthepresentation
• Knowyourself
• Whowearedetermineshowweseeothers(emotionalintelligence)
• Thefirstpersonwemustexamineisourselves
• Knowothers
• Theworld– withoneexception– iscomposedofothers
• Wecanliftpeopleuportakepeopledown
• Seekrapidfeedback
• Noonegetsitrightallthetime
24/10/2016 @danielbryantuk
ITasconversationalmedium
• Post-agile
• Designthinking
• Empathy
• Ethnography
• Abductivethinking
• Iterativeusertesting
• Startwithwhy(impact)
24/10/2016 @danielbryantuk
Personas
• Representamajorusergroup
• Expressneedsandexpectations
• Uncoveringuniversalfeaturesandfunctionality
• Describerealpeoplewithbackgrounds,goals,andvalues
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
“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
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
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
www.opencredo.com
24/10/2016 @danielbryantuk