Writing code in teams is always collaborative. But how to perform effective collaboration practices like pair programming or code walkthroughs in remote settings?
What is Collaborative Coding?
Collaborative coding is about interpreting coding as a collaborative effort and providing tools and practices which improve the depth and productivity of code-level collaboration - especially in fully or partially remote settings.
Why use it?
Important code-level collaborative practices like pair programming, code walkthroughs, and walking around and ask others for feedback do not work out-of-the-box in remote settings.
How to do it?
There are at least three different kinds of collaborative code practices which can be enabled by different kinds of tools:
- Social coding: Code sharing and accessibility (with tools like GitHub, Gitlab), and Bitbucket
- Driver / navigator pattern: The driver writes code, and the navigator tells the driver what to do. Driver and navigator swap their roles from time to time. You need nothing more than a video conferencing solution for a driver / navigator collaboration.
- Code discussions: Comment, peer review, and discuss code with inline comments, Google Docs like commenting & suggestion features (e.g. provided by codestream, TeamHub), peer review tools (like Upsource), or pull/merge requests in social coding tools.
- Co-creation: Writing code together simultaneously by working in a shared editor. Changes of everybody are visible in realtime. There are desktop-level co-creation tools like USE together which are not stitched to any dev tool or realtime collaboration editors like floobits, VS.code Live Share, or Atom Teletype