Virtual Collaboration: Tips and Tricks for Working Together at a Distance

Sarah Simpkin (University of Ottawa)
Sam Popowich (University of Alberta)

What is pair programming?

Flavours of Pair Programming

  • Face to face: agile technique (professional). Two developers on one machine.

  • Virtual: adopted by non-professional coders, primarily for mentoring (cf. Avdi Grimm's Pair with Me)

Why did we want to try it?


  • Canarie ( server
  • ...hosted by Cybera (
  • Ansible playbook to install OS, basic packaging.
  • SSH keys
  • tmux
  • Google Hangout
  • ... for face-to-face chat and screen sharing
  • Slack

What did we use it for?

  • Testing
  • Refactoring
  • Unix/infrastructure work
  • Git/GitHub practice

Linked Folk

  • + Kim Pham, UT-Scarborough
  • Folk music version of Linked Jazz project
  • Practical way to start getting familiar with linked data concepts, tools, and processes

Ways to learn from each other

  • Pair programming
  • Hackfests
  • Code reading groups
  • Birds of a Feather
  • Reading docs/forums

Code reading groups

  • Regular practice
  • One hour, once a week
  • ~100 lines
  • Can focus on one language, or many
  • Library-related scripts, or others
  • Weekly "tour guide" leads session
  • See Coral's talk at Code4Lib 2015

Birds of a Feather

  • Developers and Sysadmins at University of Alberta Libraries
  • Discuss problems, practices, workflows
  • Read code, analyze, kick ideas around

Things we learned

  • Scheduling was tricky, easy to put on backburner
  • Helpful to see how others work
  • Friendly, supportive environment
  • Community is key. Thank you, community!