LJC 2014 "Professional Software Development: Thinking Fast and Slow"
-
Upload
daniel-bryant -
Category
Technology
-
view
745 -
download
2
description
Transcript of LJC 2014 "Professional Software Development: Thinking Fast and Slow"
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: