Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Good, The Bad And The Ugly - Building Distributed Teams at Realm

631 views

Published on

At Realm, approximately 1/3 work remotely across the world. The Android team alone consists of 6 nationalities located in 7 cities across 17 time zones.

This is a candid tale of the successes and failures we have encountered while building out a remote friendly organization. You'll learn from our insights and lessons learned, what challenges you'll face and how to be successful. It is an ongoing process, but the cake is not a lie.

Published in: Technology
  • Login to see the comments

The Good, The Bad And The Ugly - Building Distributed Teams at Realm

  1. 1. The Good, The Bad And The Ugly - Building Distributed Teams at Realm Christian Melchior - @chrmelchior @chrmelchior
  2. 2. What this talk isn’t @chrmelchior and what it is!
  3. 3. What is Realm? • Mobile database company • 2 main products: Realm Mobile Database and Realm Mobile Platform • ~50 employees across the globe • 2 main offices: Copenhagen and San Francisco • ~1/3 work remotely away from the main offices all our the world. @chrmelchior
  4. 4. #1 Realise that every team is different @chrmelchior
  5. 5. name@realm.io
  6. 6. name@realm.io
  7. 7. Embrace the difference • Allow for experimentation • A single team member can change the entire dynamic • Don’t accept advise uncritically • Partially vs. fully distributed team @chrmelchior
  8. 8. #2 Make communication asynchronous @chrmelchior
  9. 9. A new way of thinking • Harder than it sounds • Interrupt-based vs. Push/Pull @chrmelchior
  10. 10. Standups @chrmelchior
  11. 11. Weekly status @chrmelchior
  12. 12. Code review @chrmelchior • When you start the work-day or after completing a task. • Make small pull requests • Optimistic approvals: “+1 if X, Y, Z is fixed”
  13. 13. #3 Don’t let tools dictate process @chrmelchior
  14. 14. Who do you pick tools for • Team members ? • Team leads ? • Product Managers ? • VP’s / Directors ? • CEO ? @chrmelchior
  15. 15. What do we use? @chrmelchior
  16. 16. Slack at Realm • Currently 192 channels • Everyone should be able to create a channel. • Fine-grained channels • Use threads @chrmelchior • Only #general is required reading • #<X>-team : Team channels • #f-<X> : Discuss a specific feature • #t-<X>: Very temporary channels • #got: Here be dragons …
  17. 17. Slack is not perfect • Information overload • Bad at storing persistent information • Search in Slack is bad • Notifications interrupt you @chrmelchior
  18. 18. Group notifications • @channel • Never use this! • @here • Only for real time interactions • @g-java / @g-<group> • Best of both worlds @chrmelchior
  19. 19. Notification setup @chrmelchior
  20. 20. You are not at work all the time @chrmelchior
  21. 21. #4 Define how decisions are made @chrmelchior
  22. 22. Meetings • Weekly team meeting (3pm CET) • Europe 😊 • America 😪☕ • Asia 😫☕ • Team leads meeting (8pm CET) • Europe 😫☕ • America 😊 • Asia 😴 @chrmelchior
  23. 23. Decision making @chrmelchior • Harder to get consensus • Who makes “the call”?
  24. 24. #5 Be transparent in everything you do @chrmelchior
  25. 25. Communicate, Communicate, Communicate • Surface blockers quickly • Be explicit about what you need • You avoid getting interrupted @chrmelchior
  26. 26. Pull Requests : Work In Progress @chrmelchior • Visibility • Lower the barrier for peers / community to participate
  27. 27. #6 Accept that turnaround is longer @chrmelchior
  28. 28. Learn to multitask @chrmelchior • Immediate feedback is impossible • Have a backlog of “easy” items • Unblock others
  29. 29. #7 Assume that people have the best intentions @chrmelchior
  30. 30. Everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand Retrospective Prime Directive @chrmelchior
  31. 31. #8 Remember the social interaction @chrmelchior
  32. 32. Social interaction online • Okay to start the meeting with a little banter • Video chat for meetings • Remember special events • Social chat channels: #pugs, #got, #food @chrmelchior
  33. 33. #9 Meet face-to-face @chrmelchior
  34. 34. It is harder to think of people as idiots once you met them face to face @chrmelchior
  35. 35. Meet face-to-face • Realm-stravaganza ~ 1/year • <Team>-stravaganza ~ 1/year • Aligning on the vision • Team building @chrmelchior
  36. 36. Lessons learned so far 👍 • Everything becomes more transparent • Trust + Flexibility = Happy employees • Diversity @chrmelchior
  37. 37. Lessons learned so far 👎 • Process problems are magnified • Longer turn-around time for tasks • No overlapping work hours @chrmelchior
  38. 38. 9 tips for creating awesome distributed teams 1. Realise that every team is different 2. Make communication asynchronous 3. Don’t let tools dictate process 4. Define how decisions are made 5. Be transparent in everything you do 6. Accept that turnaround is longer 7. Assume that people have the best intentions 8. Remember the social interaction 9. Meet face-to-face @chrmelchior
  39. 39. Questions? @chrmelchior cm@realm.io @chrmelchior

×