Skip to content

How to code collaboratively?

In Geomatics, you'll do a lot of coding, and in a lot of assignments, you'll do this as a team. On this page you'll find a list of the different methods for collaborating and our recommendations. Underneath, you'll find a full list of the pros and cons of each method.

  • Meeting up and writing everything together on the same computer: Recommended for helping each other, and for starting new projects. Can be used in combination with a version control system (see below).
  • Sending each other snippets of code: Only recommended for helping each other if meeting up is not possible. Not recommended for projects.
  • Each person works on their own file and at the end you combine them: Not recommended without also using a version control system.
  • Using realtime code collaboration tools (like Google Docs but for coding): Not recommended without also using a version control system.
  • Using a version control system like git: Highly recommended to learn and start using as early as possible, even for small projects.

Pros and cons:

Method Pros Cons
Meeting up and writing everything together on the same computer.
  • Simple and no merging difficulties.
  • Easy to discuss, everyone knows what is going on.
  • Quick to make decisions and get things started.
  • No individual responsibilities.
  • Learning programming can be faster and more effective by writing code and experimenting yourself than by reading and discussing it.
  • Takes more time.
  • Sometimes difficult to schedule meeting.
Sending each other snippets of code.
  • Simple and quick.
  • No need for setup or installing any tools.
  • Very suitable for helping with bugs or quick suggestions.
  • Only for very small projects or quick fixes.
  • Difficult to track history.
  • Leads to mistakes and misunderstandings.
  • Difficult to work simultaneously.
Each person works on their own file, and at the end you combine them
  • Clear responsibilities of who works on what.
  • No need for setup or installing any tools.
  • Possible to work simultaneously.
  • Merging can be difficult and take a long time.
  • You only find bugs at the end, while combining.
  • Difficult to get an overview of the project.
  • Difficult to track history.
  • Only for small projects.
Using realtime code collaboration tools (like Google Docs but for coding).
  • Very easy to use.
  • You can see in real-time what people are working on.
  • No merge conflicts.
  • Requires constant internet connection.
  • Everyone needs to use the same software.
  • Often a paid feature.
  • Is missing many of the tools a version control system offers.
Using a version control system like git.
  • Tracks by who, when, and why changes were made.
  • Works from tiny to enormous projects.
  • Also very useful for individual projects.
  • Never fear to make changes, as you can always undo them.
  • No internet required, only when syncing changes.
  • Used by almost all big software projects/companies.
  • Can be used to back up your code.
  • Takes time to set up.
  • Everyone needs to download and learn the tool.
  • Can be intimidating to learn, especially the command line.
  • Merge conflicts can be tricky to solve.
  • Advanced features can be quite complicated.
  • You need to remember to commit changes and write a description.
  • You need to agree who works on what, because you only find out what your team is working on after they commit and push the changes.