the effective remote developer – live blogging at qcon

The Effective Remote Developer
Speaker: David Copeland @davetron5000

See the list of all blog posts from the conference

David has worked for 4 years remotely. Most people are remote.

Definition of remote

  • “You are remote if you do not often interface face-to-face with the people you work with”
  • hard – lone wolf – only one person is remote
  • easy – everyone is remote
  • also – multiple offices

Definition of effective

  • Productiving value
  • Agency – don’t just want to be closing jira tickets
  • Inclusion – don’t want to be that guy in Alabama that people send work to
  • Rewarding

Not easy; takes constant upkeep

Benefits

  • Freedom & flexibility – no commute, acccess to own kitchen, live where want
  • Company has access to wider pool of talent – slowing down ability to liver by restricting to specific area

Must build with people you don’t know and maintain trust with people that don’t.

Trust

  • “the half life of trust is six weeks – it must constantly be replenished”
  • Communicate frequently and clearly – Turn big projects into small ones. Everyone knows what working on. Get early feedback. So shows value delivering. Provide more context. Read what wrote and revise at least once. Use bold/underline/whitespace for clarity.
  • Be responsive, but set boundaries – publish your working hours (including time zones). Put in email signature and comment if meeting outside working hours. Developer a worklow where you aren’t heads down coding for hours; develop mental SLAs for communication. Specific affirming (positive) feedback is useful.
  • Assume good intentions – we are not good at critiquing. remember the reviewer is trying to help even if sounds cold and harsh.
  • Help others help you – go to chat or video for people who don’t communicate well over emai. Find out how everyone best communicates. Be specific in what type of feedback you want

Base level of technology

  • Easiest thing, but need to be successful
  • Chat system that is easy to use
  • Video conference that supports multiple people
  • Better mic than laptop mic

Types of communication

  • Coding – Think about smallest viable change. Write better change requests so can judge your changes. Learn to screencast (quick video) and diagram.
  • Synchronous – ex: video chat. Experience people as a human when not present. Be prepared. Formulate opinion in your mind. Use nouns instead of pronouns more than you think in case a few words drop. Also, pause more frequently and ask for feeback. “Any questions before I move on”. Don’t multitask; pay attention – best case is missing info; worst case is getting called out or having to ask. Have regular backchanel for tech issues.
  • Asynchronous
  • Socializing – If quiet in office, people still know who you are and that humanizes you. If remote, you are a producer of emails. Use time before meeting starts to socialize. Have one on ones with no agenda. Like scheduling time to stand around the water cooler. Travel to meet others in person. Accept that will miss happy hours

Remember computers are terrible and nothing works. Can bond over shared bad experience.

When interview, do chat and give take home project (add a few features) then pair program remotely to add another feature. Then fly onsite to interview. Have hired a few without flying in

Dedicated area at home to work.

Many of these tips are helpful even without remote developers.

working remotely successfully – brad greenlee – qcon

This is part of my live blogging from QCon 2015. See my QCon table of contents for other posts.

Etsy does remote better than anyplace else he worked. Alot of people in Brooklyn office and other offices and people working from home office. He uses “remotes” as a noun as shorthand for “remote employees”.

Advice for Organizations
Number one factor for success is critical mass. Having one remote on the team doesn’t work. Having enough makes communication happen in a remote friendly format. Using chat/email/video conferencing rather than in person/physical whiteboards.

Communication

  • Chat – like IRC or Slack. They use channels; not just one on one chat like Sametime or Lync. Have #remotes channel. Virtual water cooler.
  • Shorter, more frequent interactions build stronger bonds than longer, less frequent ones.
  • Etsy is a “reply all” email culture. Use ignore/mute feature so not reading all.
  • A/V – 4 full timers work on A/V. Google hangout wasn’t enough. Switched to Vidio. Remotes type in name of room to join video conference. Remotes never late to meetings so a remote showing on screen reminds the previous meeting to end
  • Make it easy. Don’t want resistance from on sites to including remotes

Info sharing

  • Can attend talks remotely or watch them later
  • Too many people for monthly all hands to attending in person

Other tips

  • For larger meetings, have remote advocate in room – make sure speaker repeats qustions, remotes are header, et
  • Weekly one on ones are more important. Might be only (virtual) face to face. And chance to give inside info everyone in the office knows.
  • Daily standups. Video conferencing in hasn’t worked well because clustered around computer in open office. Async check ins worked better because cross time zones. [we have remotes by phone and it has been smooth. We have a room with a door though and don’t try to do video
  • Make visits special. Take time to talk, have lunch, etc. Make sure to have seat/monitor/etc
  • Try to go remote once in a while to see what person is dealing with

Policies

  • Remotes can visit any time they want and company pays for. He visits quarterly. Goal: appreciation
  • Local employees aren’t free. Company pays for desk. Should pay for remote to have good space too.
  • Responsive IT group.
  • Mailed hoodies in advance so everyone got on same day
  • Be mindful of decisions and how they affect remotes. Ex: Friday afternoon beers exclude remotes

Obstacles

  • Open office plans suck – not many quiet spaces to speak to remote
  • Remote collaboration is hard – ex: pair programming. Haven’t gotten enough experiencewith a tool to get past this. Don’t have a good virtual whiteboard tool yet.
  • Fear of remotes/fear of unknown

Advice for remotes

  • Visit at least once a quarter. Socialize when there. Visiting to talk to people; not to sit in corner and code
  • Make sure have proper work environment at home or find a co-working space
  • Some people need a dedicated space for work at home
  • Don’t forget to go “home” at end of work day. If start at 7am to sync with East Coast, don’t feel bad about ending at 3pm.
  • At disadvantage in being heard/seen, so put extra effort into being noticed.
  • Support each other; talk to other remotes
  • Mixer app – created app to randomly pair people and suggest they talk

Q&A

  • With open office, do headsets help with noise? Sometimes. Other times, cut in and out. People often don’t have a quick call to avoid disturbing neighbors
  • How do you evaluate remote people? Same as in office. What do you get done
  • How look for workers and find those good fit for remote culture? Networking. % of remotes depends on job function
  • If all remotes used to be in person and are now far away, don’t have critical mass. How address? People at company a long time to handle being only remote person better. [presumably because already have network]
  • Agile and remotes? There was a presumption this can’t work. [I disagree and commented to that effect.]

Good talk from both points of view (company/team and remotes). I also saw an underlying theme that Etsy supports remote to get the best employees. Not to save money on office space. Good intent.