views:

286

answers:

12
+3  Q: 

Coding as a team

Hi there,

Lets say that me and my friend are trying to work on same software project. We are not located on same location but we wish to be as productive is possible.

We are using Visual Studio 2005, the code has to be written in C/C++ and at this moment we send the code using zip files.

My questions are:

1) what approach should be used sharing code in order to be more productive.

2) are there any free online platforms good for that?

3) do you have any advice for us?

ps: I own a webserver account with linux hosting. What can i install on that server in order to improve our working status.

+8  A: 

A source control server, ala svn server, or whichever is your preference.

You can commit your code, and your friend can then update his based on your changes, without having to send or receive email. Most source control suites also have built-in merge handling too, so you can see the changes he made and solve any collisions with any changes you've made.

Update
People have begun recommending some good online source control, so I'll also add links to other questions for online source control hosts. Have a look at those too.

Andy
I can personally recommend Unfuddle: I use it free for a personal project, and it works a treat, they'll host git or Svn. http://unfuddle.com/about/tour/source
Binary Worrier
Thanks for the suggestion - I've not heard of those, so may have a look at them too
Andy
+1  A: 

For the immediate win, any sort of version control system.

Install and set up subversion on Linux, get AnkhSVN if you want to integrate it with Visual Studio or TortoiseSVN for Windows explorer integration.

ijw
+1  A: 

I use subversion repositories hosted on dreamhost for collaborative projects. Dreamhost's hosting is not free, but it is relatively cheap - on the order of $100 a year. I think there is also a discount still in place for SO podcast listeners.

You can also set up your own subversion server in your home or office. It is easiest to do on a Linux box, but I have also done it on a Windows 2000 Server machine using cygwin. There is a good tutorial on this here: http://www.coderhaus.com/?p=8

Clayton
A: 

The first thing I really recommend you is to use Source Control, Subversion can be a really good alternative.

CMS
A: 

In addition what was said earlier, you might want to check out a distributed VCS. For example, GIT or Mercurial.

msiemeri
+2  A: 

Use versioning control software. Free subversion hosting lists:

You can also find more googleling.

backslash17
Opensvn.csie.org is in Chine (Take your conclusions from that) and it's terribly slow!
simao
A: 

You can setup up 1 svn repository and up to 3 users for free on Beanstalk.

Davorin
With about 1kb of space
Dan
+3  A: 

On top of version control which has been mentioned a few times already, you should also look into a project management tool such as Redmine(http://www.redmine.org/) or Trac(http://trac.edgewall.org/).

I find it can really help the efficiency of a team, especially when meeting face to face isn't always an option.

EvilRyry
+2  A: 

In addition to souce control, you might also sign-up for a free, hosted issue tracking tool like bughost.com.

JP Alioto
+1  A: 

I've had a very good experience with Git and GitHub.

Jake
A: 

based on what you describe I think git will work well for you as a source code control tool.

yetanotherdave
A: 

My advice would be

  1. Use a D-VCS such as git or mecurial. It is designed for distrubted teams.
  2. Use a project managment tool such as base camp to manage your project.
  3. Talk to each other regularly. Get Skype set up and if possible try and communicate once or twice daily. Email is sometimes not an effective medium for communication.
John Nolan