data-driven software mastery @open mastery austin

171
Janelle Klein openmastery.org @janellekz Tour Speaker Data-Driven Software Mastery newiron.com

Upload: janelle-klein

Post on 08-Jan-2017

330 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Data-Driven Software Mastery @Open Mastery Austin

Janelle Kleinopenmastery.org @janellekz

Tour Speaker

Data-Driven Software Mastery

newiron.com

Page 2: Data-Driven Software Mastery @Open Mastery Austin

, Developer, Consultant, CTO @New IronSpecialized in Statistical Process Control (SPC) and Supply Chain Optimization from Lean Manufacturing (I <3 cool data)

Continuous Delivery infrastructure, automation strategy & technical mentorship

Janelle Klein

Who Am I?

I’m also a hobbyist Cognitive Scientist

How to Measure the PAIN in Software Development

Janelle Klein

Author of “Idea Flow”

leanpub.com/ideaflow

Page 3: Data-Driven Software Mastery @Open Mastery Austin

LEARN YOUR WAY TO AWESOME.

Community of Practice for Data-Driven Software Mastery

Why Are We Here?

Page 4: Data-Driven Software Mastery @Open Mastery Austin

Why Should You Care?

Problem #1: Organizational Dysfunction

Page 5: Data-Driven Software Mastery @Open Mastery Austin

Why Should You Care?

Problem #2: Solving the Wrong Problem

Page 6: Data-Driven Software Mastery @Open Mastery Austin

Why Should You Care?

This talk is about a REALISTIC STRATEGY

to solve these problems.

Page 7: Data-Driven Software Mastery @Open Mastery Austin

I’m going to show you:

POINT A

(I’ve been working on this for 5 years)

Page 8: Data-Driven Software Mastery @Open Mastery Austin

I Need Your Help to Get to:

POINT AWESOME

Point A Point AWESOME?

Iterate!

Page 9: Data-Driven Software Mastery @Open Mastery Austin

LEARN YOUR WAY TO AWESOME.

Why Are We Here?

Learning Takes Work.

Page 10: Data-Driven Software Mastery @Open Mastery Austin

Let’s Make the PAIN Visible!

#OpenDX

Our Campaign:

Page 11: Data-Driven Software Mastery @Open Mastery Austin

This isn’t About Me.

This is About ALL OF US.

Page 12: Data-Driven Software Mastery @Open Mastery Austin

Five Years Ago I Read This Book:

How to Build a Learning Organization

Page 13: Data-Driven Software Mastery @Open Mastery Austin

Five Disciplines of a Learning Organization

Personal Mastery

Mental Models

Shared Vision

Team Learning

Systems Thinking

These disciplines were emergent practice on our team.

Page 14: Data-Driven Software Mastery @Open Mastery Austin

Five Disciplines of a Learning Organization

Personal Mastery

Mental Models

Shared Vision

Team Learning

Systems Thinking

These disciplines are emergent practice in software development

Page 15: Data-Driven Software Mastery @Open Mastery Austin

What’s the Gap?

What was different about our team?

Page 16: Data-Driven Software Mastery @Open Mastery Austin

My Day Job is Technical Assessment

GeorgeMe

What does “better quality” mean to you?

Page 17: Data-Driven Software Mastery @Open Mastery Austin

What does “better” really mean?

Page 18: Data-Driven Software Mastery @Open Mastery Austin

What does “better” really mean?

Where does my “better” come from?

Page 19: Data-Driven Software Mastery @Open Mastery Austin

“Better”

Fifth Discipline: “Shared Vision” = “Shared Better”

The Key to Team Learning:

“Better”

Page 20: Data-Driven Software Mastery @Open Mastery Austin

Five Disciplines of a Learning Organization

Personal Mastery

Mental Models

Team Learning

Systems Thinking

This book is about the art of group problem-solving.

Shared LearningShared Better

Page 21: Data-Driven Software Mastery @Open Mastery Austin

Five Years to Put “Better” into Words

How to Measure the PAIN in Software Development

Janelle Klein

This is the my story.

Page 22: Data-Driven Software Mastery @Open Mastery Austin

We were trying to do all the “right” things.

About 8 Years Ago…

Page 23: Data-Driven Software Mastery @Open Mastery Austin

We were building a factory automation system...

Page 24: Data-Driven Software Mastery @Open Mastery Austin

We shipped to production...

Page 25: Data-Driven Software Mastery @Open Mastery Austin

We shipped to production... (again)

Page 26: Data-Driven Software Mastery @Open Mastery Austin

We couldn’t reproduce the problem.

Page 27: Data-Driven Software Mastery @Open Mastery Austin

We shipped to production... (AGAIN)

The rollback failed!

Page 28: Data-Driven Software Mastery @Open Mastery Austin

Project FAILURE

Page 29: Data-Driven Software Mastery @Open Mastery Austin

The Retrospective

“What are we going to do?!”

Our biggest problem

“Well, we know we’ve got a quality problem right?”

Page 30: Data-Driven Software Mastery @Open Mastery Austin

The Retrospective

“What are we going to do?!”

Our biggest problem

“The problem is we don’t have enough test automation!”

Page 31: Data-Driven Software Mastery @Open Mastery Austin

So the Test Automation Began…

Our regression testing took 3-4 weeks…

Let’s automate the tests!

Page 32: Data-Driven Software Mastery @Open Mastery Austin

20%

Percent Automated:

So the Test Automation Began…

Page 33: Data-Driven Software Mastery @Open Mastery Austin

50%

Maintenance started getting PAINFUL…

Let’s refactor the tests!

Percent Automated:

So the Test Automation Began…

Page 34: Data-Driven Software Mastery @Open Mastery Austin

80%

It was still really PAINFUL…

“Well, at least our regression cycle is faster, right?”

Our regression cycle still took 3-4 weeks!

Percent Automated:

So the Test Automation Began…

Page 35: Data-Driven Software Mastery @Open Mastery Austin

ApplicationTests

Our Test Suite

Page 36: Data-Driven Software Mastery @Open Mastery Austin

ApplicationTests

Our Test Suite

Any ideas?

Page 37: Data-Driven Software Mastery @Open Mastery Austin

The Retrospective

“What are we supposed to do?!”

Our biggest problem

“Well, if we don’t understand a problem, we should

collect data.”

Page 38: Data-Driven Software Mastery @Open Mastery Austin

The Retrospective

Our biggest problem

“What data would help us understand the problem?”

“What are we supposed to do?!”

Page 39: Data-Driven Software Mastery @Open Mastery Austin

Technical Debt Mistakes

I thought the main obstacle was Technical Debt

Page 40: Data-Driven Software Mastery @Open Mastery Austin

?Most of our mistakes were in the

most well-written parts of the code.

Mistakes

Page 41: Data-Driven Software Mastery @Open Mastery Austin

We made significantly more mistakes in code that we didn’t write ourselves.

Lower Familiarity

More Mistakes=

There had to be more to the story...

Page 42: Data-Driven Software Mastery @Open Mastery Austin

Complex(So*ware(

PAIN

This is what I knew...

What made development feel painful?

Page 43: Data-Driven Software Mastery @Open Mastery Austin

Unexpected Behavior

Problem Resolved

Tracking Painful Interaction with the Code (Friction)

Troubleshooting

Progress

5 hours and 18 minutes of troubleshooting...

PAINFUL

Page 44: Data-Driven Software Mastery @Open Mastery Austin

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(

Page 45: Data-Driven Software Mastery @Open Mastery Austin

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?

Page 46: Data-Driven Software Mastery @Open Mastery Austin

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

Page 47: Data-Driven Software Mastery @Open Mastery Austin

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.

Page 48: Data-Driven Software Mastery @Open Mastery Austin

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?

PAIN is a consequence of how we interact with the code.

Semantic Mistakes

Stale Memory Mistakes

Association Mistakes

Bad Input Assumption

Tedious Change Mistakes

Copy-Edit Mistakes

Transposition Mistakes

Failed Refactor Mistakes

False Alarm

Page 49: Data-Driven Software Mastery @Open Mastery Austin

PAIN occurs during the process of understanding and extending the software

Complex(So*ware(

PAIN

Not the Code.

Optimize “Idea Flow”

Page 50: Data-Driven Software Mastery @Open Mastery Austin

Analyzing the Types of Mistakes

#1 Cause of Mistakes: Misunderstandings of how the system worked

Page 51: Data-Driven Software Mastery @Open Mastery Austin

ApplicationTests

The Bugs were in Our Conceptual Models

Fix: We built a Data Dictionary

Page 52: Data-Driven Software Mastery @Open Mastery Austin

The “Coat of Armor” Principle

Software

Coat of Armor

Page 53: Data-Driven Software Mastery @Open Mastery Austin

“Alarm Pain”

Six hours of troubleshooting and repairing tests when nothing is broken.

Page 54: Data-Driven Software Mastery @Open Mastery Austin

The Waxy Coating Principle

Optimize the signal to noise ratio.

Software (before)

Software (after)

Tests are like a waxy coating poured over the code.

Page 55: Data-Driven Software Mastery @Open Mastery Austin

We deleted everything…

The automation wasn’t solving the problem!

Page 56: Data-Driven Software Mastery @Open Mastery Austin

What are the specific risks in this release?

How can we mitigate the risks?

Handful of manual tests

Custom Tools

+

Page 57: Data-Driven Software Mastery @Open Mastery Austin

Release Size

(weeks)

Time

Defect Rates

We Could See the Effects…

Effective Risk Management Looks Like This

Page 58: Data-Driven Software Mastery @Open Mastery Austin

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.

Page 59: Data-Driven Software Mastery @Open Mastery Austin

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.

Page 60: Data-Driven Software Mastery @Open Mastery Austin

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?”

Page 61: Data-Driven Software Mastery @Open Mastery Austin

“Better”

Fifth Discipline: “Shared Vision” = “Shared Better”

The Key to Team Learning:

“Better”

Page 62: Data-Driven Software Mastery @Open Mastery Austin

“Better” following best practices

(solution-focused) (problem-focused)

“Better” solving the problems

What does “better” really mean?

How do we identify the right problems to solve?

Page 63: Data-Driven Software Mastery @Open Mastery Austin

Cost & Risk are a Function of Increased Difficulty

Cost &

Risk

Difficulty of Work

The Difficulty of Doing Our Jobs

Human Limitations

Page 64: Data-Driven Software Mastery @Open Mastery Austin

Likelihood)of))Unexpected)Behavior)

Cost)to)Troubleshoot)and)Repair)

High)Frequency)Low)Impact)

Low)Frequency)Low)Impact)

Low)Frequency)High)Impact)

PAIN)

“Better” = Reduce the Risk

Reduce Likeliness =

Mistake Proofing

Reduce Recovery Cost = Mistake Tolerance

Page 65: Data-Driven Software Mastery @Open Mastery Austin

What Exactly does Idea Flow Measure?

Page 66: Data-Driven Software Mastery @Open Mastery Austin

Complex(So*ware(

PAIN

Not the Code.

Optimize “Idea Flow”

Page 67: Data-Driven Software Mastery @Open Mastery Austin

FRICTION is a Function of Increased Difficulty

Cost &

Risk

Difficulty of Work

The Difficulty of Doing Our Jobs

Human Limitations

Page 68: Data-Driven Software Mastery @Open Mastery Austin

The Rhythm of “Idea Flow”

Write a little code.

Work out the kinks.

Write a little code.

Work out the kinks.

Write a little code.

Work out the kinks.

Page 69: Data-Driven Software Mastery @Open Mastery Austin

Conflict Confirm

Rework'

Learn'

Validate(

Modify'

Progress Loop Conflict Loop

Troubleshoot'

Write a little code. Work out the kinks.

The Rhythm of “Idea Flow”

Page 70: Data-Driven Software Mastery @Open Mastery Austin

On Intelligence Jeff Hawkins

Page 71: Data-Driven Software Mastery @Open Mastery Austin

Confirmed Expectations

Our brain works like a giant prediction engine…

Page 72: Data-Driven Software Mastery @Open Mastery Austin

Conflicting Expectations

Our brain works like a giant prediction engine…

Page 73: Data-Driven Software Mastery @Open Mastery Austin

Conflict Confirm

Rework'

Learn'

Validate(

Modify'

Progress Loop Conflict Loop

Troubleshoot'

The Rhythm of “Idea Flow”

Page 74: Data-Driven Software Mastery @Open Mastery Austin

“Friction” in Idea Flow

Conflict Confirm

Rework'

Learn'

Validate(

Modify'

Progress Loop Conflict Loop

Troubleshoot'

Page 75: Data-Driven Software Mastery @Open Mastery Austin

“Idea Flow Map”

“Friction”

A “conflict” starts with an unexpected observation and ends when understanding is resolved.

Page 76: Data-Driven Software Mastery @Open Mastery Austin

Idea Flow Mapping Tools

(Open Source, Supported GA ~June 2016)github.com/ideaflow/tools

Page 77: Data-Driven Software Mastery @Open Mastery Austin

Typical Idea Flow Maps

Single Problem

Multi-Problem

Page 78: Data-Driven Software Mastery @Open Mastery Austin

Reading Visual Indicators in Idea Flow Maps

Le#$Atrium$

Le#$Ventricle$

Right$Ventricle$

Right$Atrium$

What’s$causing$this$pa7ern?$

Similar to how an EKG helps doctors diagnose heart problems...

Page 79: Data-Driven Software Mastery @Open Mastery Austin

...Idea Flow Maps help developers diagnose software problems.

Problem-Solving Machine

Reading Visual Indicators in Idea Flow Maps

Page 80: Data-Driven Software Mastery @Open Mastery Austin

= Solution Strategy

The “Heart” of Software Development(the problem-solving machine)

Page 81: Data-Driven Software Mastery @Open Mastery Austin

= Solution Strategy

The “Heart” of Software Development(the problem-solving machine)

Choose a general strategy

Page 82: Data-Driven Software Mastery @Open Mastery Austin

= Solution Strategy

The “Heart” of Software Development(the problem-solving machine)

Understand the system

Page 83: Data-Driven Software Mastery @Open Mastery Austin

= Solution Strategy

The “Heart” of Software Development(the problem-solving machine)

Code & work out the kinks

Page 84: Data-Driven Software Mastery @Open Mastery Austin

= Solution Strategy

The “Heart” of Software Development(the problem-solving machine)

Back to the drawing board

Page 85: Data-Driven Software Mastery @Open Mastery Austin

The symptoms we experience depend on where the disruptions are in the problem-solving process

Page 86: Data-Driven Software Mastery @Open Mastery Austin

Trial and Error

The Friction is Here

Troubleshooting

Progress

Learning

Rework

Page 87: Data-Driven Software Mastery @Open Mastery Austin

Assumption Risk (Rework)

Likelihood)of))making)a))

Bad)Assump4on)

Cost)to)Correct)Decisions)

High)Uncertainty)Low)Delay)

Low)Uncertainty)Low)Delay)

Low)Uncertainty)High)Delay)

PAIN)

Page 88: Data-Driven Software Mastery @Open Mastery Austin

Struggling with Understanding the Code

The Friction is Here

Troubleshooting

Progress

Learning

Rework

Page 89: Data-Driven Software Mastery @Open Mastery Austin

Familiarity Risk (Learning)

Likelihood)of))working)with)Unfamiliar)

Code)

Cost)to)Learn)

High)Frequency)Easy)to)Learn)

Low)Frequency)Easy)to)Learn)

Low)Frequency)Hard)to)Learn)

PAIN)

Page 90: Data-Driven Software Mastery @Open Mastery Austin

Struggling with Feedback

The Friction is Here

Troubleshooting

Progress

Learning

Rework

Page 91: Data-Driven Software Mastery @Open Mastery Austin

Quality Risk (Troubleshooting)

Likelihood)of))Unexpected)Behavior)

Cost)to)Troubleshoot)and)Repair)

High)Frequency)Low)Impact)

Low)Frequency)Low)Impact)

Low)Frequency)High)Impact)

PAIN)

Page 92: Data-Driven Software Mastery @Open Mastery Austin

measures the time spent on:

Idea Flow

x

Troubleshooting

x

Learning

x

Rework

Quality Risk Familiarity Risk Assumption Risk

Page 93: Data-Driven Software Mastery @Open Mastery Austin

What percentage of time do you think your team spends on friction?

Page 94: Data-Driven Software Mastery @Open Mastery Austin

Troubleshooting

Progress

Learning

7:070:00

0:00 19:52

12 year old project after all original developers left.

Case Study: Huge Mess with Great Team

70-90% of dev capacity on “friction”

Page 95: Data-Driven Software Mastery @Open Mastery Austin

The Team’s Improvement Focus: Increasing unit test coverage by 5%

Case Study: Huge Mess with Great Team

1. Test Data Generation

2. Merging Problems

3. Repairing Tests

1000 hours/month

The Biggest Problem: ~700 hours/month generating test data

Page 96: Data-Driven Software Mastery @Open Mastery Austin

The Retrospective

“What’s the biggest opportunity for improvement?”

Our biggest problem

Page 97: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“The awful email template engine code!”

Our biggest problem

The Retrospective

Page 98: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“Fill in missing unit tests!”

Our biggest problem

The Retrospective

Page 99: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“I know how to improve database performance!”

Our biggest problem

The Retrospective

Page 100: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“Let’s improve maintainability of our test framework!”

Our biggest problem

The Retrospective

Page 101: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

Just because a problem comes to mind, doesn’t mean it’s an important problem to solve.

Our biggest problem

The Retrospective

Page 102: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

Our biggest problem

What do I feel the most intensely about?

Daniel Kahneman Thinking Fast and Slow

The Retrospective

Page 103: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“The awful email template engine code!”

Recency Bias

Our biggest problem

The Retrospective

Page 104: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

Guilt Bias

“Fill in missing unit tests!”

Our biggest problem

The Retrospective

Page 105: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

“I know how to improve database performance!”

Known Solution Bias

Our biggest problem

The Retrospective

Page 106: Data-Driven Software Mastery @Open Mastery Austin

“What’s the biggest opportunity for improvement?”

Sunk Cost Bias

“Let’s improve maintainability of our test framework!”

Our biggest problem

The Retrospective

Page 107: Data-Driven Software Mastery @Open Mastery Austin

Relying on Gut Feel:

Page 108: Data-Driven Software Mastery @Open Mastery Austin

18 months after a Micro-Services/Continuous Delivery rewrite.

Troubleshooting

Progress

Learning40-60% of dev capacity on “friction”

0:00 28:15

12:230:00

Case Study: From Monolith to Microservices

Page 109: Data-Driven Software Mastery @Open Mastery Austin

The Architecture Looked Good on Paper

Team A Team B Team C

Complexity Moved Here

Page 110: Data-Driven Software Mastery @Open Mastery Austin

We Don’t Have TIME To Fix It!

Page 111: Data-Driven Software Mastery @Open Mastery Austin

PAIN

The Classic Story of Project Failure

Problems get deferred

Builds start breaking

Releases get chaotic

Productivity slows to a crawl

Developers begging for time

It’s never enough

Project Meltdown

Page 112: Data-Driven Software Mastery @Open Mastery Austin

The Cost of Escalating Risk

0%

100%

Release 1 Release 2 Release 3

Troubleshooting

Progress

Learning

Percentage Capacity spent on Troubleshooting (red) and Learning (blue)

(extrapolated from samples)

Page 113: Data-Driven Software Mastery @Open Mastery Austin

0%

100%

Release 1 Release 2 Release 3

Percentage Capacity spent on Troubleshooting (red) and Learning (blue)

Figure out what to do Learning is front-loaded

Troubleshooting

Progress

Learning

The Cost of Escalating Risk

Page 114: Data-Driven Software Mastery @Open Mastery Austin

0%

100%

Release 1 Release 2 Release 3

Percentage Capacity spent on Troubleshooting (red) and Learning (blue)

Rush Before the Deadline Validation is Deferred

Troubleshooting

Progress

Learning

The Cost of Escalating Risk

Page 115: Data-Driven Software Mastery @Open Mastery Austin

0%

100%

Release 1 Release 2 Release 3

Percentage Capacity spent on Troubleshooting (red) and Learning (blue)

Pain Builds Baseline friction keeps rising

Troubleshooting

Progress

Learning

The Cost of Escalating Risk

Page 116: Data-Driven Software Mastery @Open Mastery Austin

0%

100%

Release 1 Release 2 Release 3

Percentage Capacity spent on Troubleshooting (red) and Learning (blue)

Chaos Reigns Unpredictable work stops

fitting in the timebox

Troubleshooting

Progress

Learning

The Cost of Escalating Risk

Page 117: Data-Driven Software Mastery @Open Mastery Austin

This is the Biggest Cause of FAILURE In Our Industry:

Have you struggled with these problems in your organization?

Page 118: Data-Driven Software Mastery @Open Mastery Austin

“Better”“Better”

Fifth Discipline: “Shared Vision” = “Shared Better”

Developer

Developer

Manager Manager

The Key to Organizational Learning:

Page 119: Data-Driven Software Mastery @Open Mastery Austin

Lessons Learned

Page 120: Data-Driven Software Mastery @Open Mastery Austin

How can we reduce the impact of bad architecture assumptions?

(Assumption Risk)

The cost of bad architecture decisions in the microservices world

is EXTREMELY HIGH.

Page 121: Data-Driven Software Mastery @Open Mastery Austin

If you’ve got beautiful code

Because you pushed all the PAIN to your clients…

Your code SUCKS.

How do we know what the client’s experience will be like?

Page 122: Data-Driven Software Mastery @Open Mastery Austin

Lots of Friction in BRAND NEW code:

27:15

“WHY?”

Page 123: Data-Driven Software Mastery @Open Mastery Austin

Application

3rd Party Dependencies

Local Components

Usability problems cascade through dependencies

Usability Problems

This is Painful!

Page 124: Data-Driven Software Mastery @Open Mastery Austin

Application

3rd Party Dependencies

Local Components

Usability Problems

This is Painful!

90% of our Software is HERE

Page 125: Data-Driven Software Mastery @Open Mastery Austin

“The Idea Flow Factory” (supply chain model)

Optimize the Rate of Idea Flow

Across ANY Software Supply Chain

Page 126: Data-Driven Software Mastery @Open Mastery Austin

What if we learned our way to “better”, together?

CompanyCompany

Company

Company

Company

Company Company

Page 127: Data-Driven Software Mastery @Open Mastery Austin

LEARN YOUR WAY TO AWESOME.

Page 128: Data-Driven Software Mastery @Open Mastery Austin

Start with Why Simon Sinek

Page 129: Data-Driven Software Mastery @Open Mastery Austin

Why - Your Purpose

How - Your Process

What - Your Solution

Humans Align Around Shared Purpose

Page 130: Data-Driven Software Mastery @Open Mastery Austin

Let’s Make the PAIN Visible!

#OpenDX

Page 131: Data-Driven Software Mastery @Open Mastery Austin

Why?

#OpenDX

Page 132: Data-Driven Software Mastery @Open Mastery Austin

Why?

Because This Really SUCKS.

Page 133: Data-Driven Software Mastery @Open Mastery Austin

Why?

And So Does This.

Page 134: Data-Driven Software Mastery @Open Mastery Austin

#OpenDXMeasure the PAIN that you CARE About

Page 135: Data-Driven Software Mastery @Open Mastery Austin

LEARN YOUR WAY TO AWESOME.

We BELIEVE That:

Even though we may not have all the answers, what matters is that we know how to learn.

Page 136: Data-Driven Software Mastery @Open Mastery Austin

How Do We Learn Our Way There?

Point A Point AWESOME?

Iterate!

Page 137: Data-Driven Software Mastery @Open Mastery Austin

Because we’re part of a community with other smart people…

We BELIEVE That:

We will get better, faster, by working together.

Page 138: Data-Driven Software Mastery @Open Mastery Austin

#OpenDXHow?

Page 139: Data-Driven Software Mastery @Open Mastery Austin

Community Analytics Platform

(Long-Term Roadmap)

Page 140: Data-Driven Software Mastery @Open Mastery Austin

Community Problem #1:

Solve This Pain:

Page 141: Data-Driven Software Mastery @Open Mastery Austin

Team Visibility Platform

IFM Data Collection

Team Visibility

Raw Data

Timeline Abstraction

1. Record an Idea Flow Map 2. Review/Annotate an Idea Flow Map 3. Identify the Biggest Pains

Project Abstraction

#Private Taxonomy

Page 142: Data-Driven Software Mastery @Open Mastery Austin

Community Analytics Platform

Anonymizer Anonymizer Anonymizer Anonymizer

#Private Taxonomy

Team Visibility

#Private Taxonomy

Team Visibility

#Private Taxonomy

Team Visibility

#Private Taxonomy

Team Visibility

Community Analytics

#Shared Taxonomy

Page 143: Data-Driven Software Mastery @Open Mastery Austin

Community Analytics Platform

Community Analytics

Shared Taxonomy

Tiger

Bear

Requirement: Analyze Patterns & Codify Lessons Learned

Community Focus

Community Analytics

#Shared Taxonomy

Page 144: Data-Driven Software Mastery @Open Mastery Austin

Community Problem #2:

Solve This Pain:

Page 145: Data-Driven Software Mastery @Open Mastery Austin

Team Server

Team Server

“Idea Flow Factory” Supply Chain Cost Model

Supply Chain Optimization

Team Server

“Customer Factory” Revenue Model (Ash Maurya)

Throughput Accounting (Effort vs Revenue)

Organizational Mastery Platform

Page 146: Data-Driven Software Mastery @Open Mastery Austin

Community Problem #3:

Solve This Pain with Lack of Skills:

CompanyNope.Nope.Nope.Nope.Nope.

Nope.Nope.Nope.Nope.

Nope.Nope.

Nope.Nope.Nope.

Nope.Nope.Nope.Nope.Nope.Nope.Nope.Nope.

Nope.Yay!

We need aSr Developer!

Page 147: Data-Driven Software Mastery @Open Mastery Austin

Open Certification Platform (Crowd-Sourced Peer Mentorship)

Decision Assessment

Archetype Examples & Decision-Making Tests

Mentorship Training

M1M2

M3

C1C2

C3

Crowd-Sourced Peer Video Assessment

#Shared Taxonomy

Page 148: Data-Driven Software Mastery @Open Mastery Austin

Community Problem #4:

Solve This Pain with Upstream Usability:

Page 149: Data-Driven Software Mastery @Open Mastery Austin

#OpenDXBring visibility up to the highest levels of our

organizations and across the industry

Page 150: Data-Driven Software Mastery @Open Mastery Austin

The “Open Source” Roadmap

Point A Point AWESOME?

Iterate!

Page 151: Data-Driven Software Mastery @Open Mastery Austin

Get together over lunch and share lessons learned.

Leaders Circle

Developers Circle

Page 152: Data-Driven Software Mastery @Open Mastery Austin

Open Mastery Circle Meetings

Circle Leader

Circle Member

Focus: What’s the problem to solve?

What: Ask questions about the facts

Why: Breakdown the causes

How: Strategies to reduce the pain

Codify: Lessons Learned into #Patterns.

Observation Questions

The Explicit Mastery Loop

Page 153: Data-Driven Software Mastery @Open Mastery Austin

The Explicit Mastery Loop

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

1. What 2. Why 3. How

F ocus!

Output: Pain Signal

Improve Quality of Decisions

Page 154: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

1. What 2. Why 3. How

F ocus!

Output: Pain Signal

Target - The direction of “better”

Target: Optimize the Rate of Idea Flow

The Explicit Mastery Loop

Page 155: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

1. What 2. Why 3. How

F ocus!

Output: Pain Signal

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

The Explicit Mastery Loop

Page 156: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

1. What 2. Why 3. How

F ocus!

Output: Pain Signal

Output - The pain signal we’re trying to improve

The Explicit Mastery Loop

Page 157: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

2. What 3. Why 4. How

F ocus!

Output: Pain Signal

1. !

1. Focus on the biggest pain

F ocus!

The Explicit Mastery Loop

Page 158: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

2. What 3. Why 4. How

F ocus!

Output: Pain Signal

1. !

2. What - Identify the specific symptoms

2. What

The Explicit Mastery Loop

Page 159: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

2. What 3. Why 4. How

F ocus!

Output: Pain Signal

1. !

3. Why - Breakdown cause and effect

3. Why

The Explicit Mastery Loop

Page 160: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

2. What 3. Why 4. How

F ocus!

Output: Pain Signal

1. !

4. How

4. How - Run Experiments to learn what works

The Explicit Mastery Loop

Page 161: Data-Driven Software Mastery @Open Mastery Austin

Input: Constraints

Target: Optimize the Rate of Idea Flow

short-term loop long-term loop

2. What 3. Why 4. How

F ocus!

Output: Pain Signal

1. !

5. Codify Lessons Learned and Modify Behavior

The Explicit Mastery Loop

Page 162: Data-Driven Software Mastery @Open Mastery Austin

#OpenDXWhat?

Page 163: Data-Driven Software Mastery @Open Mastery Austin

Companies

Community Groups

HQ in Austin

Open Mastery Austin

WE ARE a “Pay it Forward” Industry Peer Mentorship Network

Page 164: Data-Driven Software Mastery @Open Mastery Austin

LEARN YOUR WAY TO AWESOME.

Page 165: Data-Driven Software Mastery @Open Mastery Austin

Five Years Ago I Read This Book:

How to Build a Learning Organization

Page 166: Data-Driven Software Mastery @Open Mastery Austin

—>

2.0

Visibility Changes Everything

How to Measure the PAIN in Software Development

Janelle Klein

Visibility

+

Lean Manufacturing

Page 167: Data-Driven Software Mastery @Open Mastery Austin

—>+

Everyday Science (Lean Startup)

We get a design template for how to build a learning organization.

Visibility Changes Everything

2.0

Page 168: Data-Driven Software Mastery @Open Mastery Austin

Focus: Quality of Execution Decisions

Focus Traction

$$$ $$

Focus: Quality of Investment Decisions

Risk Translator (interface)

Management(Coordination)

Engineering(Execution)

Open Mastery Learning Framework

Idea Flow Pain Sensor

Page 169: Data-Driven Software Mastery @Open Mastery Austin

is a Learning Organization

Page 170: Data-Driven Software Mastery @Open Mastery Austin

Visibility Starts a Chain Reaction

#OpenDX

Page 171: Data-Driven Software Mastery @Open Mastery Austin

Next Steps:

openmastery.slack.com