What is the recommended team development workflow when developing Umbraco sites?

We are a small team of .Net developers that will be soon be starting an Umbraco project. I have several questions surrounding team collaboration when creating Umbraco sites.

  • What is the recommended team development workflow when developing
    Umbraco sites?
  • What is the best way to keep local development environments
    synchronised?
  • Are there any issues with sharing a database?
  • Our usual CI/CD pipeline would be to use GIT, TeamCity and Octopus
    deploy. Is this possible with Umbraco or is there a better approach?
  • What is the best way of managing multiple environments (Dev, UAT,
    Production)?

This is a companion discussion topic for the original entry at https://our.umbraco.com/forum/106601-what-is-the-recommended-team-development-workflow-when-developing-umbraco-sites