Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG....

59
Storytelling for Engineers Brad Shively (@bjshively) Uber ATG

Transcript of Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG....

Page 1: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Storytelling for EngineersBrad Shively (@bjshively)

Uber ATG

Page 2: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Hi, I’m Brad.Engineering Manager @ Uber ATG

Page 3: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

If you don’t ___________,then ________________.

communicate with other humans

this talk isn’t for you

Page 4: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.
Page 5: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

WTF

Page 6: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Communication is an essential engineering skill.

Page 7: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Engineering communication is broken.

Page 8: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Storytelling is the solution

Page 9: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Everything* is a story,and everyone is a storyteller

Page 10: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Most of us are just pretty bad at storytelling

Page 11: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Why?

Page 12: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Storytelling causes changes in brain chemistry that increase awareness, activate the rewards center of the brain (dopamine), and increase empathy and pro-social behavior (oxytocin)

Source: https://www.forbes.com/sites/giovannirodriguez/2017/07/21/this-is-your-brain-on-storytelling-the-chemistry-of-modern-communication/#44097c2bc865

Page 13: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Stories result in better understanding of key points, increase voluntary compliance, and improve memory.

Source: https://hbr.org/2014/10/why-your-brain-loves-good-storytelling

Page 14: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

If you want them to listen, understand, and remember:

tell a story

Page 15: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

This is not a TED talk.

Page 16: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

How?

Page 17: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Identify your audience

Page 18: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Things Everyone Knows

Things YourAudience Knows

Things You Know

What You Imagine

Page 19: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Reality

Things YourAudience Knows

Things You Know

Things Everyone Knows

Page 20: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Your job as a storyteller is to map your brain onto your audience’s brain.

Page 21: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Identify your audience

Figure out what storyyou’re telling

Page 22: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Who is your character?

Page 23: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

What is the character arc?

Page 24: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Identify your audience

Figure out what storyyou’re telling

Tell the story, with context

Page 25: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Let’s write an email!

Page 26: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Remote test execution has been enabled.

-Brad

Remote Testing

Page 27: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Is this email good or bad?

Page 28: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

It depends...

Page 29: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Who is our audience?

Page 30: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

If my audience is the Build Team, this email might be fine

Page 31: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Let’s assume this e-mail is for the entire software org

Page 32: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Pros: Easy and fast to write

Page 33: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Cons: Everything else

Page 34: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

“So what?”“Why?”Worst of all… <silence>

Responses:

Page 35: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Am I announcing that tests are better (or worse) now?

Do I want the recipients to take some action? If so, I need to explicitly ask them.

Page 36: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Let’s talk about data

Page 37: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

“I’m data driven”

...and other lies people tell.

Page 38: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Just data often isn’t really that useful

Page 39: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Remote test execution has been enabled. Attached are results for several test runs.

-Brad

Remote Testing Results

Page 40: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Attachment: results.txtTotal Run Time=985.7s Total Run Time=1007.7s Total Run Time=986.5s Total Run Time=388.5s Total Run Time=615.7sTotal Run Time=1169.3sTotal Run Time=1080.0s Total Run Time=1292.6sTotal Run Time=886.7s Total Run Time=405.7s Total Run Time=676.3s Total Run Time=583.5s Total Run Time=2115.7sTotal Run Time=969.3sTotal Run Time=1280.0s Total Run Time=1092.6sTotal Run Time=785.7s Total Run Time=798.7s Total Run Time=1286.5s Total Run Time=988.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3s

Total Run Time=1088.2s Total Run Time=1086.5s Total Run Time=1111.7s Total Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1280.0s Total Run Time=1692.6sTotal Run Time=985.7s Total Run Time=1007.7s Total Run Time=986.5s Total Run Time=388.5s Total Run Time=615.7sTotal Run Time=1169.3sTotal Run Time=1080.0s Total Run Time=1292.6sTotal Run Time=886.7s Total Run Time=405.7s Total Run Time=676.3s Total Run Time=583.5s Total Run Time=2115.7sTotal Run Time=969.3sTotal Run Time=1280.0s Total Run Time=1092.6sTotal Run Time=785.7s Total Run Time=798.7s Total Run Time=1286.5s Total Run Time=988.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3s

Total Run Time=1280.0s Total Run Time=1092.6sTotal Run Time=785.7s Total Run Time=798.7s Total Run Time=1286.5s Total Run Time=988.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3sTotal Run Time=1180.0s Total Run Time=1092.6sTotal Run Time=685.7s Total Run Time=707.7s Total Run Time=686.5s Total Run Time=688.5s Total Run Time=815.7sTotal Run Time=769.3s

Page 41: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

“What?”

<delete>

Responses:

Page 42: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

You make data useful with context, analysis, and insights

Page 43: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Source: https://en.wikipedia.org/wiki/DIKW_pyramid

effo

rtva

lue

Page 44: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Formulaic e-mails are bad...

Page 45: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

But...

Page 46: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

A Formula for Better-Than-Average Engineering Emails

Page 47: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

TLDR: <Result>

If you [use/care about/etc.] <system X>, keep reading

X is now [better/different/etc.] in aspect Y

...due to change Z

[Visual illustrating impact]

For those very interested, see details below.

Page 48: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Let’s rewrite our email

Page 49: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

TLDR: Faster test results & queue submissions by 100s of seconds!

If you don’t build/test repoX, you can stop reading.

The repoX test suite now supports test remote execution and caching, reducing total test time on CI by ~500 seconds on average. No action is required by you to see these benefits.

Those interested can see the mechanics of the change in PR123. Note that this change only applies to CI tests. For questions or more info, please contact the Build Team.

- Brad

Remote CI testing is now faster

Page 50: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Tactical Recap

Page 51: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Understand who your audience is and what story you’re telling.

Page 52: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Context is ridiculously important.

Page 53: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

There are very few globals.

Page 54: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Turn data into wisdom.

Page 55: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Ask.

Page 56: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Tell.

Page 57: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

As a last resort...

Page 58: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Use the Formula

TLDR: …

If you _____, then _____.

X has changed in Y way…

...due to Z

Page 59: Storytelling for Engineers - USENIX...Storytelling for Engineers Brad Shively (@bjshively) Uber ATG. Hi, I’m Brad. Engineering Manager @ Uber ATG. If you don’t _____, then _____.

Thank you