The first thing I noticed once my company had more members than just me was the need to track and version our code base. To get you started, here are some things you should consider.
Version control
At both of my startups, we use git for version control. It works really well and the branch/merging/tagging system is awesome. If you’re unfamiliar with git, check out Git Immersion. One thing I should mention is that if you are working on an iOS project and using git, you will want to make sure you create a .gitignore file otherwise you’ll run into some issues when team members open your shared project. Here are some instructions on configuring your .gitignore for xcode.
Code Storage
In a distributed code environment, each member of your team has the ability to checkout and commit new code to the project. In order to do so, you need to have the code base hosted in a central location. We use Dropbox has our repository. It’s free (up to 2GB) and it works really well. For general instructions on how to set that up, check out this stackoverflow post: git+dropbox?. You can also sign up for paid accounts on Beanstalk or Github to keep private repos at their sites. These paid services also have additional services that are not available by going the Dropbox route.
Email notifications
I can not stress enough how important it is to have email notifications on code commits. I know what you’re thinking, “I’m gonna get an email every time someone commits code?!? That’s annoying!” You’ll be surprised how beneficial this is. Not only is it useful for tracking down bugs that may have been *inadvertently* introduced but if you assign the email receiver to a group email, everyone on your team can keep a pulse on how the project as a whole is progressing. You can always create an email filter to manage these message. Here is a neat little plugin that will allow you to send HTML style emails on every commit- https://github.com/bitboxer/git-commit-notifier
Tools
Before committing or merging any code I usually fire up gitX to review my changes. It’s also a good way to see a graphical representation of your git commit, branches, and other related info.
Disclaimer:
I know some of you may be thinking “but XCode has SVN support!”. Trust me, you will learn to love life a little more if you try out git. If SVN is working for you in XCode, great! This article is not for you.