Date post: | 22-Jan-2018 |
Category: |
Technology |
Upload: | christian-melchior |
View: | 241 times |
Download: | 0 times |
The Good, The Bad And The Ugly - Building Distributed Teams at RealmChristian Melchior - @chrmelchior
@chrmelchior
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
#1 Realise that every team is different
@chrmelchior
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
A new way of thinking• Harder than it sounds
• Interrupt-based vs. Push/Pull
@chrmelchior
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”
Who do you pick tools for• Team members ?
• Team leads ?
• Product Managers ?
• VP’s / Directors ?
• CEO ?
@chrmelchior
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 …
Slack is not perfect• Information overload
• Bad at storing persistent information
• Search in Slack is bad
• Notifications interrupt you
@chrmelchior
Group notifications• @channel
• Never use this!
• @here • Only for real time interactions
• @g-java / @g-<group> • Best of both worlds
@chrmelchior
Meetings• Weekly team meeting (3pm CET)
• Europe 😊 • America 😪☕ • Asia 😫☕
• Team leads meeting (8pm CET) • Europe 😫☕ • America 😊 • Asia 😴
@chrmelchior
Decision making
@chrmelchior
• Harder to get consensus
• Who makes “the call”?
Communicate, Communicate, Communicate
• Surface blockers quickly
• Be explicit about what you need
• You avoid getting interrupted
@chrmelchior
Pull Requests : Work In Progress
@chrmelchior
• Visibility
• Lower the barrier for peers / community to participate
Learn to multitask
@chrmelchior
• Immediate feedback is impossible
• Have a backlog of “easy” items
• Unblock others
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
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
#9 Meet face-to-face
@chrmelchior
It is harder to think of people as idiots once you
met them face to face
@chrmelchior
Meet face-to-face• Realm-stravaganza ~ 1/year
• <Team>-stravaganza ~ 1/year
• Aligning on the vision
• Team building
@chrmelchior
Lessons learned so far 👍• Everything becomes more transparent
• Trust + Flexibility = Happy employees
• Diversity
@chrmelchior
Lessons learned so far 👎• Process problems are magnified
• Longer turn-around time for tasks
• No overlapping work hours
@chrmelchior
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