I've worked with teams of different sizes: just me, a couple of developers (like my university classmates solving a homework problem), plus small and large teams at the corporate level and there's always a recurring problem of synchronizing the team's work. I've researched the problem and found there's many great tools out there to help.
I'll keep it as simple as I can and my recommendations may not work perfectly for your needs, so improve upon them or implement changes as needed (and be sure to leave me a comment!). First, I'll list the tools you can use to get the job done and how to acquire them, then make a short compendium of how git works, the main features, and how to use it. Finally, I'll illustrate an example showing how to integrate all of these.
For the sake of this article, I'll assume you're working with a decent operating system (i.e. a UNIX-like OS). However, if you want to try using Windows™, feel free to adapt this guide to your personal situation.
Available at http://git-scm.com/. Git is a free and open source distributed version control system.
The idea is to have access to a remote server that will hold the main (git) repository. You can easily set up one of your own, but it would be unnecessary work. There are several services that allow you to do that via simple registration. My favorite ones are https://github.com and https://bitbucket.org/.
Pros and Cons of GitHub
GitHub is one of the most used services and it has a great interface to manage your app repository. A huge number of developers are constantly adding millions of lines of code to several projects and you even can add those projects as sub modules to your own. The biggest pro: I like their web interface and their repository network map. Cons: there's no easy access to private repositories. What's bad about that? Well, for example, if you're coding something just for you and some university classmates and you don't want to make it public... then, you have a problem. Nevertheless, they offer you 5 private repositories for 2 years if you use your university email (because those have an edu FQDN). So you can add as many collaborators as you want to one of those. On the other hand, you have free public repositories and that has an advantage: you're building your CV intrinsically (there are a lot of people who can read your code).
Pros and Cons of BitBucket
BitBucket is also a top one. It has an easy-to-use interface and you can choose the type of repository (git, mercurial, svn, etc.), but I still miss GitHub's network interface here. Biggest pro: you can have as many private repositories as you need. The con: you have a limited number of collaborators, but that's okay for small teams (like working with classmates).
Using both of them together gives you enough storage capacity for your projects, but keep in mind that what I said above is more of a student approach. If you're in a company, please, pay for it! (unless you are a startup, that gives you up to 2 years to monetize, maybe less). Another advantage of using either or both of these is the option of using the wiki and bug tracking features. You can make a documentation and track the problems on your app. And who knows? If the project goes very well, you might see people requesting access to the project to collaborate.
GDocs & Hangouts
Several universities and corporations delegate the management of email, documents, calendars, sites and more to Google. Even if you don't have an official account for your university or company, you always can open a new Gmail account with all the aforementioned features. It will make the product documentation for your app and meeting people to discuss anything very easy.
Available at https://trello.com/, Trello is more than a to-do list. It's one of the best ways to organize all your team's work. You can: establish who will work on certain task; show how that task will be organized; attach files; create checklists and more. Again, you can access to this app via any of your Gmail accounts.
No doubt you will need to draw some diagrams and Dia is super easy to use. Dia is a GTK+ based cross platform diagram creation program. It's available at https://wiki.gnome.org/Apps/Dia.
- How to work with git.
- How to organize your work and interact with others
- A video example
This is the first post in a series I originally wrote on my personal blog: Using git and other tools to synchronize teams’ work: Introduction