Upload
daniel-bryant
View
747
Download
2
Tags:
Embed Size (px)
DESCRIPTION
In the international bestseller 'Thinking, Fast and Slow', Daniel Kahneman explains how we as human beings think and reason, and perhaps surprisingly how our thought processes are often fundamentally flawed and biased. This talk briefly explores the ideas presented in the book in the context of professional software development. As software developers we all like to think that we are highly logical, and make only rational choices, but after reading the book I'm not so sure. Here I'll share my thinking on thinking. This is the second iteration of this talk.
Citation preview
Professional Software Development:Thinking, Fast and Slow
Daniel BryantPrincipal Consultant, OpenCredo
[email protected]@danielbryantuk
10/04/2023 @danielbryantuk
Thinking, Fast and Slow
An awesome book!
Exploring how we think…“Bias and decision heuristics”
amzn.to/KidCCy
10/04/2023 @danielbryantuk
Workplace decision making…
http://dilbert.com/strips/comic/1994-11-03/
10/04/2023 @danielbryantuk
Your Thinking: A Tale of Two Systems…
System 1:fast, instinctive, emotional, subconscious
System 2:slower, deliberate, reasoning, conscious
10/04/2023 @danielbryantuk
2 + 2 = ?
10/04/2023 @danielbryantuk
13 + 47 = ?
10/04/2023 @danielbryantuk
10/04/2023 @danielbryantuk
10/04/2023 @danielbryantuk
10/04/2023 @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
• Computer programmer?• Computer programmer who plays MMORPG?
10/04/2023 @danielbryantuk
Your Thinking: A Tale of Two Systems…
System 1:fast, instinctive, emotional, subconsciousRapid, associative, and has systemic errors
System 2:slower, deliberate, reasoning, consciousLazy, and causal (not statistical)
10/04/2023 @danielbryantuk
Heuristics / biases affecting software developers
10/04/2023 @danielbryantuk
Availability Heuristic
“If something can be recalled, it must be important”
‘Hipster-itis’ e.g. RDBMS aren’t web-scale…
…and “alpha geeks” tend to be quite opinionated
10/04/2023 @danielbryantuk
“MongoDB is Webscale”
http://www.mongodb-is-web-scale.com/
10/04/2023 @danielbryantuk
TDD is Dead (Long Live TDD)
10/04/2023 @danielbryantuk
Availability: Think Professionally
• Stop… engage system 2
• Constant learning and evaluation – Find trusted mentors– Read the classics– Cultivate blogs
• Spike, prototype, experiment…
10/04/2023 @danielbryantuk
Java Fundamentals
10/04/2023 @danielbryantuk
Comparison Matrix
Matt Raible comparison matrix (bit.ly/OxUzad)
10/04/2023 @danielbryantuk
Optimistic Bias
“People tend to be overconfident, believing that they have substantial
control in their lives”
Big up-front design… vs ‘last responsible moment’…
10/04/2023 @danielbryantuk
The Unknown Unknowns…
http://dilbert.com/strips/comic/1995-11-10/
10/04/2023 @danielbryantuk
Optimism: Think Professionally
• Remove uncertainty early (bit.ly/1mAb6o4)– “Patterns of Effective Delivery” by Dan North
• Review (and retrospect) progress regularly
• Architectural knowledge is vital
• Software is inherently collaborative…
10/04/2023 @danielbryantuk
Collaboration and Architecture
10/04/2023 @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?
10/04/2023 @danielbryantuk
10/04/2023 @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)
10/04/2023 @danielbryantuk
Read Your Way to Tech Lead (?)
10/04/2023 @danielbryantuk
Summary
• Learn, do, teach, retrospect, repeat
• Engage system 2…
• Apply process (as appropriate)
• Collaborate
10/04/2023 @danielbryantuk
Thanks for Listening!
Comments and feedback are welcomed…
[email protected]@danielbryantuk
Thanks: