Stop Getting Crushed By Business Pressure

153
Business Pressure Stop Getting CRUSHED by Janelle Klein openmastery.org @janellekz

Transcript of Stop Getting Crushed By Business Pressure

Page 1: Stop Getting Crushed By Business Pressure

Business Pressure

Stop Getting CRUSHED by

Janelle Kleinopenmastery.org @janellekz

Page 2: Stop Getting Crushed By Business Pressure

, Developer, Consultant, CTO @Specialized in Statistical Process Control (SPC) and Supply Chain Optimization from Lean Manufacturing (data geek)

Continuous Delivery infrastructure, automation strategy & technical mentorship

Janelle Klein

Who Am I?

How to Measure the PAIN in Software Development

Janelle Klein

Author of “Idea Flow”

leanpub.com/ideaflow

Founder of

newiron.com

Page 3: Stop Getting Crushed By Business Pressure

This is a HARD Problem.

What is this talk about?

Page 4: Stop Getting Crushed By Business Pressure

“Better”“Better”

What if we could get managers and developers all pulling the same direction?

ManagersDevelopers

Page 5: Stop Getting Crushed By Business Pressure

Quick Recap

Page 6: Stop Getting Crushed By Business Pressure

Great Team Disciplined with Best Practices Constantly Working on Improvements+

Project FAILURE

In the Last Talk…

Page 7: Stop Getting Crushed By Business Pressure

The Retrospective

“What are we supposed to do?!”

Our biggest problem

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

collect data.”

Page 8: Stop Getting Crushed By Business Pressure

The Retrospective

Our biggest problem

“What data would help us understand the problem?”

“What are we supposed to do?!”

Page 9: Stop Getting Crushed By Business Pressure

Technical Debt Mistakes

I thought the main obstacle was Technical Debt

Page 10: Stop Getting Crushed By Business Pressure

?Most of our mistakes were in the

most well-written parts of the code.

Mistakes

Page 11: Stop Getting Crushed By Business Pressure

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 12: Stop Getting Crushed By Business Pressure

Unexpected Behavior

Problem Resolved

Tracking Painful Interaction with the Code (Friction)

Troubleshooting

Progress

5 hours and 18 minutes of troubleshooting...

PAINFUL

Page 13: Stop Getting Crushed By Business Pressure

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 14: Stop Getting Crushed By Business Pressure

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 15: Stop Getting Crushed By Business Pressure

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 16: Stop Getting Crushed By Business Pressure

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 17: Stop Getting Crushed By Business Pressure

PAIN occurs during the process of understanding and extending the software

Complex(So*ware(

PAIN

Not the Code.

Optimize “Idea Flow”

Page 18: Stop Getting Crushed By Business Pressure

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 19: Stop Getting Crushed By Business Pressure

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 20: Stop Getting Crushed By Business Pressure

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 21: Stop Getting Crushed By Business Pressure

Then I got into consulting…

The Software Rewrite Cycle

Start%Over%

Unmaintainable%So0ware%

Page 22: Stop Getting Crushed By Business Pressure

We Start with the Best of Intentions

High Quality Code

Low Technical Debt

Easy to Maintain

Good Code Coverage

Page 23: Stop Getting Crushed By Business Pressure

Then This Happens!

Page 24: Stop Getting Crushed By Business Pressure

Stages of Escalating Project Risk

Product Owner: “We’ve got more important things to do.”

Deferring(Problems(

Page 25: Stop Getting Crushed By Business Pressure

Deferring(Problems(

Painful(Releases(

Manager: “Good job everyone! Keep up that great work ethic!”

Stages of Escalating Project Risk

Page 26: Stop Getting Crushed By Business Pressure

Deferring(Problems(

Painful(Releases(

Thrashing)

Manager: “We need to go faster! Let’s hire more developers.”

Stages of Escalating Project Risk

Page 27: Stop Getting Crushed By Business Pressure

Deferring(Problems(

Painful(Releases(

Thrashing) Project(Meltdown(

Developer: “I give up. I don’t care anymore if the project fails.”

Stages of Escalating Project Risk

Page 28: Stop Getting Crushed By Business Pressure

Our “Solution”

“We should just quit our jobs.” “Yeah, it’s hopeless.”

What are we supposed to do?

Page 29: Stop Getting Crushed By Business Pressure

Emergent Practice

Everything I’m showing today:

My Goal: Give You Hope

Page 30: Stop Getting Crushed By Business Pressure

RESET

“A description of the goal is not a strategy.”

-- Richard P. Rumelt

What’s wrong with our current strategy?

Page 31: Stop Getting Crushed By Business Pressure

Our “Strategy” for Success

High Quality Code

Low Technical Debt

Easy to Maintain

Good Code Coverage

Page 32: Stop Getting Crushed By Business Pressure

RESET“A good strategy is a specific and coherent response to—and approach for overcoming—the obstacles to progress.”

-- Richard P. Rumelt

The problem is we don’t have a strategy...

Page 33: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Management doesn’t care about interest payments.

Obstacle 2: Management would rather you shut up and do your job.

Obstacle 3: The Problem is outside anyone’s control.

Page 34: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Your manager doesn’t care about interest payments.

Obstacle 2: Management would rather you shut up and do your job.

Obstacle 3: The Problem is outside anyone’s control.

Page 35: Stop Getting Crushed By Business Pressure

“Let’s rewrite the software!”

My new project: “Awesome in Disguise”

I had full control.

Page 36: Stop Getting Crushed By Business Pressure

Continuous Delivery from day 1.

Page 37: Stop Getting Crushed By Business Pressure

Then they announced “the plan”

Page 38: Stop Getting Crushed By Business Pressure

My project was moved under different management…

Page 39: Stop Getting Crushed By Business Pressure

Crazy Deadlines

Page 40: Stop Getting Crushed By Business Pressure
Page 41: Stop Getting Crushed By Business Pressure

Constant Urgency

Compromise Safety for Speed

Page 42: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

Cycle of Chaos High-Risk Decision Habits

Page 43: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

Cycle of Chaos High-Risk Decision Habits

Page 44: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

Cycle of Chaos High-Risk Decision Habits

Page 45: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

Cycle of Chaos High-Risk Decision Habits

Page 46: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

Cycle of Chaos High-Risk Decision Habits

Page 47: Stop Getting Crushed By Business Pressure

I Tried to Explain “Technical Debt”

Page 48: Stop Getting Crushed By Business Pressure

“The project is already behind schedule!!”

Manager said:

“How can you possibly justify working on anything other than the deliverables?!”

So we did what we were told.

Page 49: Stop Getting Crushed By Business Pressure

We drank a lot.

Page 50: Stop Getting Crushed By Business Pressure

Until we couldn’t take it anymore.

Page 51: Stop Getting Crushed By Business Pressure

Explained the problem of Technical Debt

Business Coaching

“That doesn’t sound so bad.”

The Response:

??

??

WHAT?!

Page 52: Stop Getting Crushed By Business Pressure

Loans are a Predictable Financial Tool

Revenue

- Cost

Profit + 10%

Increase Price?

Increase Sales?

Reduce Cost?

What makes investment decisions harder isn’t higher costs, it’s lower predictability.

Investment Strategy

Page 53: Stop Getting Crushed By Business Pressure

Obstacle 1: Your manager doesn’t care about interest payments.

But… Managers care A LOT about RISK.

The gradual loss of predictability is much scarier than the gradual increase in cost.

Page 54: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Your manager doesn’t care about interest payments.

Obstacle 2: Management would rather you shut up and do your job.

Obstacle 3: The Problem is outside anyone’s control.

Page 55: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Your Manager doesn’t care about interest payments.

Obstacle 2: Your manager would rather you shut up and do your job.

Obstacle 3: The System is setup to fail.

Page 56: Stop Getting Crushed By Business Pressure

Another new project…

“Don’t ask for permission, ask for forgiveness.”

Page 57: Stop Getting Crushed By Business Pressure

“Don’t ask for permission, ask for forgiveness.”

Another new project…

Page 58: Stop Getting Crushed By Business Pressure

Then We Got New Management!

I put together “a plan”…

Page 59: Stop Getting Crushed By Business Pressure

“What is Janelle trying to pull?! Who does she think she is?!”

Management said (behind my back):

Get Back Inside Your Box! (or else)

Severe Violation of SOCIAL PROTOCOL

Page 60: Stop Getting Crushed By Business Pressure

SOCIAL PROTOCOL

Never talk to your manager’s boss about a problem.

Never suggest or imply your manager can’t do their job effectively by

trying to get others to override their decisions.

Decision-making responsibilities are assigned by management and not to be questioned.

Page 61: Stop Getting Crushed By Business Pressure

Engineers: “We’re going to CRASH!”

Manager: “What do I do? We can’t miss these deadlines.”

Then I got into Consulting…

Page 62: Stop Getting Crushed By Business Pressure

Developers

Manager

Consultant

“We’re going to hit the wall!”

Keynote

“We better invest money in this!”

The Consulting World

Page 63: Stop Getting Crushed By Business Pressure

The Job of a Consultant

Why do they need my help?!

Keynote

Page 64: Stop Getting Crushed By Business Pressure

RESET

Consultants Bridge the Divide

Message comes through a “certified authority.”

Message comes in management-speak.

Page 65: Stop Getting Crushed By Business Pressure

Obstacle 2: Your manager would rather you shut up and do your job.

Follow SOCIAL PROTOCOL

Stay (Mostly) Inside Developer Box

Communicate in Manager-Speak +

Page 66: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 2: Your manager would rather you follow social protocol.

Lesson 3: The system is setup to fail.

Obstacle 1: Your manager doesn’t care about interest payments.

Page 67: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Your manager doesn’t care about interest payments.

Obstacle 2: Your manager would rather you follow social protocol.

Obstacle 3: The system is setup to fail.

Page 68: Stop Getting Crushed By Business Pressure

The Challenge: Decision-Making is Distributed

Another Problem:The Inability to Change Direction

Page 69: Stop Getting Crushed By Business Pressure

What if our organization was a robot?

Fire x1

Dev Team

Management

Nothing’s happening…

Pain Sensor

Page 70: Stop Getting Crushed By Business Pressure

What if our organization was a robot?

Fire x1

Dev Team

Management

Fire x10

Pain Sensor

Page 71: Stop Getting Crushed By Business Pressure

Management

Dev Team

Fire x10

What if our organization was a robot?

If the feedback loop is broken, we burn.

Pain Sensor

Page 72: Stop Getting Crushed By Business Pressure

Learn & Adapt

Role

Decision(Type(

Required(Knowledge(

Visibility and Decisions Coupled

Visibility and Decisions De-coupled

Role A

Required(Knowledge(

Role B

Decision(Type(

The Broken Feedback Loop is Baked into the Design

Page 73: Stop Getting Crushed By Business Pressure

Manager

Alloca&on(Decisions(

Knowledge(of(Risks(

Risk(Mgmt(Decisions(

Developer

Communication Breakdown

Broken Feedback Loop (Manager Role)

Page 74: Stop Getting Crushed By Business Pressure

Developer Product Owner

Actual'Risks'

interacts''with'

Actual'Customers'

interacts''with'

Knowledge'of'Customers'

Trade9off'Decisions'

depend'on'depend'on'Knowledge'of'Risks'

Communication Breakdown

Broken Feedback Loop (Product Owner Role)

Page 75: Stop Getting Crushed By Business Pressure

Now we can steer!!

So#ware(Task(

Mi.gate(the(Risks(

Product(Development(

Product(Work(Queue(

Risk(Mgmt(Work(Queue(

Product(Owner(

Product(Decisions(

Knowledge(of(Customers(

Technical(Risk(Manager(

Risk(Mgmt(Decisions(

Knowledge(of(Risks(

Dev$Team$Capacity$

Manager

Alloca.on(Decisions(

Refactor the Organizational Architecture

Page 76: Stop Getting Crushed By Business Pressure

This is the design that typically emerges when we have:

Trust.

Page 77: Stop Getting Crushed By Business Pressure

Role

Decision(Type(

Required(Knowledge(

Visibility and Decisions Coupled

Visibility and Decisions De-coupled

Role A

Required(Knowledge(

Role B

Decision(Type(

Obstacle 3: The system is set up to fail.

We’ve got to fix the machine(even though it’s not our responsibility)

Page 78: Stop Getting Crushed By Business Pressure

What are the obstacles?

Obstacle 1: Management doesn’t care about interest payments.

Obstacle 2: Management would rather you follow social protocol.

Obstacle 3: The system is setup to fail.

Page 79: Stop Getting Crushed By Business Pressure

RESET“A good strategy is a specific and coherent response to—and approach for overcoming—the obstacles to progress.”

-- Richard P. Rumelt

Page 80: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 81: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 82: Stop Getting Crushed By Business Pressure

Leadership is not a title, it’s a choice.

Page 83: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 84: Stop Getting Crushed By Business Pressure

Your manager doesn’t care that your job “feels difficult”

“In God we trust, all others bring data.” —Edwards Deming

Page 85: Stop Getting Crushed By Business Pressure

PAIN occurs during the process of understanding and extending the software

Complex(So*ware(

PAIN

Not the Code.

Optimize “Idea Flow”

Page 86: Stop Getting Crushed By Business Pressure

Idea Flow Mapping Tools

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

Page 87: Stop Getting Crushed By Business Pressure

“Idea Flow Map”

“Friction”

Page 88: Stop Getting Crushed By Business Pressure

“What caused the pain in this case?”

Categorize the Problems with #HashTags

#ReportingEngine

#Hibernate

#MergeHell

Page 89: Stop Getting Crushed By Business Pressure

1. Problem A

2. Problem B

3. Problem C

Add up the Pain by Category

What’s the biggest problem to solve?

Page 90: Stop Getting Crushed By Business Pressure

Tools Demo

Page 91: Stop Getting Crushed By Business Pressure

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 92: Stop Getting Crushed By Business Pressure

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 93: Stop Getting Crushed By Business Pressure

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 94: Stop Getting Crushed By Business Pressure

The Architecture Looked Good on Paper

Team A Team B Team C

Complexity Moved HereWTF?! WTF?!

Page 95: Stop Getting Crushed By Business Pressure

We Don’t Have TIME To Fix It!

Page 96: Stop Getting Crushed By Business Pressure

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 97: Stop Getting Crushed By Business Pressure

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 98: Stop Getting Crushed By Business Pressure

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 99: Stop Getting Crushed By Business Pressure

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 100: Stop Getting Crushed By Business Pressure

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 101: Stop Getting Crushed By Business Pressure

The Challenge:

How do I get my team to collect data??

Page 102: Stop Getting Crushed By Business Pressure

Would you be willing to collect data if you knew your management would give you

dedicated time to work on the biggest problems?

Page 103: Stop Getting Crushed By Business Pressure

1. Don’t ask for Permission

2. State your Goal "I want to make the business case to management for fixing things around here. No more chaos and working on weekends, this needs to stop. But I need data to make the case so I need everyone's help."

3. State the Plan "Here's what I'm thinking. I want to run an experiment to record data for one month on all the time we spend troubleshooting. We can look at the data together and identify our biggest problems, then I’ll write it up and present the case to management to get things fixed.”

4. Enlist the Team “Will you guys help me make this happen?”

Here’s What You Do:

Page 104: Stop Getting Crushed By Business Pressure

1. Don’t ask for Permission

2. Make the Goal Clear to Your Team "I want to make the business case to management for fixing things around here. No more chaos and working on weekends, this needs to stop. But I need data to make the case so I need everyone's help."

3. State the Plan "Here's what I'm thinking. I want to run an experiment to record data for one month on all the time we spend troubleshooting. We can look at the data together and identify our biggest problems, then I’ll write it up and present the case to management to get things fixed.”

4. Enlist the Team “Will you guys help me make this happen?”

Here’s What You Do:

Page 105: Stop Getting Crushed By Business Pressure

1. Don’t ask for Permission

2. Make the Goal Clear to Your Team "I want to make the business case to management for fixing things around here. No more chaos and working on weekends, this needs to stop. But I need data to make the case so I need everyone's help."

3. State the Plan "Here's what I'm thinking. I want to run an experiment to record data for one month on all the time we spend troubleshooting. We can look at the data together and identify our biggest problems, then I’ll write it up and present the case to management to get things fixed.”

4. Enlist the Team “Will you guys help me make this happen?”

Here’s What You Do:

Page 106: Stop Getting Crushed By Business Pressure

1. Don’t ask for Permission

2. Make the Goal Clear to Your Team "I want to make the business case to management for fixing things around here. No more chaos and working on weekends, this needs to stop. But I need data to make the case so I need everyone's help."

3. State the Plan "Here's what I'm thinking. I want to run an experiment to record data for one month on all the time we spend troubleshooting. We can look at the data together and identify our biggest problems, then I’ll write it up and present the case to management to get things fixed.”

4. Enlist the Team “Will you guys help me make this happen?”

Here’s What You Do:

Page 107: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 108: Stop Getting Crushed By Business Pressure

Add up the Pain by Category

1. Test Data Generation

2. Merging Problems

3. Repairing False Alarms

1000 hours/month

What’s the biggest problem to solve?

Page 109: Stop Getting Crushed By Business Pressure

Friction as a % of total capacity

What’s the biggest problem to solve?

Page 110: Stop Getting Crushed By Business Pressure

Friction % versus Upcoming Demand

What’s the biggest problem to solve?

Page 111: Stop Getting Crushed By Business Pressure

Friction % Grouped by Familiar vs Unfamiliar

What’s the biggest problem to solve?

Page 112: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 113: Stop Getting Crushed By Business Pressure

The Constraints

Stay (Mostly) Inside Developer Box

Communicate in Manager-Speak +

Page 114: Stop Getting Crushed By Business Pressure

Your Job is to Repair the Broken Feedback Loop

Risk Translator

Engineering(Execution)

Management(Coordination)

Risk is the bridge language.

Page 115: Stop Getting Crushed By Business Pressure

Manager

Alloca&on(Decisions(

Knowledge(of(Risks(

Risk(Mgmt(Decisions(

Developer

RiskTranslator

Risk(Summary(

Risk Translator Role

Fits Within Developer Box

Page 116: Stop Getting Crushed By Business Pressure

measures the time spent on:

Idea Flow

x

Troubleshooting

x

Learning

x

Rework

Quality Risk Familiarity Risk Assumption Risk

Page 117: Stop Getting Crushed By Business Pressure

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 118: Stop Getting Crushed By Business Pressure

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 119: Stop Getting Crushed By Business Pressure

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 120: Stop Getting Crushed By Business Pressure

Decisions that save a few hours

Side-effects that cost several hours

Save 40 hours in direct costs(leave the toy on the stairs)

Increase chances of losing 1000 hours by 20%(tripping and falling)

Explain Problems in Terms of Risk (Gambling)

Page 121: Stop Getting Crushed By Business Pressure

Distribution of Development Capacity

Over the long-term, probability wins.

Page 122: Stop Getting Crushed By Business Pressure

Send “Project Visibility Updates”

Hi Larry, I know it’s really hard to stay in the loop on all the different project risks, so I wanted to send you a summarized update of some of our recent findings.

Subject: Project Visibility Update

We started collecting data during development to track where all of our time was going, and made some pretty frightening discoveries.

See attached. Let me know if you’d like to talk.

Page 123: Stop Getting Crushed By Business Pressure

Risk Translators build

Trustby making sense.

Page 124: Stop Getting Crushed By Business Pressure

What’s the Strategy?

2. Measure the Pain

4. Become a Risk Translator

5. Refactor the Organization

3. Identify the Biggest Problems

1. Make the Decision to Lead

Page 125: Stop Getting Crushed By Business Pressure

Manager

Alloca&on(Decisions(

Knowledge(of(Risks(

Risk(Mgmt(Decisions(

Developer

RiskTranslator

Risk(Summary(

Refactor Step 1: Risk Translator

Page 126: Stop Getting Crushed By Business Pressure

So#ware(Task(

Mi.gate(the(Risks(

Product(Development(

Product(Work(Queue(

Risk(Mgmt(Work(Queue(

Product(Owner(

Product(Decisions(

Knowledge(of(Customers(

Dev$Team$Capacity$

Alloca.on(Decisions(

Manager2Translator$Partnership$

Risk(Mgmt(Decisions(

Knowledge(of(Risks(

Refactor Step 2: Partnership

Page 127: Stop Getting Crushed By Business Pressure

Now we can steer!!

So#ware(Task(

Mi.gate(the(Risks(

Product(Development(

Product(Work(Queue(

Risk(Mgmt(Work(Queue(

Product(Owner(

Product(Decisions(

Knowledge(of(Customers(

Technical(Risk(Manager(

Risk(Mgmt(Decisions(

Knowledge(of(Risks(

Dev$Team$Capacity$

Manager

Alloca.on(Decisions(

Refactor Step 3: Owner

Page 128: Stop Getting Crushed By Business Pressure

Option 1 Option 2

Stay the Course Change

This is Safer (less risky)

or

Make the Case for Partnership

Focus on the Risks (don’t negotiate schedule)

Key to Success:

Page 129: Stop Getting Crushed By Business Pressure

1. Explain Why You Decided to Collect Data

Saw this talk/read this book about…

How to Measure the PAIN in Software Development

Janelle Klein

Consultant +1 Effect

(blame me)

Page 130: Stop Getting Crushed By Business Pressure

Time%Pressure%

Compromise%Safety%for%

Speed%

Increase%Number%&%Severity%of%Hazards%

%

More%Pain%and%Higher%Task%Effort%

Constant'Urgency'

“In the book, Janelle talks about this “Cycle of Chaos”…

Page 131: Stop Getting Crushed By Business Pressure

“As the problems build, they introduce Quality Risk…

Likelihood)of))Unexpected)Behavior)

Cost)to)Troubleshoot)and)Repair)

High)Frequency)Low)Impact)

Low)Frequency)Low)Impact)

Low)Frequency)High)Impact)

PAIN)

Likelihood  of  Mistakes  

Cost  to  Recover  

Quality Risk

Our application is more likely to be in a BROKEN state.

Page 132: Stop Getting Crushed By Business Pressure

“We’re measuring the problems while we work…

Problems Measured in HOURS.

Page 133: Stop Getting Crushed By Business Pressure

2. Here’s What We Found…

Pick your WORST offending examples.

Use lots of RED.

Page 134: Stop Getting Crushed By Business Pressure

Save time by skipping diagnostic

tools (~80 hours)

Side-effects of Troubleshooting time (~700 hours/month)

36h 25m0:00

Troubleshooting

Progress11 hours and 15 minutes of troubleshooting...

Creating a New Customer Report

“This is a timeline that shows all the time we spend troubleshooting…

Page 135: Stop Getting Crushed By Business Pressure

Save time by constantly rushing

(~20 hours/month)

Side-effects of 25 developers

down for 2 days (~1000 hours/month)

“When the problems build up, they have a really big impact…

Page 136: Stop Getting Crushed By Business Pressure

“When the application is broken, these are the biggest problems in our way.

1000 hours/month

1. Test Data Generation

2. Merging Problems

3. Repairing False Alarms

Top Three Problems

Page 137: Stop Getting Crushed By Business Pressure

“The deadline is coming either way…”

80% of features 100% done?100% of features 80% done?

Page 138: Stop Getting Crushed By Business Pressure

“Here’s what we were thinking…”

3-Month Improvement Trial

Dedicated resources (1 or 2 developers)

Dev team identifies highest-leverage improvement opportunities and prioritizes with management

Continue to share Project Visibility Updates each month

“Will you help us turn this project around?”

Page 139: Stop Getting Crushed By Business Pressure

Summary

Page 140: Stop Getting Crushed By Business Pressure

The Biggest Cause of FAILURE in our Industry:

Page 141: Stop Getting Crushed By Business Pressure

“Better”“Better”

We have an opportunity to do this across our industry:

ManagersDevelopers

Page 142: Stop Getting Crushed By Business Pressure

Two Options:

Option 1

Stay the Course

Option 2

Take Responsibility

or

Let’s Do This

Here’s the Catch:

In order for us to change the status quo, we have to start working together as a community.

Page 143: Stop Getting Crushed By Business Pressure

Let’s take responsibility,

learn how to get there,

then let’s help each other to succeed.

Page 144: Stop Getting Crushed By Business Pressure

LEARN YOUR WAY TO AWESOME.

Free to Join Industry Peer Mentorship Network

openmastery.org

Page 145: Stop Getting Crushed By Business Pressure

If you’d like to see our industry start collaborating on solving these problems…

and you’re willing to Measure Your PAIN…

Let’s Make the PAIN Visible!Next Talk:

Page 146: Stop Getting Crushed By Business Pressure

#OpenDXAn Open Standard for Measuring PAIN

(Specification for Data Collection)

Developer Experience

Page 147: Stop Getting Crushed By Business Pressure

Community Analytics Platform

Idea Flow Mapping Tools

Team Mastery Tools

TeamJoe Sally Mark Eric

Community Analytics

Anonymized Data

(REST)

Shared Taxonomy of Patterns & Principles

(with example data)

ProjectTiger

ProjectBear

Page 148: Stop Getting Crushed By Business Pressure

This isn’t about me.

Janelle Kleinopenmastery.org @janellekz

This is about ALL OF US.

Page 149: Stop Getting Crushed By Business Pressure

This is about Ending this BULLSHIT:

Janelle Kleinopenmastery.org @janellekz

Page 150: Stop Getting Crushed By Business Pressure

If you BELIEVE…

Janelle Kleinopenmastery.org @janellekz

Carry the Torch.

Page 151: Stop Getting Crushed By Business Pressure

Courage.

Janelle Kleinopenmastery.org @janellekz

Leadership.

Empathy.

Authenticity.

Respect.

Page 152: Stop Getting Crushed By Business Pressure

Take Responsibility

Janelle Kleinopenmastery.org @janellekz

Two Options:

Option 1

Stay the Course

Option 2

or

Let’s Make the PAIN Visible!

Page 153: Stop Getting Crushed By Business Pressure

What do you see as the biggest obstacle to success?

Discussion: