Slide 1

Slide 1 text

Microservices Means Macrocommunication Paige Bernier @alpacatron3000

Slide 2

Slide 2 text

Portland, Oregon

Slide 3

Slide 3 text

Rocky <---- Norman ---->

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

The story begins...

Slide 6

Slide 6 text

First Team Autonomous! Greenfield! Predictable traffic!

Slide 7

Slide 7 text

Second Team Interteam dependencies! (some) legacy code! Variable traffic!

Slide 8

Slide 8 text

First I Learned... ● Trust is essential

Slide 9

Slide 9 text

Then I Learned... ● Trust is essential ● Good communication is mandatory

Slide 10

Slide 10 text

“Macrocommunication is the art of communication at scale”

Slide 11

Slide 11 text

What does success look like? ● Clear & open communication

Slide 12

Slide 12 text

Traits ● Trust ● Empathy ○ Empathy != sympathy ● Proactive mindset

Slide 13

Slide 13 text

Organizational Level

Slide 14

Slide 14 text

The Org

Slide 15

Slide 15 text

Complete teams Front End & Back End Ops Product Manager Designer Engineering Manager

Slide 16

Slide 16 text

Minimal Standardization ● Announcements-only channel

Slide 17

Slide 17 text

Minimal Standardization ● Announcements-only channel ● Source of truth

Slide 18

Slide 18 text

Minimal Standardization ● Announcements-only channel ● Source of truth ● Supported tools/technologies

Slide 19

Slide 19 text

Minimal Standardization ● Announcements-only channel ● Source of truth ● Supported tools/technologies ● Prioritized initiatives

Slide 20

Slide 20 text

Minimal Standardization ● Announcements-only channel ● Source of truth ● Supported tools/technologies ● Prioritized initiatives ● Team offices

Slide 21

Slide 21 text

Culture of Recognition

Slide 22

Slide 22 text

Interteam

Slide 23

Slide 23 text

Interteam

Slide 24

Slide 24 text

Know your “service neighborhood”

Slide 25

Slide 25 text

Treat your downstream like customers! ● Complete READMEs ○ Architecture diagram

Slide 26

Slide 26 text

Treat your downstream like customers! ● Complete READMEs ○ Architecture diagram ○ 1 line description

Slide 27

Slide 27 text

Treat your downstream like customers! ● Complete READMEs ○ Architecture diagram ○ 1 line description ○ Running locally

Slide 28

Slide 28 text

Treat your downstream like customers! ● Complete READMEs ○ Architecture diagram ○ 1 line description ○ Running locally ○ Contributing

Slide 29

Slide 29 text

Treat your downstream like customers! ● Friendly APIs ○ Documentation

Slide 30

Slide 30 text

Treat your downstream like customers! ● Friendly APIs ○ Documentation ○ Informative error messages ○ Way to send test data

Slide 31

Slide 31 text

Treat your downstream like customers! ● Friendly APIs ○ Documentation ○ Informative error messages ○ Way to send test data

Slide 32

Slide 32 text

Intrateam

Slide 33

Slide 33 text

Intrateam

Slide 34

Slide 34 text

Being a good teammate ● Assume good intent

Slide 35

Slide 35 text

Being a good teammate ● Assume good intent ● Be flexible

Slide 36

Slide 36 text

Being a good teammate ● Assume good intent ● Be flexible ● Written culture

Slide 37

Slide 37 text

Being a good teammate ● Assume good intent ● Be flexible ● Written culture ● Expand your perspective

Slide 38

Slide 38 text

Real Life Examples

Slide 39

Slide 39 text

Example #1 The hot potato service

Slide 40

Slide 40 text

Example #1 The hot potato service ● Have a quick handover meeting

Slide 41

Slide 41 text

Example #1 The hot potato service ● Have a quick handover meeting ● Celebrate unloading this awful service

Slide 42

Slide 42 text

Example #1 The hot potato service ● Have a quick handover meeting ● Celebrate unloading this awful service

Slide 43

Slide 43 text

Example #1 The hot potato service ● Tune alerts

Slide 44

Slide 44 text

Example #1 The hot potato service ● Tune alerts ● Update README

Slide 45

Slide 45 text

Example #1 The hot potato service ● Tune alerts ● Update README ● Document “gotchas”

Slide 46

Slide 46 text

Example #1 The hot potato service ● Tune alerts ● Update README ● Document “gotchas” ● Codebase tour

Slide 47

Slide 47 text

Example #2 To complete their work, Team X has asked you to do work due next week.

Slide 48

Slide 48 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Silently file a ticket and leave it for prioritization next week

Slide 49

Slide 49 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Silently file a ticket and leave it for prioritization next week ● Complain about Team X’s tight deadline

Slide 50

Slide 50 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Silently file a ticket and leave it for prioritization next week ● Complain about Team X’s tight deadline ● Refuse saying you have too much work

Slide 51

Slide 51 text

Example #2 To complete your feature you need Team X to do a thing ● In the middle of your sprint ask the team to do work ● File a ticket and never talk to Team X about it ● Complain about Team X’s unwillingness to help

Slide 52

Slide 52 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Tell your team/manager immediately

Slide 53

Slide 53 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Tell your team/manager immediately ● Prioritize it

Slide 54

Slide 54 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Tell your team/manager immediately ● Prioritize it ● Determine when the work could get done

Slide 55

Slide 55 text

Example #2 To complete their work, Team X has asked you to do work due next week. ● Tell your team/manager immediately ● Prioritize it ● Determine when the work could get done ● Talk to Team X about the deadline

Slide 56

Slide 56 text

Example #3 Your team owns a shared library and you need everyone to upgrade

Slide 57

Slide 57 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Send 2 emails months in advance

Slide 58

Slide 58 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Send 2 emails months in advance ● Set a deprecation warning with no details on how to upgrade

Slide 59

Slide 59 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Send 2 emails months in advance ● Set a deprecation warning with no details on how to upgrade ● Spam all communication channels multiple times a day

Slide 60

Slide 60 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Send 2 emails months in advance ● Set a deprecation warning with no details on how to upgrade ● Spam all communication channels multiple times a day ● Force the upgrade

Slide 61

Slide 61 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Send 2 emails months in advance ● Set the deprecation warning with no details on how to upgrade ● Spam all communication channels multiple times a day

Slide 62

Slide 62 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Provide context, “the why”

Slide 63

Slide 63 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Provide context, “the why” ● Proactively monitor the migration

Slide 64

Slide 64 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Provide context, “the why” ● Proactively monitor the migration ● Generous timeline

Slide 65

Slide 65 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Provide context, “the why” ● Proactively monitor the migration ● Generous timeline ● Informative, updated deprecation warnings

Slide 66

Slide 66 text

Example #3 Your team owns a shared library and you need everyone to upgrade ● Provide context, “the why” ● Proactively monitor the migration ● Generous timeline ● Informative, updated deprecation warnings ● Talk to straggling teams

Slide 67

Slide 67 text

Microservices should influence your technology and your communication

Slide 68

Slide 68 text

Thanks! Paige Bernier @alpacatron3000