Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Efficient Remote Work

Efficient Remote Work

Some important advice for distributed teams. With enough discipline and good infrastructure any remote team can succeed. It will also introduce you to the famous Conway's Law. Presented at ThoughtWorks.

Felipe Dornelas

November 04, 2015
Tweet

More Decks by Felipe Dornelas

Other Decks in Programming

Transcript

  1. E F F I C I E N T REMOTE

    WORK Felipe Dornelas
  2. COMMON FRUSTRATIONS 2

  3. “Organizations which design systems … are constrained to produce designs

    which are copies of the communication structures of these organizations” — Melvin Conway, 1968 3
  4. Conway’s Law 4

  5. 5 Hi. I’m Conway!

  6. 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
  7. 7

  8. WHAT IS PLANNED 8 Big Service

  9. 9 This isn’t going to end well…

  10. LET’S BUILD THIS 10 Brazil Team UK Team

  11. LET’S BUILD THIS 11 Brazil Team UK Team

  12. LET’S BUILD THIS 12 Brazil Team UK Team

  13. COMMUNICATION ISSUES 13 • UK makes decisions • Brazil is

    not invited to all meetings • E-mail communications • Separate time zones
  14. INFRASTRUCTURE DOES NOT HELP 14 • Phone conferencing sucks •

    No video • Chat apps blocked by firewall
  15. AS TIME GOES BY 15 Brazil Team UK Team

  16. AS TIME GOES BY 16 Brazil Team UK Team

  17. AS TIME GOES BY 17 Brazil Team UK Team

  18. DISTRIBUTED MONOLITH 18 A B Tight Coupling

  19. TWO SILOS 19 Brazil Team UK Team

  20. FRUSTRATIONS 20 • Siloed knowledge • Poor productivity • Code

    quality is sacrificed • Over-engineered distributed monolith
  21. 21 I WARNED YOU! MUAHAHAHA!!!

  22. Can we avoid this? 22

  23. 23 Yes you can! Shut up!

  24. Communication is the key! 24

  25. MEET THE TEAM 25

  26. Sometimes, you just gotta be there 26

  27. 27

  28. DROP BY FOR A VISIT 28 • Meet everyone face

    to face • You won’t be just an avatar anymore • Understand the organization culture
  29. MAKE FRIENDS 29 • Don’t be shy • Have lunch

    together • Make a team outing • Be nice!
  30. BRING FOOD 30

  31. BLEND IN 31

  32. START INFLUENCING 32 • Identify key persons • Who makes

    decisions? • Understand how they work
  33. MAKE A TRAVEL SCHEDULE 33 • Rotate travel among the

    team • Have someone from your team onsite • Bring the client to visit your office!
  34. INFRASTRUCTURE SETUP 34

  35. You don’t realize how much you need the Internet until

    it stops working 35
  36. CONFERENCING 36 • Internet bandwidth is critical • Turn the

    video on • Good audio equipment • Phone line can have degraded audio
  37. CONFERENCING 37

  38. INTERNATIONAL CALLS SUCK 38

  39. USE GOOD AUDIO EQUIPMENT 39

  40. DEDICATED AUDIO VIDEO LINK 40

  41. EVEN AN OLD LAPTOP WILL DO 41

  42. TEAM CHAT 42 • Slack • FlowDock • HipChat •

    Campfire • Good’n old IRC
  43. SCREEN SHARING TOOLS 43 • Screenhero • vim + tmux

    • VNC
  44. COMMUNICATE 44

  45. Rule #1: don’t be shy! 45

  46. 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
  47. I’M TALKING ABOUT THIS! 47

  48. …AND THIS! 48

  49. Got a problem? Say it! 49

  50. MEETINGS 50 • If you didn't understand, ask • If

    audio quality is bad, let them know • Stay focused
  51. 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!
  52. Answer fast, be responsive 52

  53. DEALING WITH TIME ZONES 53 • Intersection core-hours • A

    decision log may be helpful
  54. AVOID FUNCTIONAL SILOS 54

  55. Gotta constantly fight Conway’s Law 55

  56. 56 I’m your worst enemy!

  57. CROSS-FUNCTIONAL TEAMS 57 • Vertical stories • Understand the whole

    stack • Work on all modules • Share knowledge
  58. 58

  59. REMOTE PAIR PROGRAMMING 59 • Don’t neglect it • No

    more than a few hours per day • As needed
  60. 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. 61 Follow these tips and you shall succeed! Grrrrrrrr…

  62. Felipe Dornelas [email protected] THANK YOU