reviewing a developer experience

85
CTO, New Iron, Austin, TX Janelle Klein ©2015 New Iron Group The Art of Better (Part 2) Creation Date: 10/05/2015 Reviewing a Developer Experience

Upload: janelle-klein

Post on 08-Jan-2017

186 views

Category:

Software


0 download

TRANSCRIPT

CTO, New Iron, Austin, TXJanelle Klein

©2015 New Iron Group

The Art of Better (Part 2)

Creation Date: 10/05/2015

Reviewing a Developer Experience

What is this talk about?

Process of Idea Flow Learning Framework

How to do “Experience Reviews”

The Troubleshooting Game!

The art of troubleshooting

Quick Overview:Idea Flow Learning

Framework

PAIN occurs during the process of understanding and extending the

software

PAIN

Not the Code.

Optimize Developer Experience

Idea Flow Learning Framework

Systematically Optimize Decisions

Target - The direction we’re trying to go…

Idea Flow Learning Framework

Output - The experience we’re trying to improve

Idea Flow Learning Framework

Input - The constraints that limit our short-term choices…

Idea Flow Learning Framework

1. Visibility - See the pain

1.Visibility

1.Visibility

Idea Flow Learning Framework

1.Clarity

2.Clarity

2. Clarity - Explain what’s causing of the pain

Idea Flow Learning Framework

3.Awareness

3. Awareness - Learn to avoid the pain

Idea Flow Learning Framework

Focus on the biggest pain…

Minimize Pain

Idea Flow Learning Framework

Idea Flow Learning Framework

Systematically Optimize Decisions

Three Stages of Mastery

Visibility

Clarity

Awareness

See

Explain

Predict

Idea Flow Maps visualize the experienced difficulty of a problem-solving

task.

VisibilitySee the pain

“Friction”

Our level of understanding is constrained by the diversity of our conceptual

metaphors.

ClarityExpand your vocabulary of patterns

AwarenessPredict the consequences of decisions

The quality of our decisions is limited by our ability to ask the right questions at the right time.

Imagine your brain is adecision-making engine

written in code.

BreakpointStop and Think!

What’s a Decision Principle?

1. How do I evaluate my situation?2. What should I optimize for?

Answers Two Questions

Pseudo code for making trade-off decisions

Strategy Types (“do”)

1. DependencyAnalysis2. IncrementalIntegrationTest3. DataDrivenTest4. IsolateHardToTestCode

Situation Types (“see”)

1. UnravelingSweater2. HeavyIntegrationLogic3. HighStateVariation4. CoupledExternalDependencies

Haystack Decisions

Codify What Works

DoSee

The Scientific Method

Creating an explicit model makes our beliefs testable.

The Scientific Method

Creating an explicit model makes our beliefs testable.

Visibility Process

Clarity Process

Awareness Process

Visibility Framework

Learn to see the pain of you and your peers.

Clarity Framework

Learn to explain what’s causing the pain.

Awareness Framework

Learn to ask the right questions at the right time.

It’s a Control System…

Systematically Optimize Decisions

“Pain Control” in Software Development

Average Pain per Incident

This is Control

Target

Control Limit

The Experience Review

Learn

Focus

Observe

ConcludeOptimize

(The Mastery Spiral)

The Troubleshooting Game!

The Experience Review!

Make a FOCOL Point!

Learn

Focus

Observe

ConcludeOptimize

(The Mastery Spiral)

Make a FOCOL Point!

Learn

Focus

Observe

ConcludeOptimize

(The Mastery Spiral)

Codify Decision Principles

Learn

Focus

Observe

ConcludeOptimize

Make a FOCOL Point!(The Mastery Spiral)

Learn with Decision Principles

Learn

Focus

Observe

ConcludeOptimize

Focus - Choose the Needle

Make a FOCOL Point!(The Mastery Spiral)

Idea Flow Learning Framework

Choose the Needle

What direction are we trying to go?

What type of pain are we focusing on?

The Ten Pains of Software Development

Troubleshooting

Progress

LearningRework

Learn

Focus

Observe

ConcludeOptimize

Focus - Choose the Needle

Focus: How could we have reduced the experiment pain?

14:230:00

George’s Painful Experience

What caused the experiment pain?

Focus: How could we have avoided the experiment pain?

14:230:00

George’s Painful Experience

What patterns do we see?

Focus: How could we have avoided the experiment pain?

Learn

Focus

Observe

ConcludeOptimize

Focus: How could we have reduced the experiment pain?

Learn

ConcludeOptimize

Observe - What patterns do we see?

Focus

Observe

Focus: How could we have reduced the experiment pain?

ExperimentTime

Time Warp Bias

Setup Experiment Analyze Results &Decide Next Experiment

Execute

“Optimize experiments for human cycles.”

“How could I reduce the time spent on human cycles?”

Was it time-consuming to setup the inputs?What made it time-consuming?

Was it fast or slow to execute the experiment?What made it time-consuming?

Was it time-consuming to analyze the results?What made it time-consuming?

Execution

DecideNext Action

Setup Inputs

How could we have reduced the human cycles?

Time Warp Questions

Code Sandwich

Behavior Complexity

Observability

Ease of Manipulation

“How can I reduce the thickness of my code sandwich?”

“Optimize for low diagnostic difficulty.”

The thickness of thesandwich increases

troubleshootingdifficulty

What behavior were we trying to understand?Was the core behavior complex or simple?

How difficult was it to see what was going on?What made it difficult to see?

How difficult was it to manipulate the behavior?What made it difficult to tinker?

Observability

Ease of Manipulation

BehaviorComplexity

How could we reduce the thickness of the code sandwich?

Code Sandwich Questions

Cloud of Possibilities

“How can I generate clues to eliminate some possibilities?”

“Optimize the experiments to generate useful clues.”

Was the cloud of possibilities big or small?

What were some of the clues we saw?Were some of the clues more useful than others?

Scope

NarrowingSpeed

How could we have have narrowed the possibilities faster?

Cloud of Possibilities Questions

Journey

Constraints

Think about the Obstacles on the Journey

Difficulties

Journey

Think about the Obstacles on the Journey

JourneyBad Strategy

Think about the Obstacles on the Journey

Journey Good Strategy

Think about the Obstacles on the Journey

Journey Uncertainty

Think about the Obstacles on the Journey

What patterns do you see? Observe

Learn

ConcludeOptimize

Focus

Observe

Focus: How could we have reduced the experiment pain?

Learn

Optimize

Conclude - What’s causing the experiment pain?

Focus

Observe

Conclude

Focus: How could we have reduced the experiment pain?

Conclude - What’s causing the experiment pain?Cloud of

PossibilitiesCode

SandwichExperiment Pain Experiment Pain

Learn

Optimize

Focus

Observe

Conclude

Focus: How could we have reduced the experiment pain?

Learn

Optimize

Optimize - What strategies could have reduced the pain?

Focus

Observe

Conclude

Focus: How could we have reduced the experiment pain?

What were some other possible options?At what point did we choose an option?

What inputs did we consider?How did we evaluate the situation?

BreakpointStop and Think!

What if we had thought aboutdecision principles?

Which might apply?

BreakpointStop and Think!

Learn

Optimize

Focus

Observe

Conclude

Focus: How could we have reduced the experiment pain?

Learn

Learn - What questions should we ask ourselves in the future?

Focus

Observe

ConcludeOptimize

Focus: How could we have reduced the experiment pain?

14:230:00

I want to avoid this…

Thinking ChecklistIs my current approach likely to cause a thick sandwich?

Situation: start of subtask

Let’s Make a Checklist!

“What question could I ask my future self to recognize similar risks in the future?”

“In what situation would I ask the question?”

0:00

Stop and Think:

Is my current approach likely to

cause a thick sandwich?

Predict: Low Experiment Pain

Strategy Experiments

18:120:00

Stop and Think:

Is my current approach likely to

cause a thick sandwich?

Predict: Low Experiment Pain

False Prediction

Strategy Experiments

18:120:00

Stop and Think:

Is my current approach likely to

cause a thick sandwich?

False Prediction

Strategy Experiments

High-Risk Situations

1. Can’t isolate from bootstrap2. Observe through visualization3. Manipulate through database4. Too many changes at once

Q: Is my current approach likely to

cause a thick sandwich?

Start of Subtask

Strategy Types (“do”)

1. 2. 3. 4.

Situation Types (“see”)

1. 2. 3. 4.

Risk Mitigation Strategies

Codify What Works

DoSee

Learn

Focus

Observe

ConcludeOptimize

Focus: How could we have reduced the experiment pain?

Learn

Focus

Observe

ConcludeOptimize

Focus: How could we have reduced the experiment pain?

Iterate - What type of learning do we need most?

The Focus Principle

The key to accelerating improvement, is to break the most limiting knowledge

constraint.

Goldratt’s Theory of Constraints

Learning is Knowledge Expansion

Iterate - What type of learning do we need most?

Learning is Knowledge Expansion

Iterate - What type of learning do we need most?

Should we broaden the data?

…expand vocabulary?

… or run experiments?

Learn

Focus

Observe

ConcludeOptimize

Make a FOCOL Point!(The Mastery Spiral)

Let’s Review!

Learn

Focus

Observe

ConcludeOptimize

Focus - Choose the needle

Make a FOCOL Point!(The Mastery Spiral)

Learn

ConcludeOptimize

Observe - What patterns do I see?

Focus

Observe

Make a FOCOL Point!(The Mastery Spiral)

Learn

Optimize

Conclude - What’s major factors caused the pain?

Focus

Observe

Conclude

Make a FOCOL Point!(The Mastery Spiral)

Learn

Optimize

Optimize - What strategies could have reduced the pain?

Focus

Observe

Conclude

Make a FOCOL Point!(The Mastery Spiral)

Learn

Learn - What questions should I ask myself in the future?

Focus

Observe

ConcludeOptimize

Make a FOCOL Point!(The Mastery Spiral)

Learn

Focus

Observe

ConcludeOptimize

Iterate - What type of learning do I need most?

Make a FOCOL Point!(The Mastery Spiral)

Open Mastery 2016We Believe in Peer Mentorship!

Yay!

IndividualsFree Membership

CompaniesPaid Membership

Open Mastery Guild Membership

IFM Tools

Anonymized data

Developers Learning Together!

IFM Tools

IFM Tools IFM Tools

IFM Tools

IFM Tools

Community Focus

Integrated #HashTagGlossary

IFM Tools

IFM Tools

IFM Tools IFM Tools

IFM Tools

IFM Tools

Idea Flow Analytics PlatformPrivate data

Companies Learning Together!

Revenue frommembership feesto fund coredevelopment

@janellekz

Open Mastery 2016Join us! @openmastery

[email protected]

Thank you!

Free e-book if you sign up before publish day! (Jan

2016)

Tweet about #ideaflow!

IFM Tools available at: github.com/ideaflow/tools