SlideShare a Scribd company logo
1 of 63
Thinking, Fast and Slow…
With Software Development
Daniel Bryant
Principal Consultant, OpenCredo
daniel.bryant@opencredo.com
@danielbryantuk
Think More Deliberately
• Our decision making can be flawed…
• Apply process and models (as appropriate)
• Collaborate more (and better)
• Plan, do, check, act…
28/10/2015 @danielbryantuk
Who Am I?
• London Java Community Associate
• Adopt OpenJDK and JSR
• InfoQ Editor, DZone MVB, Voxxed
28/10/2015 @danielbryantuk
• Principal Consultant at OpenCredo
• Technical/digital transformation
• Java, Golang, CI/CD, DevOps
• Microservices, cloud and containers
• PhD in Artificial Intelligence
Pointy-Haired Decision Making…
28/10/2015 @danielbryantuk
dilbert.com/strip/2010-08-24
Our Thinking: A Tale of Two Systems…
System 1:
fast, instinctive, emotional, subconscious
System 2:
slower, deliberate, reasoning, conscious
28/10/2015 @danielbryantuk
2 + 2 = ?
28/10/2015 @danielbryantuk
(24 / 2) * (1 / 3) = ?
28/10/2015 @danielbryantuk
2 + 2 = 4
(24 / 2) * (1 / 3) = 4
28/10/2015 @danielbryantuk
28/10/2015 @danielbryantuk
28/10/2015 @danielbryantuk
28/10/2015 @danielbryantuk
Bob is a single male in his 20’s who is bright,
quiet, likes science fiction and fantasy, and
avoids interacting with people in the real world
Which is more probable?
• Bob is a programmer
• Bob is a programmer and plays MMORPG?
28/10/2015 @danielbryantuk
Conjunction Fallacy
28/10/2015 @danielbryantuk
Our Thinking: A Tale of Two Systems…
System 1:
fast, instinctive, emotional, subconscious
Rapid, associative, and has systemic errors
System 2:
slower, deliberate, reasoning, conscious
Lazy, and causal (not statistical)
28/10/2015 @danielbryantuk
Heuristics / biases affecting software delivery
28/10/2015 @danielbryantuk
Availability Heuristic
“If something can be recalled,
it must be important”
‘Hipster-itis’
e.g. the ‘best’ architectural style
28/10/2015 @danielbryantuk
Microservices
• The current flavour of the month!
– Great ideas, but dangerously over-hyped
• Frameworks and products emerging
– Virtuous (vicious?) circle
– “The bandwagon effect”
– Have we found the silver bullet?…
28/10/2015 @danielbryantuk
Whatever is Available
When all you have is a hammer…
…everything looks like a nail
28/10/2015 @danielbryantuk
When all you have is a SOA…
…everything looks like a service
(please avoid creating the toString() service)
28/10/2015 @danielbryantuk
When all you have is a Jenkins…
…everything looks like a Jenkins Job
28/10/2015 @danielbryantuk
When all you have is a Spring Framework…
…everything looks like an AbstractSingletonProxyFactoryBean
28/10/2015 @danielbryantuk
Availability: Think Professionally
• Stop… engage system 2
• Spike/prototype, experiment, evaluate…
• Constant learning
– Find trusted mentors
– Cultivate blogs
– Read the classics
28/10/2015 @danielbryantuk
Fundamentals
28/10/2015 @danielbryantuk
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
28/10/2015 @danielbryantuk
Raible’s Comparison Matrix
28/10/2015 @danielbryantuk
Matt Raible comparison matrix (bit.ly/OxUzad)
Optimistic Bias
“People tend to be overconfident,
believing that they have substantial
control in their lives”
I know what our customers want…
…how could I possibly be wrong?
28/10/2015 @danielbryantuk
Four Factors of Optimistic Bias
• Desired end state
– Self-enhancement, perceived control
• Cognitive mechanisms
– Representativeness heuristic, singular target focus
• Information about self vs target
• Overall mood
28/10/2015 @danielbryantuk
Optimism: Think Professionally
• Define (and share) clear goals
• Build, measure, learn…
• Remove uncertainty early (bit.ly/1mAb6o4)
– “Patterns of Effective Delivery” by Dan North
• Software is inherently collaborative…
28/10/2015 @danielbryantuk
The Three Amigos
28/10/2015 @danielbryantuk
www.slideshare.net/chassa/2012-1130alm-dayviennaslideshare
Pair Mob Programming
28/10/2015 @danielbryantuk
benjiweber.co.uk/blog/2014/11/30/the-unruly-mob/
probablyfine.co.uk/papers/mob-programming.pdf
www.infoq.com/interviews/zuill-mob-programming
DevOps: Share the Pain...
28/10/2015 @danielbryantuk
“Dev-on-call”
An occasional spike to the head
is a good thing...
...metaphorically speaking
• You build it, you run it
– Shared responsibility
– Communication
28/10/2015 @danielbryantuk
Remove (or Limit) Uncertainty
28/10/2015 @danielbryantuk
Check the HiPPO
28/10/2015 @danielbryantuk
bit.ly/1xseeXM
Planning Fallacy
“A phenomenon in which predictions about
how much time will be needed to complete a
future task display an optimistic bias. ”
Was your last project completed on time?
…and on budget?
28/10/2015 @danielbryantuk
IT Track Record…
• Sainsbury’s Supply Chain Management System
– $526m bit.ly/160SnAj
• NHS patient record system
– £10bn bit.ly/XBzFuV
• HealthCare.gov
– onforb.es/1k7egyb
28/10/2015 @danielbryantuk
Most Common Factors for Failure
• Unrealistic or unarticulated project goals
• Inaccurate estimates of needed resources
• Badly defined system requirements
• Poor reporting of the project's status
• Unmanaged risks
• Poor communication among customers, developers, and users
• Use of immature technology
• Inability to handle the project's complexity
• Sloppy development practices
• Poor project management
• Stakeholder politics
• Commercial pressures
Source spectrum.ieee.org/computing/software/why-software-fails
28/10/2015 @danielbryantuk
Most Common Factors for Failure
• Unrealistic or unarticulated project goals
• Inaccurate estimates of needed resources
• Badly defined system requirements
• Poor reporting of the project's status
• Unmanaged risks
• Poor communication among customers, developers, and users
• Use of immature technology
• Inability to handle the project's complexity
• Sloppy development practices
• Poor project management
• Stakeholder politics
• Commercial pressures
Source spectrum.ieee.org/computing/software/why-software-fails
28/10/2015 @danielbryantuk
At the Start: Feedback & Federation
• Plan, do, check (showcase), act
• Improve estimation (or #noestimates?)
• Divide and conquer
– SOA, microservices, modules… (systems thinking)
– Squads, guilds, chapters
28/10/2015 @danielbryantuk
Spotify
28/10/2015 @danielbryantuk
A Side Note
Even if your upfront planning is good…
28/10/2015 @danielbryantuk
Things Inevitably Go Wrong…
28/10/2015 @danielbryantuk
At the End: It’s All About People
28/10/2015 @danielbryantuk
www.infoq.com/news/2015/06/too-big-to-fail
From Macro to Micro…
28/10/2015 @danielbryantuk
Accept Unknown Unknowns…
28/10/2015 @danielbryantuk
dilbert.com/strips/comic/1995-11-10/
Sunk Cost Fallacy
“Any past cost that has already been
paid and cannot be recovered should not
figure into the decision making process. ”
When did you last remove a framework?
…or a library?
28/10/2015 @danielbryantuk
Why Are We Reluctant?
• We don’t like being wrong…
• Existing effort appears wasted
– Endowment effect
• Loss aversion
– Twice as powerful, psychologically, as gains?
28/10/2015 @danielbryantuk
Try Not to ‘Sink Costs’
28/10/2015 @danielbryantuk
Retrospect Regularly
• Did we make the right choice?
• When was the ‘last responsible moment’?
• What can we learn?
• How can we get better?
28/10/2015 @danielbryantuk
Anchoring Bias
“Common tendency to rely too heavily
on the first piece of information offered
when making decisions. ”
How does your manager ask for estimates?
…is it an unbiased question?
28/10/2015 @danielbryantuk
28/10/2015 @danielbryantuk
Anchoring: Learn to “Upwardly Manage”
• Learn to say no…
– Provide explanations and alternatives
• Make sure goals/user stories are well-defined
– Collaboration
– Feedback
• Apply PERT estimations (bit.ly/1mGzuoe)
28/10/2015 @danielbryantuk
A Little More #NoEstimates
28/10/2015 @danielbryantuk
ronjeffries.com/xprog/articles/the-noestimates-movement/
Read Your Way to Tech Leadership (?)
28/10/2015 @danielbryantuk
Ok, lets wrap this up…
28/10/2015 @danielbryantuk
System 1 is Awesome!
• It saves us from many dangers
• Very valuable in many situations
– ‘gut feel’, instincts, intuition
– Expertise plays a role
– Can be used for good
• But, I see too much System 1 in IT…
28/10/2015 @danielbryantuk
We All Make Mistakes…
28/10/2015 @danielbryantuk
Have a Little Empathy…
28/10/2015 @danielbryantuk
“You will be the same person in five years as
you are today except for the people you meet
and the books you read.”
- Charlie “Tremendous” Jones
(bit.ly/1LAdQkv)
28/10/2015 @danielbryantuk
Awesome Conferences and Books
28/10/2015 @danielbryantuk
28/10/2015 @danielbryantuk
Summary
• Apply process and models (as appropriate)
– Listen to system 1, but engage system 2…
• Collaborate more (and better)
• Learn, do, retrospect, (teach,) repeat
- “Think” more deliberately -
28/10/2015 @danielbryantuk
Thanks for Listening!
Comments and feedback are welcomed…
daniel.bryant@opencredo.com
@danielbryantuk
www.infoq.com/author/Daniel-Bryant
www.parleys.com/author/daniel-bryant
www.muservicesweekly.com
28/10/2015 @danielbryantuk

More Related Content

What's hot

OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
OOP2016 "The Business Behind Microservices: Organisational, Architectural and...OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
Daniel Bryant
 

What's hot (20)

OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
OOP2016 "The Business Behind Microservices: Organisational, Architectural and...OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
OOP2016 "The Business Behind Microservices: Organisational, Architectural and...
 
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
 
SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"
SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"
SwisscomSoftwareDay 2016 "The Trials and Tribulations of Making Software Small"
 
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
 
Jfokus 2015 "Thinking Fast and Slow with Software Development"
Jfokus 2015 "Thinking Fast and Slow with Software Development"Jfokus 2015 "Thinking Fast and Slow with Software Development"
Jfokus 2015 "Thinking Fast and Slow with Software Development"
 
QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"
QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"
QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"
 
Microservice Summit 2016 "Microservices: The Organisational and People Impact"
Microservice Summit 2016 "Microservices: The Organisational and People Impact"Microservice Summit 2016 "Microservices: The Organisational and People Impact"
Microservice Summit 2016 "Microservices: The Organisational and People Impact"
 
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
 
ZTLive 2016 "Introduction to Microservices"
ZTLive 2016 "Introduction to Microservices"ZTLive 2016 "Introduction to Microservices"
ZTLive 2016 "Introduction to Microservices"
 
MicroManchester 2016 "Microservices from 30000ft: Organisation, Architecture ...
MicroManchester 2016 "Microservices from 30000ft: Organisation, Architecture ...MicroManchester 2016 "Microservices from 30000ft: Organisation, Architecture ...
MicroManchester 2016 "Microservices from 30000ft: Organisation, Architecture ...
 
muCon 2016: "Seven (More) Deadly Sins of Microservices"
muCon 2016: "Seven (More) Deadly Sins of Microservices"muCon 2016: "Seven (More) Deadly Sins of Microservices"
muCon 2016: "Seven (More) Deadly Sins of Microservices"
 
JAX London 2016: "Empathy - The hidden ingredient of good software development?"
JAX London 2016: "Empathy - The hidden ingredient of good software development?"JAX London 2016: "Empathy - The hidden ingredient of good software development?"
JAX London 2016: "Empathy - The hidden ingredient of good software development?"
 
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
 
ContainerSched 2015 "Our journey to world (gifting) domination - how notonthe...
ContainerSched 2015 "Our journey to world (gifting) domination - how notonthe...ContainerSched 2015 "Our journey to world (gifting) domination - how notonthe...
ContainerSched 2015 "Our journey to world (gifting) domination - how notonthe...
 
Microservices: The Organizational and People Impact
Microservices: The Organizational and People ImpactMicroservices: The Organizational and People Impact
Microservices: The Organizational and People Impact
 
MicroManchester 2016 "A Brief Guide to Microservices"
MicroManchester 2016 "A Brief Guide to Microservices"MicroManchester 2016 "A Brief Guide to Microservices"
MicroManchester 2016 "A Brief Guide to Microservices"
 
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
 
microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"microXchg 2017: "Microservices: The People and Organisational Impact"
microXchg 2017: "Microservices: The People and Organisational Impact"
 

Viewers also liked

Viewers also liked (15)

Question the Status Quo - Seaford 2011
Question the Status Quo - Seaford 2011Question the Status Quo - Seaford 2011
Question the Status Quo - Seaford 2011
 
Thinking fast and slow. Decision making
Thinking fast and slow. Decision makingThinking fast and slow. Decision making
Thinking fast and slow. Decision making
 
Daniel kanheman Thinking Fast and Slow
Daniel kanheman Thinking Fast and SlowDaniel kanheman Thinking Fast and Slow
Daniel kanheman Thinking Fast and Slow
 
Williams thinking fast and slow
Williams thinking fast and slowWilliams thinking fast and slow
Williams thinking fast and slow
 
"Thinking, Fast and Slow" Applications
"Thinking, Fast and Slow" Applications"Thinking, Fast and Slow" Applications
"Thinking, Fast and Slow" Applications
 
Thinking Fast & Slow presentation
Thinking Fast & Slow presentationThinking Fast & Slow presentation
Thinking Fast & Slow presentation
 
Thinking fast and_slow
Thinking fast and_slow Thinking fast and_slow
Thinking fast and_slow
 
Loss Aversion & Endowment Effect
Loss Aversion & Endowment EffectLoss Aversion & Endowment Effect
Loss Aversion & Endowment Effect
 
Status Quo Bias
Status Quo BiasStatus Quo Bias
Status Quo Bias
 
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
J1 2015 "Building a Microservice Ecosystem: Some Assembly Still Required"
 
Why People Make Bad Decisions: The Role of Cognitive Biases
Why People Make Bad Decisions: The Role of Cognitive BiasesWhy People Make Bad Decisions: The Role of Cognitive Biases
Why People Make Bad Decisions: The Role of Cognitive Biases
 
Exploiting Fast and Slow Thinking
Exploiting Fast and Slow ThinkingExploiting Fast and Slow Thinking
Exploiting Fast and Slow Thinking
 
Anchoring and Adjustment in Behavioral Economics
Anchoring and Adjustment in Behavioral EconomicsAnchoring and Adjustment in Behavioral Economics
Anchoring and Adjustment in Behavioral Economics
 
Cognitive biases - a visual study guide
Cognitive biases - a visual study guideCognitive biases - a visual study guide
Cognitive biases - a visual study guide
 
Key Principles of Behavioural Finance
Key Principles of Behavioural FinanceKey Principles of Behavioural Finance
Key Principles of Behavioural Finance
 

Similar to J1 2015 "Thinking Fast and Slow with Software Development"

Advanced Project Data Analytics for Improved Project Delivery
Advanced Project Data Analytics for Improved Project DeliveryAdvanced Project Data Analytics for Improved Project Delivery
Advanced Project Data Analytics for Improved Project Delivery
Mark Constable
 
InfoVision_PM101_RPadaki
InfoVision_PM101_RPadakiInfoVision_PM101_RPadaki
InfoVision_PM101_RPadaki
Ravi Padaki
 

Similar to J1 2015 "Thinking Fast and Slow with Software Development" (20)

JAXLondon 2015 "Thinking Fast and Slow with Software Development"
JAXLondon 2015 "Thinking Fast and Slow with Software Development"JAXLondon 2015 "Thinking Fast and Slow with Software Development"
JAXLondon 2015 "Thinking Fast and Slow with Software Development"
 
Thinking fast and slow with software development - Daniel Bryant
Thinking fast and slow with software development - Daniel BryantThinking fast and slow with software development - Daniel Bryant
Thinking fast and slow with software development - Daniel Bryant
 
Devternity 2016 "Thinking Fast and Slow with Software Development"
Devternity 2016 "Thinking Fast and Slow with Software Development"Devternity 2016 "Thinking Fast and Slow with Software Development"
Devternity 2016 "Thinking Fast and Slow with Software Development"
 
AllDayDevOps: "Microservices: The People and Organisational Impact"
AllDayDevOps: "Microservices: The People and Organisational Impact"AllDayDevOps: "Microservices: The People and Organisational Impact"
AllDayDevOps: "Microservices: The People and Organisational Impact"
 
CraftConf 2017 "Microservices: The Organisational and People Impact"
CraftConf 2017 "Microservices: The Organisational and People Impact"CraftConf 2017 "Microservices: The Organisational and People Impact"
CraftConf 2017 "Microservices: The Organisational and People Impact"
 
CTOs in London "The Challenges of Evaluating Development Technology Within th...
CTOs in London "The Challenges of Evaluating Development Technology Within th...CTOs in London "The Challenges of Evaluating Development Technology Within th...
CTOs in London "The Challenges of Evaluating Development Technology Within th...
 
LJC 2015 "The Crafty Consultants Guide to DevOps"
LJC 2015 "The Crafty Consultants Guide to DevOps"LJC 2015 "The Crafty Consultants Guide to DevOps"
LJC 2015 "The Crafty Consultants Guide to DevOps"
 
Trippe "Project Management Trends in Publishing: Agile is the New Norm and Th...
Trippe "Project Management Trends in Publishing: Agile is the New Norm and Th...Trippe "Project Management Trends in Publishing: Agile is the New Norm and Th...
Trippe "Project Management Trends in Publishing: Agile is the New Norm and Th...
 
#NoProjects - Beyond Projects
#NoProjects - Beyond Projects#NoProjects - Beyond Projects
#NoProjects - Beyond Projects
 
CraftConf16 "Empathy: The Hidden Ingredient of Good Software Development?"
CraftConf16 "Empathy: The Hidden Ingredient of Good Software Development?"CraftConf16 "Empathy: The Hidden Ingredient of Good Software Development?"
CraftConf16 "Empathy: The Hidden Ingredient of Good Software Development?"
 
The London Web "Empathy - The Hidden Ingredient of Good Software Development"
The London Web "Empathy - The Hidden Ingredient of Good Software Development"The London Web "Empathy - The Hidden Ingredient of Good Software Development"
The London Web "Empathy - The Hidden Ingredient of Good Software Development"
 
GOTO CPH "With Age Comes Wisdom (Hopefully): Lessons Learned from 15 Years of...
GOTO CPH "With Age Comes Wisdom (Hopefully): Lessons Learned from 15 Years of...GOTO CPH "With Age Comes Wisdom (Hopefully): Lessons Learned from 15 Years of...
GOTO CPH "With Age Comes Wisdom (Hopefully): Lessons Learned from 15 Years of...
 
Predictive Analytics & Business Insights
Predictive Analytics & Business InsightsPredictive Analytics & Business Insights
Predictive Analytics & Business Insights
 
Advanced Project Data Analytics for Improved Project Delivery
Advanced Project Data Analytics for Improved Project DeliveryAdvanced Project Data Analytics for Improved Project Delivery
Advanced Project Data Analytics for Improved Project Delivery
 
Beyond Projects: why projects are wrong and what to do instead
Beyond Projects: why projects are wrong and what to do insteadBeyond Projects: why projects are wrong and what to do instead
Beyond Projects: why projects are wrong and what to do instead
 
The Hive Think Tank: Machine Learning at Pinterest by Jure Leskovec
The Hive Think Tank: Machine Learning at Pinterest by Jure LeskovecThe Hive Think Tank: Machine Learning at Pinterest by Jure Leskovec
The Hive Think Tank: Machine Learning at Pinterest by Jure Leskovec
 
Usability Testing for Survey Research:How to and Best Practices
Usability Testing for Survey Research:How to and Best PracticesUsability Testing for Survey Research:How to and Best Practices
Usability Testing for Survey Research:How to and Best Practices
 
Techorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source productTechorama 2022 - Adventures of building Promitor, an open-source product
Techorama 2022 - Adventures of building Promitor, an open-source product
 
InfoVision_PM101_RPadaki
InfoVision_PM101_RPadakiInfoVision_PM101_RPadaki
InfoVision_PM101_RPadaki
 
Staying Competitive in Data Analytics: Analyze Boulder 20140903
Staying Competitive in Data Analytics: Analyze Boulder 20140903Staying Competitive in Data Analytics: Analyze Boulder 20140903
Staying Competitive in Data Analytics: Analyze Boulder 20140903
 

More from Daniel Bryant

More from Daniel Bryant (20)

ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API GatewaysITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
 
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
 
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
 
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
 
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
 
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

J1 2015 "Thinking Fast and Slow with Software Development"

  • 1. Thinking, Fast and Slow… With Software Development Daniel Bryant Principal Consultant, OpenCredo daniel.bryant@opencredo.com @danielbryantuk
  • 2. Think More Deliberately • Our decision making can be flawed… • Apply process and models (as appropriate) • Collaborate more (and better) • Plan, do, check, act… 28/10/2015 @danielbryantuk
  • 3. Who Am I? • London Java Community Associate • Adopt OpenJDK and JSR • InfoQ Editor, DZone MVB, Voxxed 28/10/2015 @danielbryantuk • Principal Consultant at OpenCredo • Technical/digital transformation • Java, Golang, CI/CD, DevOps • Microservices, cloud and containers • PhD in Artificial Intelligence
  • 4. Pointy-Haired Decision Making… 28/10/2015 @danielbryantuk dilbert.com/strip/2010-08-24
  • 5. Our Thinking: A Tale of Two Systems… System 1: fast, instinctive, emotional, subconscious System 2: slower, deliberate, reasoning, conscious 28/10/2015 @danielbryantuk
  • 6. 2 + 2 = ? 28/10/2015 @danielbryantuk
  • 7. (24 / 2) * (1 / 3) = ? 28/10/2015 @danielbryantuk
  • 8. 2 + 2 = 4 (24 / 2) * (1 / 3) = 4 28/10/2015 @danielbryantuk
  • 12. Bob is a single male in his 20’s who is bright, quiet, likes science fiction and fantasy, and avoids interacting with people in the real world Which is more probable? • Bob is a programmer • Bob is a programmer and plays MMORPG? 28/10/2015 @danielbryantuk
  • 14. Our Thinking: A Tale of Two Systems… System 1: fast, instinctive, emotional, subconscious Rapid, associative, and has systemic errors System 2: slower, deliberate, reasoning, conscious Lazy, and causal (not statistical) 28/10/2015 @danielbryantuk
  • 15. Heuristics / biases affecting software delivery 28/10/2015 @danielbryantuk
  • 16. Availability Heuristic “If something can be recalled, it must be important” ‘Hipster-itis’ e.g. the ‘best’ architectural style 28/10/2015 @danielbryantuk
  • 17. Microservices • The current flavour of the month! – Great ideas, but dangerously over-hyped • Frameworks and products emerging – Virtuous (vicious?) circle – “The bandwagon effect” – Have we found the silver bullet?… 28/10/2015 @danielbryantuk
  • 18. Whatever is Available When all you have is a hammer… …everything looks like a nail 28/10/2015 @danielbryantuk
  • 19. When all you have is a SOA… …everything looks like a service (please avoid creating the toString() service) 28/10/2015 @danielbryantuk
  • 20. When all you have is a Jenkins… …everything looks like a Jenkins Job 28/10/2015 @danielbryantuk
  • 21. When all you have is a Spring Framework… …everything looks like an AbstractSingletonProxyFactoryBean 28/10/2015 @danielbryantuk
  • 22. Availability: Think Professionally • Stop… engage system 2 • Spike/prototype, experiment, evaluate… • Constant learning – Find trusted mentors – Cultivate blogs – Read the classics 28/10/2015 @danielbryantuk
  • 24. 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 28/10/2015 @danielbryantuk
  • 25. Raible’s Comparison Matrix 28/10/2015 @danielbryantuk Matt Raible comparison matrix (bit.ly/OxUzad)
  • 26. Optimistic Bias “People tend to be overconfident, believing that they have substantial control in their lives” I know what our customers want… …how could I possibly be wrong? 28/10/2015 @danielbryantuk
  • 27. Four Factors of Optimistic Bias • Desired end state – Self-enhancement, perceived control • Cognitive mechanisms – Representativeness heuristic, singular target focus • Information about self vs target • Overall mood 28/10/2015 @danielbryantuk
  • 28. Optimism: Think Professionally • Define (and share) clear goals • Build, measure, learn… • Remove uncertainty early (bit.ly/1mAb6o4) – “Patterns of Effective Delivery” by Dan North • Software is inherently collaborative… 28/10/2015 @danielbryantuk
  • 29. The Three Amigos 28/10/2015 @danielbryantuk www.slideshare.net/chassa/2012-1130alm-dayviennaslideshare
  • 30. Pair Mob Programming 28/10/2015 @danielbryantuk benjiweber.co.uk/blog/2014/11/30/the-unruly-mob/ probablyfine.co.uk/papers/mob-programming.pdf www.infoq.com/interviews/zuill-mob-programming
  • 31. DevOps: Share the Pain... 28/10/2015 @danielbryantuk
  • 32. “Dev-on-call” An occasional spike to the head is a good thing... ...metaphorically speaking • You build it, you run it – Shared responsibility – Communication 28/10/2015 @danielbryantuk
  • 33. Remove (or Limit) Uncertainty 28/10/2015 @danielbryantuk
  • 34. Check the HiPPO 28/10/2015 @danielbryantuk bit.ly/1xseeXM
  • 35. Planning Fallacy “A phenomenon in which predictions about how much time will be needed to complete a future task display an optimistic bias. ” Was your last project completed on time? …and on budget? 28/10/2015 @danielbryantuk
  • 36. IT Track Record… • Sainsbury’s Supply Chain Management System – $526m bit.ly/160SnAj • NHS patient record system – £10bn bit.ly/XBzFuV • HealthCare.gov – onforb.es/1k7egyb 28/10/2015 @danielbryantuk
  • 37. Most Common Factors for Failure • Unrealistic or unarticulated project goals • Inaccurate estimates of needed resources • Badly defined system requirements • Poor reporting of the project's status • Unmanaged risks • Poor communication among customers, developers, and users • Use of immature technology • Inability to handle the project's complexity • Sloppy development practices • Poor project management • Stakeholder politics • Commercial pressures Source spectrum.ieee.org/computing/software/why-software-fails 28/10/2015 @danielbryantuk
  • 38. Most Common Factors for Failure • Unrealistic or unarticulated project goals • Inaccurate estimates of needed resources • Badly defined system requirements • Poor reporting of the project's status • Unmanaged risks • Poor communication among customers, developers, and users • Use of immature technology • Inability to handle the project's complexity • Sloppy development practices • Poor project management • Stakeholder politics • Commercial pressures Source spectrum.ieee.org/computing/software/why-software-fails 28/10/2015 @danielbryantuk
  • 39. At the Start: Feedback & Federation • Plan, do, check (showcase), act • Improve estimation (or #noestimates?) • Divide and conquer – SOA, microservices, modules… (systems thinking) – Squads, guilds, chapters 28/10/2015 @danielbryantuk
  • 41. A Side Note Even if your upfront planning is good… 28/10/2015 @danielbryantuk
  • 42. Things Inevitably Go Wrong… 28/10/2015 @danielbryantuk
  • 43. At the End: It’s All About People 28/10/2015 @danielbryantuk www.infoq.com/news/2015/06/too-big-to-fail
  • 44. From Macro to Micro… 28/10/2015 @danielbryantuk
  • 45. Accept Unknown Unknowns… 28/10/2015 @danielbryantuk dilbert.com/strips/comic/1995-11-10/
  • 46. Sunk Cost Fallacy “Any past cost that has already been paid and cannot be recovered should not figure into the decision making process. ” When did you last remove a framework? …or a library? 28/10/2015 @danielbryantuk
  • 47. Why Are We Reluctant? • We don’t like being wrong… • Existing effort appears wasted – Endowment effect • Loss aversion – Twice as powerful, psychologically, as gains? 28/10/2015 @danielbryantuk
  • 48. Try Not to ‘Sink Costs’ 28/10/2015 @danielbryantuk
  • 49. Retrospect Regularly • Did we make the right choice? • When was the ‘last responsible moment’? • What can we learn? • How can we get better? 28/10/2015 @danielbryantuk
  • 50. Anchoring Bias “Common tendency to rely too heavily on the first piece of information offered when making decisions. ” How does your manager ask for estimates? …is it an unbiased question? 28/10/2015 @danielbryantuk
  • 52. Anchoring: Learn to “Upwardly Manage” • Learn to say no… – Provide explanations and alternatives • Make sure goals/user stories are well-defined – Collaboration – Feedback • Apply PERT estimations (bit.ly/1mGzuoe) 28/10/2015 @danielbryantuk
  • 53. A Little More #NoEstimates 28/10/2015 @danielbryantuk ronjeffries.com/xprog/articles/the-noestimates-movement/
  • 54. Read Your Way to Tech Leadership (?) 28/10/2015 @danielbryantuk
  • 55. Ok, lets wrap this up… 28/10/2015 @danielbryantuk
  • 56. System 1 is Awesome! • It saves us from many dangers • Very valuable in many situations – ‘gut feel’, instincts, intuition – Expertise plays a role – Can be used for good • But, I see too much System 1 in IT… 28/10/2015 @danielbryantuk
  • 57. We All Make Mistakes… 28/10/2015 @danielbryantuk
  • 58. Have a Little Empathy… 28/10/2015 @danielbryantuk
  • 59. “You will be the same person in five years as you are today except for the people you meet and the books you read.” - Charlie “Tremendous” Jones (bit.ly/1LAdQkv) 28/10/2015 @danielbryantuk
  • 60. Awesome Conferences and Books 28/10/2015 @danielbryantuk
  • 62. Summary • Apply process and models (as appropriate) – Listen to system 1, but engage system 2… • Collaborate more (and better) • Learn, do, retrospect, (teach,) repeat - “Think” more deliberately - 28/10/2015 @danielbryantuk
  • 63. Thanks for Listening! Comments and feedback are welcomed… daniel.bryant@opencredo.com @danielbryantuk www.infoq.com/author/Daniel-Bryant www.parleys.com/author/daniel-bryant www.muservicesweekly.com 28/10/2015 @danielbryantuk

Editor's Notes

  1. Many explanations for the optimistic bias come from the goals that people want and outcomes they wish to see.[1] People tend to view their risks as less than others because they believe that this is what other people want to see. These explanations include self-enhancement, self-presentation, and perceived control. Self-enhancement suggests that optimistic predictions are satisfying and that it feels good to think that positive events will happen. People tend to focus on finding information that supports what they want to see happen, rather than what will happen to them Representative heuristic: individuals tend to think in stereotypical categories rather than about their actual targets when making comparisons. The estimates of likelihood associated with the optimistic bias are based on how closely an event matches a person's overall idea of the specific event Individuals know a lot more about themselves than they do about others.[1] Because information about others is less available, information about the self versus others leads people to make specific conclusions about their own risk, but results in them having a harder time making conclusions about the risks of others. This leads to differences in judgments and conclusions about self-risks compared to the risks of others, leading to larger gaps in the optimistic bias
  2. In behavioral economics, the endowment effect (also known as divestiture aversion) is the hypothesis that people ascribe more value to things merely because they own them (1990 where participants were given a mug and then offered the chance to sell it or trade it for an equally priced alternative good (pens). Kahneman et al. (1990)[2] found that the amount participants required as compensation for the mug once their ownership of the mug had been established ("willingness to accept") was approximately twice as high as the amount they were willing to pay to acquire the mug ("willingness to pay") Loss aversion implies that one who loses $100 will lose more satisfaction than another person will gain satisfaction from a $100 windfall.
  3. delay commitment until the last responsible moment, that is, the moment at which failing to make a decision eliminates an important alternative. If commitments are delayed beyond the last responsible moment, then decisions are made by default, which is generally not a good approach to making decisions. The key is to make decisions as late as you can responsibly wait because that is the point at which you have the most information on which to base the decision.
  4. Program Evaluation and Review Technique Three-point estimation technique