$30 off During Our Annual Pro Sale. View Details »

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

    View Slide

  2. COMMON FRUSTRATIONS
    2

    View Slide

  3. “Organizations which design systems … are
    constrained to produce designs which are copies of
    the communication structures of these organizations”
    — Melvin Conway, 1968
    3

    View Slide

  4. Conway’s Law
    4

    View Slide

  5. 5
    Hi. I’m Conway!

    View Slide

  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

    View Slide

  7. 7

    View Slide

  8. WHAT IS PLANNED
    8
    Big Service

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. COMMUNICATION ISSUES
    13
    • UK makes decisions
    • Brazil is not invited to all meetings
    • E-mail communications
    • Separate time zones

    View Slide

  14. INFRASTRUCTURE DOES NOT HELP
    14
    • Phone conferencing sucks
    • No video
    • Chat apps blocked by firewall

    View Slide

  15. AS TIME GOES BY
    15
    Brazil Team UK Team

    View Slide

  16. AS TIME GOES BY
    16
    Brazil Team UK Team

    View Slide

  17. AS TIME GOES BY
    17
    Brazil Team UK Team

    View Slide

  18. DISTRIBUTED MONOLITH
    18
    A B
    Tight Coupling

    View Slide

  19. TWO SILOS
    19
    Brazil Team UK Team

    View Slide

  20. FRUSTRATIONS
    20
    • Siloed knowledge
    • Poor productivity
    • Code quality is sacrificed
    • Over-engineered distributed monolith

    View Slide

  21. 21
    I WARNED YOU!
    MUAHAHAHA!!!

    View Slide

  22. Can we avoid this?
    22

    View Slide

  23. 23
    Yes you can!
    Shut up!

    View Slide

  24. Communication is the key!
    24

    View Slide

  25. MEET THE TEAM
    25

    View Slide

  26. Sometimes, you just gotta be there
    26

    View Slide

  27. 27

    View Slide

  28. DROP BY FOR A VISIT
    28
    • Meet everyone face to face
    • You won’t be just an avatar anymore
    • Understand the organization culture

    View Slide

  29. MAKE FRIENDS
    29
    • Don’t be shy
    • Have lunch together
    • Make a team outing
    • Be nice!

    View Slide

  30. BRING FOOD
    30

    View Slide

  31. BLEND IN
    31

    View Slide

  32. START INFLUENCING
    32
    • Identify key persons
    • Who makes decisions?
    • Understand how they work

    View Slide

  33. MAKE A TRAVEL SCHEDULE
    33
    • Rotate travel among the team
    • Have someone from your team onsite
    • Bring the client to visit your office!

    View Slide

  34. INFRASTRUCTURE SETUP
    34

    View Slide

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

    View Slide

  36. CONFERENCING
    36
    • Internet bandwidth is critical
    • Turn the video on
    • Good audio equipment
    • Phone line can have degraded audio

    View Slide

  37. CONFERENCING
    37

    View Slide

  38. INTERNATIONAL CALLS SUCK
    38

    View Slide

  39. USE GOOD AUDIO EQUIPMENT
    39

    View Slide

  40. DEDICATED AUDIO VIDEO LINK
    40

    View Slide

  41. EVEN AN OLD LAPTOP WILL DO
    41

    View Slide

  42. TEAM CHAT
    42
    • Slack
    • FlowDock
    • HipChat
    • Campfire
    • Good’n old IRC

    View Slide

  43. SCREEN SHARING TOOLS
    43
    • Screenhero
    • vim + tmux
    • VNC

    View Slide

  44. COMMUNICATE
    44

    View Slide

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

    View Slide

  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

    View Slide

  47. I’M TALKING ABOUT THIS!
    47

    View Slide

  48. …AND THIS!
    48

    View Slide

  49. Got a problem? Say it!
    49

    View Slide

  50. MEETINGS
    50
    • If you didn't understand, ask
    • If audio quality is bad, let them know
    • Stay focused

    View Slide

  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!

    View Slide

  52. Answer fast, be responsive
    52

    View Slide

  53. DEALING WITH TIME ZONES
    53
    • Intersection core-hours
    • A decision log may be helpful

    View Slide

  54. AVOID FUNCTIONAL SILOS
    54

    View Slide

  55. Gotta constantly fight Conway’s Law
    55

    View Slide

  56. 56
    I’m your worst
    enemy!

    View Slide

  57. CROSS-FUNCTIONAL TEAMS
    57
    • Vertical stories
    • Understand the whole stack
    • Work on all modules
    • Share knowledge

    View Slide

  58. 58

    View Slide

  59. REMOTE PAIR PROGRAMMING
    59
    • Don’t neglect it
    • No more than a few hours per day
    • As needed

    View Slide

  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

    View Slide

  61. 61
    Follow these
    tips and you
    shall succeed!
    Grrrrrrrr…

    View Slide

  62. Felipe Dornelas
    [email protected]
    THANK YOU

    View Slide