E F F I C I E N T
REMOTE WORKFelipe Dornelas
COMMON FRUSTRATIONS
2
“Organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations”
— Melvin Conway, 1968
3
LET’S IMAGINE THIS SCENARIO
6
• Distributed UK and Brazil teams • UK team are clients • Brazil team are contractors • Need to build a big service
WHAT IS PLANNED
8
Big Service
9
This isn’t going to end well…
LET’S BUILD THIS
10
Brazil Team UK Team
LET’S BUILD THIS
11
Brazil Team UK Team
LET’S BUILD THIS
12
Brazil Team UK Team
COMMUNICATION ISSUES
13
• UK makes decisions • Brazil is not invited to all meetings • E-mail communications • Separate time zones
INFRASTRUCTURE DOES NOT HELP
14
• Phone conferencing sucks • No video • Chat apps blocked by firewall
AS TIME GOES BY
15
Brazil Team UK Team
AS TIME GOES BY
16
Brazil Team UK Team
AS TIME GOES BY
17
Brazil Team UK Team
DISTRIBUTED MONOLITH
18
A BTight Coupling
TWO SILOS
19
Brazil Team UK Team
FRUSTRATIONS
20
• Siloed knowledge • Poor productivity • Code quality is sacrificed • Over-engineered distributed monolith
21
I WARNED YOU! MUAHAHAHA!!!
Can we avoid this?
22
23
Yes you can!
Shut up!
Communication is the key!
24
Sometimes, you just gotta be there
26
DROP BY FOR A VISIT
28
• Meet everyone face to face • You won’t be just an avatar anymore • Understand the organization culture
MAKE FRIENDS
29
• Don’t be shy • Have lunch together • Make a team outing • Be nice!
START INFLUENCING
32
• Identify key persons • Who makes decisions? • Understand how they work
MAKE A TRAVEL SCHEDULE
33
• Rotate travel among the team • Have someone from your team onsite • Bring the client to visit your office!
INFRASTRUCTURE SETUP
34
You don’t realize how much you need the Internet until it stops working
35
CONFERENCING
36
• Internet bandwidth is critical • Turn the video on • Good audio equipment • Phone line can have degraded audio
INTERNATIONAL CALLS SUCK
38
USE GOOD AUDIO EQUIPMENT
39
DEDICATED AUDIO VIDEO LINK
40
EVEN AN OLD LAPTOP WILL DO
41
TEAM CHAT
42
• Slack • FlowDock • HipChat • Campfire • Good’n old IRC
SCREEN SHARING TOOLS
43
• Screenhero • vim + tmux • VNC
Rule #1: don’t be shy!
45
CHANGE YOUR ATTITUDE
46
• Use the audio video link as much as possible • Participate in the team chat • One or two quick daily stand-ups • E-mail as a last resource
I’M TALKING ABOUT THIS!
47
Got a problem? Say it!
49
MEETINGS
50
• If you didn't understand, ask • If audio quality is bad, let them know • Stay focused
CORE HOURS
51
• Agree upon core hours • Let the team know when:
• You are going to be late • You will leave your desk for too long
• It’s all about perception!
Answer fast, be responsive
52
DEALING WITH TIME ZONES
53
• Intersection core-hours • A decision log may be helpful
AVOID FUNCTIONAL SILOS
54
Gotta constantly fight Conway’s Law
55
56
I’m your worst enemy!
CROSS-FUNCTIONAL TEAMS
57
• Vertical stories • Understand the whole stack • Work on all modules • Share knowledge
REMOTE PAIR PROGRAMMING
59
• Don’t neglect it • No more than a few hours per day • As needed
CONSULTING ADVICE
60
• Have someone onsite as a contact point • Ask for help • Don’t let the client forget to invite you to meetings
61
Follow these tips and you
shall succeed!
Grrrrrrrr…
Felipe Dornelas [email protected]
THANK YOU