Upload
janelle-klein
View
355
Download
1
Embed Size (px)
Citation preview
SPCLooks okay.
Alert!Measurements
Tools
About 10 Years Ago…Statistical Process Control (SPC) in Semiconductor
SPCLooks okay.
Alert!Measurements
Tools
We shipped to production…
SPCLooks okay.
Shutdown!Measurements
Tools
Missing Config Change
We shipped to production…
SPC
Measurements
Looks okay.
Alert!
Tools
We shipped to production…AGAIN
SPCLooks okay.
Shutdown!Measurements
ToolsWe couldn’t reproduce the problem!
We shipped to production…AGAIN
SPCLooks okay.
Shutdown!Measurements
Tools
Six months later…
Threading Bug
SPC
Measurements
Looks okay.
Alert!
Tools
We shipped to production…
AGAIN (3x)
SPCLooks okay.
Shutdown!Measurements
Tools
Memory Leak
We shipped to production…
AGAIN (3x)
Totally my fault.
We had an AWESOME team!
We had a MOUNTAIN of automation!
We were DISCIPLINED with best practices!+
Project FAILURE
+
We had a GREAT team!
We had a MOUNTAIN of automation!
We were DISCIPLINED with best practices!
How did we turn this around?
The Retrospective
“Our tests aren’t catching our bugs!”
Our biggest problem
“Well, if we don’t understand a problem, we should
collect data.” “What data would help us understand the problem?”
Technical Debt Mistakes
I thought the problem was Technical Debt
SPCLooks okay.
Alert!Measurements
Tools
System ArchitectureStatistical Process Control (SPC)
UI code Charting
Code
BeautifulLooks okay.
Alert!Measurements
Tools UGLY UGLY
System ArchitectureStatistical Process Control (SPC)
Complex(So*ware(
PAIN
This is what I knew...
What made development feel painful?
Unexpected Behavior
Problem Resolved
Tracking Painful Experience with the Code
Troubleshooting
Progress
5 hours and 18 minutes of troubleshooting...
PAINFUL
The amount of PAIN was caused by…
Likeliness(of((Unexpected(Behavior(
Cost(to(Troubleshoot(and(Repair(
High(Frequency(Low(Impact(
Low(Frequency(Low(Impact(
Low(Frequency(High(Impact(
PAIN(
What Causes Unexpected Behavior (likeliness)?
What Makes Troubleshooting Time-Consuming (impact)?
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
Most of the pain was caused by human factors.
What causes PAIN?
What Causes Unexpected Behavior (likeliness)?
What Makes Troubleshooting Time-Consuming (impact)?
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
What causes PAIN?
Most of the pain was caused by human factors.
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
What Causes Unexpected Behavior (likeliness)?
What Makes Troubleshooting Time-Consuming (impact)?
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
What causes PAIN?
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Most of the pain was caused by human factors.
PAIN occurs during the process of understanding and extending the software
Complex(So*ware(
PAIN
Not the Code.
Optimize “Idea Flow”
PAIN occurs during the process of understanding and extending the software
Complex(So*ware(
PAIN
Not the Code.
Optimize “Idea Flow”
Data-driven Improvement
My team spent tons of time working on improvements that didn’t make much difference.
We had tons of automation, but the automation didn’t catch our bugs.
My team spent tons of time working on improvements that didn’t make much difference.
We had well-modularized code,
but it was still extremely time-consuming to troubleshoot defects.
The hard part isn’t solving the problems it’s identifying the right problems to solve.
“What are the specific problems that are causing the team’s pain?”
We learned how to learn together
Culture
What changed on our team?
The Fifth Discipline The Art & Practice of the Learning Organization
Peter Senge
The Most INSPIRING Book EVER…
We learned how to learn together?
What if…
We saw the world as one big design problem?
What if…
Coding problem? We’ve got tools for this.
Service 2Service 1
Human problem? PANIC!
“Let’s fix these HUMAN Problems!” A Scary Thought to Engineers
Predictably Irrational Dan Ariely
“What if I could explain humans like code?”Crazy Idea:
Code problems? We’ve got tools for this.
Service 2Service 1
Humans Become an Engineering Problem
Service 2Service 1
Human Problems? We’ve got tools for this too.
This Talk: Culture from the Inside Out
Output: Decisions
Feedback Loop
DB
Pain Signal
Input: Ideas
HUMAN = Decision-Making Engine
Awesome Signal
Goal: Minimize PAIN
Maximize AWESOME
Recognition: How do ideas get inside our head?
Input: Ideas
Metaphors We Live By George Lakoff and Mark Johnson
On Intelligence Jeff Hawkins
+
A Synthesis of the Research In…
Observe Pattern
“Do I know this pattern?”
Think of a “Concept” as a Metaphorical Shape
Observe Pattern
“Do I know this pattern?”
Think of a “Concept” as a Metaphorical Shape
“I don’t see anything.”
No Shape = No Recognition
Think of a “Concept” as a Metaphorical Shape
“Clojure”“What is Clojure?”
Let’s say a friend asks us…
“What is Clojure?”
Let’s say a friend asks us…
Recognition is a Bottom-Up Process
Summarize
Sensory signals
“Clojure”
Brain Layer
Brain Layer
Brain Layer
Recognition FAILURE
Summarize
Sensory signals
Brain Layer
Brain Layer
Brain Layer
Eh?
“What is Clojure?”
Lisp
Functional Language
Groovy
JVM Language
Object-Oriented Language
New Shapes are Defined Relative to Old Shapes
“What is Clojure?”
Lisp
Functional Language
Groovy
JVM Language
Object-Oriented Language
Clojure!
Functional Language
JVM Language
New Shapes are Defined Relative to Old Shapes
Brain Hack #1
How can you improve your ability to communicate with your peers and
recognize more details in your experience?
Expand your vocabulary of shapes
What Causes Unexpected Behavior (likeliness)?
What Makes Troubleshooting Time-Consuming (impact)?
Semantic Mistakes
Stale Memory Mistakes
Association Mistakes
Bad Input Assumption
Tedious Change Mistakes
Copy-Edit Mistakes
Transposition Mistakes
Failed Refactor Mistakes
False Alarm
Non-Deterministic Behavior
Ambiguous Clues
Lots of Code Changes
Noisy Output
Cryptic Output
Long Execution Time
Environment Cleanup
Test Data Creation
Using Debugger
Expand your vocabulary of shapes
Meaning: How are shapes combined to create meaning?
Input: Ideas
DB
Thing Patterns
Process Patterns
Relationship Patterns
Three Different Base Classes for “Concepts"
Base Classes for Thing Patterns
Physical Object I
Base Classes for Relationship Patterns
Directions
= Better
= Worse
Containers
In Group
Out Group
Human Identity
Put Things and Containers Together…
Object Identity
Empathy. Short-circuit Empathy.
Direction Metaphors Give Us Rank
Rank Objects Rank CategoriesRank People
Categorizing and ranking things is how our brains make sense of the world
Category Types affect how we compare
In Group Look for similarities
Out Group Look for differences
Pre-wired to Model the In-Group
You extends from I
“I want to be just like you!”
Similarity Seeking
My Team
We write unit tests.
We pair program.
You
Do you do these things?
YES
Pre-wired to Model the In-Group
Pre-wired to Objectify the Out-Group
You extends from Object
“You’re nothing like me.”
Difference Seeking
Developers
Testers
Pre-wired to Objectify the Out-Group
Testers extend from Object“Testers are a tool for us to use.”
Smart People
Idiots
Pre-wired to Objectify the Out-Group
Idiots extend from Object“Idiots are a tool for us to use.”
When I decide someone is “not like me”
Human Short-circuit empathy
This is why we act like assholes.
Brain Hack #2
How do you stop being an asshole?
Rewire your brain for empathy.
1. Stop and think.
Rewire your brain:
How to Stop Being an Asshole:
Similarity Seeking
Disgust
or ?
2. Choose ( )Pity
Pre-wired to Extend Identity to Offspring
This is me. This is my baby.
“My baby is a part of me”
MyBaby extends I
Pre-wired to Extend Identity to “SoulCrafts”
This is me. This is my code. PAIN
“Your code sucks.”
Brain Hack #3
How do you stop feeling defensive?
Rewire your brain to disable empathy.
1. Stop and think.
Rewire your brain:
or ?
How to Stop Feeling Defensive:
Disables Empathy
PAIN
“Your code sucks.”
2. Choose ( )
Output: Decisions
DB
Pain Signal
Input: Ideas
Awesome Signal
Gut Feel: Where do “gut feel” decisions come from?
Feeling MachineOrbitofrontal Cortex + Lymbic System
(Summarized Body Response)
AWESOMEPAIN
Disgust
Anger
Desire
Beauty
LoveFear
Think “Fruit” Simulate
Body Experience
Do I want “Fruit” or a “Salad”?
Not so much…
Think “Salad” Simulate
Body Experience
Do I want “Fruit” or a “Salad”?
Fairly awesome…
Think about “Sally” Simulate
Body Experience
Do I Like “Sally”?
DesireBeauty
Think about “George” Simulate
Body Experience
Do I Like “George”?
DisgustAnger
Breakpoint
More Complex Decisions
Skip the Tests?
DELETE IT ALL!Write a Test?
Where do these feelings come from?
Base Class for Process Pattern
JourneyBeginning End
Journey: The Rollercoaster of Human Experience
Journey
Constraints
What were the challenges on the journey?
Frustration
Friction
Journey
What were the challenges on the journey?
PAIN
Journey Strategy
What were the challenges on the journey?
Victory!
This SUCKS!
Journeys End in PAIN or AWESOME
Yay! AWESOME!
AWESOMEPAIN
Situation Strategy Consequence
I’m on a Journey
“Journeys” are constructed of chainable parts
caused by
caused by
Consciousness
“What if?”
what if?
what if?
This SUCKS!
I just brought down production…How do I avoid the PAIN next time?
What if I had checked configs?
What if I had better tests?
Brought down production
How do I avoid the PAIN next time?
caused by
caused by
what if?
what if?
I’ll do better next time.
Consciousness
“What if?”
Brought down production
Situation Consequence
Prediction Machine
70%
20%
10%
sense intuit
“Gut Feel” arises through pattern reinforcement
see
Minimize PAIN Maximize AWESOME
How do I avoid the PAIN next time?
Our PAIN Sensor is Horribly Miscalibrated
Ugly
Bothers us a lot
Difficult
Moderate difficulty is enjoyable
Our entire discipline has evolved in the absence of a feedback loop.
Brain Hack #4
How can you recalibrate your PAIN sensor?
Visualize your “PAIN”
If you want to desire it, call it AWESOME
If you want to avoid it, call it PAIN
Output: Decisions
Feedback Loop
DB
Pain Signal
Input: Ideas
Awesome Signal
Brain in Motion: Prediction Machine
Rewire Your Brain John B. Arden, Ph. D.
A Synthesis of the Research In…
Leadership and Self-Deception The Arbringer Institute
+
Recent Past (Patterns Recognized)
Predict: What’s Next?
Our Brain is Constantly Making Predictions
We only update our brain code when predictions FAIL
Predictions Confirmed
Imagine you’re walking down the stairs…
predictions.next()
WTF?! (RuntimeException)
Imagine you’re walking down the stairs…
Predictions Violated
Consciousness + Repair Predictionsi.e. construct story
to make sense
Social Rejection = Violated Prediction
No
Identity predicts inclusion…
Consciousness
PAIN
WTF?!
+ Repair Identity
“Me”
PAIN
How do we Repair Identity?
No.
“Me”
PAIN
How do we Repair Identity?
No.
PAIN > Disgust“Me”
Self-DeceptionWTF?!
“Me”
PAIN
How do we Repair Identity?
No.
PAIN > Disgust“Me”
Self-Deception
Self-Deception is a coping strategy for resolving identity conflicts
Personal Truth
Authentic Path (the “sense”)
The Downward Spiral of the Self
Identity
Self Deception
lies
Personal Truth
Authentic Path (the “sense”)
Identity
Self Deception
lies
The more we deviate
ConsciousnessRationalize
The Downward Spiral of the Self
Personal Truth
Identity
Self Deception
Authentic Path (the “sense”)
lies
The more we deviate
ConsciousnessRationalize
“Emotional Baggage”
The Downward Spiral of the Self
Brain Hack #5
How do we escape the downward spiral?
Identity 2.0
Identity 2.0: “I am the one who chooses in the moment”
Identity 1.0: “I am the sum of my past”
The database is me.DB
Consciousness is me.Consciousness
Dreams
DB
Consciousness
Past Lessons
“I Choose” in the moment
Identity 2.0
Momentum on the journey results in joy in the moment
=Me
Consciousness
Refactor the base class
What are the choices you can make everyday
that define who you are?
Identity 2.0 is a principle of continuous choice
My Team…
What choices did we believe in?
Courage.
Leadership.
Empathy.
Authenticity.
Respect.
The C.L.E.A.R. Mindset
Identity 2.0 is a principle of continuous choice.
Personal Truth
Identity
Self Deception
lies
Consciousness
CHOOSE
WTF?!
The C.L.E.A.R. Mindset
What is true?
Personal Truth
Authentic Path (the “sense”)
Identity
Self Deception
Consciousness
CHOOSE
WTF?!
The C.L.E.A.R. Mindset
What is true?
Brain Hack #6
How do we build a C.L.E.A.R. culture?
Choose the path we want others to follow.
Culture is an Emergent Property
The only thing we actually control:
Personal Mindset
There is only “I” who chooses.
Remember: Pre-wired to Model the In-Group
When you step up and lead, the people on your team will model your choices.
C.L.E.A.R. Learning Culture
We put the PAIN on center stage, then learn our way to AWESOME by working together
Poverty
War
Corrupt Government
Broken Education
Planetary Destruction
The world around us…
If we zoom out…
We all want the world to be different.
But we all feel helpless.
Why are we helpless?
If we zoom out…
Why are we helpless?We are crippled by our inability to work together.
We are crippled by the difficulty of change.
The Fifth Discipline The Art & Practice of the Learning Organization
Peter Senge
The Most INSPIRING Book EVER…
The Most INSPIRING Book EVER…
What I See: Hope for Humanity
A path to get us here…
What I See: Hope for Humanity
Strategy to make mastery-level education FREE to EVERY HUMAN in the world
Challenge 1: $$$$$$$$$$$$$$$$$$$$$$$$
Challenge 2: Unprecedented levels of cooperation
I believe the path starts with us…Learning how to learn together
as a software community
We start with visibility.
We move toward awesome.
We start with our team.
We move toward our industry.
1. Measure Your PAINAutomated Visibility Tools
Automated FAQ
“Idea Flow Maps”
January 1st, 2017 MVP for Individuals (OSS)
June 15th, 2017 MVP for Teams ($)
Dreams
DB
Past Lessons
2. Key Paradigm Shift: Machine -> Organism
“Business Creature”
DB
Past Lessons
Innovation
Pain Signal
Awesome Signal
Dreams
Dec 1st, 2018 BusinessCreatureOS ($$$)
2. Key Paradigm Shift: Machine -> Organism
DreamsDreams
3. MMORPG: The Game of Life (Gamified Education)
C.L.E.A.R. C.L.E.A.R.
Tony’s Flair:
Monthly Awards for guild achievements!
Tony’s Flair:
Monthly Awards for guild achievements!
Nov 8th, 2020 MVP for Free Education
We design the game.
We make up the rules.
We invite the world to play.
Janelle Kleinopenmastery.org @janellekz
How to Join:
Janelle KleinFounder of Open Mastery
1. Email Subject: “Tools Pilot”
2. Include IDE/Editor, Your OS
FREE!