SlideShare uma empresa Scribd logo
1 de 40
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)
• Build, measure, learn…
• Collaborate more (and better)
05/02/2015 @danielbryantuk
Who Am I?
• London Java Community Associate
• Adopt OpenJDK and JSR
• InfoQ Editor and DZone MVB
05/02/2015 @danielbryantuk
• Principal Consultant at OpenCredo
 Agile transformations
 DevOps methodologies
 Microservices and Cloud
Workplace Decision Making…
05/02/2015 @danielbryantuk
dilbert.com/strip/2010-08-24
Your Thinking: A Tale of Two Systems…
System 1:
fast, instinctive, emotional, subconscious
System 2:
slower, deliberate, reasoning, conscious
05/02/2015 @danielbryantuk
Your 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)
05/02/2015 @danielbryantuk
Heuristics / biases affecting software developers
05/02/2015 @danielbryantuk
Availability Heuristic
“If something can be recalled,
it must be important”
‘Hipster-itis’
e.g. the ‘best’ architectural style
05/02/2015 @danielbryantuk
Microservices
• The current flavour of the month!
• Frameworks and products emerging
• Virtuous (vicious?) circle
05/02/2015 @danielbryantuk
“MongoDB is Web Scale”
05/02/2015 @danielbryantuk
www.mongodb-is-web-scale.com/
“MySQL is slow as a dog. MongoDB will run circles around
MySQL because MongoDB is web scale.”
“MongoDB does have some impressive benchmarks, but
they do some interesting things to get those numbers.
For example, when you write to MongoDB, you stage
your data to be written [to disk] at a later time.”
“If that's what they need to do to get those kickass
benchmarks, then it's a great design.”
“..... If you were stupid enough to totally ignore durability
just to get benchmarks, then I suggest you pipe your data
to /dev/null. It will be very fast.”
05/02/2015 @danielbryantuk
Availability: Think Professionally
• Stop… engage system 2
• Spike/prototype, experiment, evaluate…
• Constant learning
– Find trusted mentors
– Read the classics
– Cultivate blogs
05/02/2015 @danielbryantuk
Java Fundamentals
05/02/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
05/02/2015 @danielbryantuk
Raible’s Comparison Matrix
05/02/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?
05/02/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
05/02/2015 @danielbryantuk
Optimism: Think Professionally
• Define clear goals
• Build, measure, learn…
• Remove uncertainty early (bit.ly/1mAb6o4)
– “Patterns of Effective Delivery” by Dan North
• Software is inherently collaborative…
05/02/2015 @danielbryantuk
Remove (or Limit) Uncertainty
05/02/2015 @danielbryantuk
Check the HiPPO
05/02/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?
05/02/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
05/02/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
05/02/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
05/02/2015 @danielbryantuk
Segmentation
• Divide and conquer
– SOA, microservices or modules?
– Integration costs
• Systems thinking
• Plan, do, check (measure), act
• Improve estimation techniques
05/02/2015 @danielbryantuk
From Macro to Micro…
05/02/2015 @danielbryantuk
Accept Unknown Unknowns…
05/02/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?
05/02/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?
05/02/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?
05/02/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?
05/02/2015 @danielbryantuk
05/02/2015 @danielbryantuk
Anchoring: Think Professionally
• Learn to say no…
– Provide explanations and alternatives
• Make sure User Stories are well-defined
– Collaboration
• Apply PERT estimations (bit.ly/1mGzuoe)
05/02/2015 @danielbryantuk
Read Your Way to Tech Lead (?)
05/02/2015 @danielbryantuk
Ok, lets wrap this up…
05/02/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)
05/02/2015 @danielbryantuk
Awesome Conferences and Books
05/02/2015 @danielbryantuk
05/02/2015 @danielbryantuk
Summary
• Apply process and models (as appropriate)
– Engage system 2…
• Learn, do, retrospect, (teach,) repeat
• Collaborate more (and better)
- Think more deliberately -
05/02/2015 @danielbryantuk
Thanks for Listening!
Comments and feedback are welcomed…
daniel.bryant@opencredo.com
@danielbryantuk
Thanks:
05/02/2015 @danielbryantuk

Mais conteúdo relacionado

Mais procurados

How to avoid SharePoint becoming a wicked problem
How to avoid SharePoint becoming a wicked problemHow to avoid SharePoint becoming a wicked problem
How to avoid SharePoint becoming a wicked problem
Paul Culmsee
 
Streaming Analytics and Cognitive Computing - Changing the Game
Streaming Analytics and Cognitive Computing - Changing the GameStreaming Analytics and Cognitive Computing - Changing the Game
Streaming Analytics and Cognitive Computing - Changing the Game
Jason Bloomberg
 

Mais procurados (9)

Rapid Product Design in the Wild
Rapid Product Design in the WildRapid Product Design in the Wild
Rapid Product Design in the Wild
 
User research + agile = RITE+Krug
User research + agile = RITE+KrugUser research + agile = RITE+Krug
User research + agile = RITE+Krug
 
User Experience for Content Sites
User Experience for Content SitesUser Experience for Content Sites
User Experience for Content Sites
 
Pscad agile adoption
Pscad agile adoptionPscad agile adoption
Pscad agile adoption
 
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
12/2/2014 Milwaukee Agile Presentation: Persuading Your Oganization to be Agile
 
Designing the Next Generation of Search User Experience - UXPA2015
Designing the Next Generation of Search User Experience - UXPA2015Designing the Next Generation of Search User Experience - UXPA2015
Designing the Next Generation of Search User Experience - UXPA2015
 
How to avoid SharePoint becoming a wicked problem
How to avoid SharePoint becoming a wicked problemHow to avoid SharePoint becoming a wicked problem
How to avoid SharePoint becoming a wicked problem
 
UR on the Cheap December 2012
UR on the Cheap December 2012UR on the Cheap December 2012
UR on the Cheap December 2012
 
Streaming Analytics and Cognitive Computing - Changing the Game
Streaming Analytics and Cognitive Computing - Changing the GameStreaming Analytics and Cognitive Computing - Changing the Game
Streaming Analytics and Cognitive Computing - Changing the Game
 

Semelhante a Jfokus 2015 "Thinking Fast and Slow with Software Development"

InfoVision_PM101_RPadaki
InfoVision_PM101_RPadakiInfoVision_PM101_RPadaki
InfoVision_PM101_RPadaki
Ravi Padaki
 
LEARN STARTUP OVERVIEW
LEARN STARTUP OVERVIEWLEARN STARTUP OVERVIEW
LEARN STARTUP OVERVIEW
we20
 

Semelhante a Jfokus 2015 "Thinking Fast and Slow with Software Development" (20)

J1 2015 "Thinking Fast and Slow with Software Development"
J1 2015 "Thinking Fast and Slow with Software Development"J1 2015 "Thinking Fast and Slow with Software Development"
J1 2015 "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"
Devternity 2016 "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
 
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
 
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
 
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...
 
CIO 360 grados: empoderamiento total
CIO 360 grados: empoderamiento totalCIO 360 grados: empoderamiento total
CIO 360 grados: empoderamiento total
 
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"
 
Think tank - Data Culture for a Better Business
Think tank - Data Culture for a Better BusinessThink tank - Data Culture for a Better Business
Think tank - Data Culture for a Better Business
 
A Decade of SharePoint Adoption
A Decade of SharePoint AdoptionA Decade of SharePoint Adoption
A Decade of SharePoint Adoption
 
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
 
Acceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and AuditableAcceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and Auditable
 
InfoVision_PM101_RPadaki
InfoVision_PM101_RPadakiInfoVision_PM101_RPadaki
InfoVision_PM101_RPadaki
 
Top 7 BI Trends for 2015
Top 7 BI Trends for 2015Top 7 BI Trends for 2015
Top 7 BI Trends for 2015
 
Gaining Insight into Twitter Audiences through Personality Analysis
Gaining Insight into Twitter Audiences through Personality AnalysisGaining Insight into Twitter Audiences through Personality Analysis
Gaining Insight into Twitter Audiences through Personality Analysis
 
LEARN STARTUP OVERVIEW
LEARN STARTUP OVERVIEWLEARN STARTUP OVERVIEW
LEARN STARTUP OVERVIEW
 
#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...
 

Mais de Daniel Bryant

Mais de 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 ...
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Jfokus 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) • Build, measure, learn… • Collaborate more (and better) 05/02/2015 @danielbryantuk
  • 3. Who Am I? • London Java Community Associate • Adopt OpenJDK and JSR • InfoQ Editor and DZone MVB 05/02/2015 @danielbryantuk • Principal Consultant at OpenCredo  Agile transformations  DevOps methodologies  Microservices and Cloud
  • 4. Workplace Decision Making… 05/02/2015 @danielbryantuk dilbert.com/strip/2010-08-24
  • 5. Your Thinking: A Tale of Two Systems… System 1: fast, instinctive, emotional, subconscious System 2: slower, deliberate, reasoning, conscious 05/02/2015 @danielbryantuk
  • 6. Your 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) 05/02/2015 @danielbryantuk
  • 7. Heuristics / biases affecting software developers 05/02/2015 @danielbryantuk
  • 8. Availability Heuristic “If something can be recalled, it must be important” ‘Hipster-itis’ e.g. the ‘best’ architectural style 05/02/2015 @danielbryantuk
  • 9. Microservices • The current flavour of the month! • Frameworks and products emerging • Virtuous (vicious?) circle 05/02/2015 @danielbryantuk
  • 10. “MongoDB is Web Scale” 05/02/2015 @danielbryantuk www.mongodb-is-web-scale.com/
  • 11. “MySQL is slow as a dog. MongoDB will run circles around MySQL because MongoDB is web scale.” “MongoDB does have some impressive benchmarks, but they do some interesting things to get those numbers. For example, when you write to MongoDB, you stage your data to be written [to disk] at a later time.” “If that's what they need to do to get those kickass benchmarks, then it's a great design.” “..... If you were stupid enough to totally ignore durability just to get benchmarks, then I suggest you pipe your data to /dev/null. It will be very fast.” 05/02/2015 @danielbryantuk
  • 12. Availability: Think Professionally • Stop… engage system 2 • Spike/prototype, experiment, evaluate… • Constant learning – Find trusted mentors – Read the classics – Cultivate blogs 05/02/2015 @danielbryantuk
  • 14. 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 05/02/2015 @danielbryantuk
  • 15. Raible’s Comparison Matrix 05/02/2015 @danielbryantuk Matt Raible comparison matrix (bit.ly/OxUzad)
  • 16. 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? 05/02/2015 @danielbryantuk
  • 17. 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 05/02/2015 @danielbryantuk
  • 18. Optimism: Think Professionally • Define clear goals • Build, measure, learn… • Remove uncertainty early (bit.ly/1mAb6o4) – “Patterns of Effective Delivery” by Dan North • Software is inherently collaborative… 05/02/2015 @danielbryantuk
  • 19. Remove (or Limit) Uncertainty 05/02/2015 @danielbryantuk
  • 20. Check the HiPPO 05/02/2015 @danielbryantuk bit.ly/1xseeXM
  • 21. 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? 05/02/2015 @danielbryantuk
  • 22. 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 05/02/2015 @danielbryantuk
  • 23. 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 05/02/2015 @danielbryantuk
  • 24. 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 05/02/2015 @danielbryantuk
  • 25. Segmentation • Divide and conquer – SOA, microservices or modules? – Integration costs • Systems thinking • Plan, do, check (measure), act • Improve estimation techniques 05/02/2015 @danielbryantuk
  • 26. From Macro to Micro… 05/02/2015 @danielbryantuk
  • 27. Accept Unknown Unknowns… 05/02/2015 @danielbryantuk dilbert.com/strips/comic/1995-11-10/
  • 28. 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? 05/02/2015 @danielbryantuk
  • 29. Why Are We Reluctant? • We don’t like being wrong… • Existing effort appears wasted – Endowment effect • Loss aversion – Twice as powerful, psychologically, as gains? 05/02/2015 @danielbryantuk
  • 30. Retrospect Regularly • Did we make the right choice? • When was the ‘last responsible moment’? • What can we learn? • How can we get better? 05/02/2015 @danielbryantuk
  • 31. 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? 05/02/2015 @danielbryantuk
  • 33. Anchoring: Think Professionally • Learn to say no… – Provide explanations and alternatives • Make sure User Stories are well-defined – Collaboration • Apply PERT estimations (bit.ly/1mGzuoe) 05/02/2015 @danielbryantuk
  • 34. Read Your Way to Tech Lead (?) 05/02/2015 @danielbryantuk
  • 35. Ok, lets wrap this up… 05/02/2015 @danielbryantuk
  • 36. “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) 05/02/2015 @danielbryantuk
  • 37. Awesome Conferences and Books 05/02/2015 @danielbryantuk
  • 39. Summary • Apply process and models (as appropriate) – Engage system 2… • Learn, do, retrospect, (teach,) repeat • Collaborate more (and better) - Think more deliberately - 05/02/2015 @danielbryantuk
  • 40. Thanks for Listening! Comments and feedback are welcomed… daniel.bryant@opencredo.com @danielbryantuk Thanks: 05/02/2015 @danielbryantuk

Notas do Editor

  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