views:

127

answers:

4

This question is a follow up for this question: http://stackoverflow.com/questions/2083020/need-some-advice-about-web-development-project

I would like to know if there are techniques or tools we could use in order for us to do our project effectively. To make this more specific, I'm basically looking for something that will help us work on the source files together and see changes, etc. (As opposed to emailing each other the .html, .php files and then reviewing the changes)

Does an SCM make sense here? Or should I be looking for something else?

+3  A: 

You obviously want to use source control. Its one of the basics for working on software - you'll be quickly laughed at for not doing so. Its really pick your poison - I would strong recommend Git via a site such as Github or Gitorious, though there is nothing wrong with using Git in a purely distributed nature.

Other candidates are Mercurial, Bazaar, and Subversion. Subversion requires setting up a server, though its very simple (yet limited) model may suffice for you.

For communication, KISS is my philosphy - e-mail is not broken, use that. There are project management applications, but they require effort to administer and use, which could be used writing software. As your team scales, more administration is inevitable, and there more tools can help.

Yann Ramin
+1 for "email not broken". Learnt this pleasantly :-) Also, very specifically, in these times of botnets, bad security practices, and zero-day attacks, *maybe* reading email in a plain text email client is probably safer than having 5 web accounts open in your browser tabs and getting cracked via XSS/CSRF and phishing. Not Outlook Express. And not MS Outlook defaults. Plain text.
namespaceform
+2  A: 

As far as I can gather the main driving factors, and please correct me if I'm wrong, in you situation for establishing the collaboration environment are:

  • A team of 4-5 people with limited programming experience.
  • 3 months time cap for the initial product.
  • No existing dev environment you could easily re-use.
  • Due to other commitments team members won't be working on the project full time, individual working hours will vary and sometimes going to be fairly odd (i.e. 1am).
  • Ideally given that the project is successful scaling dev enviroment or simply rotating people has to be easy.
  • The project sounds as a non-profit and hence doesn't have to be run as proprietary.
  • Selecting and setting up individual software products for source control, issue tracking, wiki, forums, backups, remote access from scratch and making them work well together may be fairly time consuming especially if you haven't routinely done it before.
  • Bonus points if students could get an idea of what a good collaboration and development environment should be or even better could learn how to use a popular existing environment.

Taking all of the above into account I suggest using one of the existing Open Source hosting platforms:

From what I understand it doesn't seem there going to be any value added to this project by rolling your own dev enviroment, just extra work and risks.

Totophil
Source Control is a must if you want to develop as a team. I've been using Subversion for a long time now, and it's definately worth it (btw, it's free).
jao
+1  A: 

Without source code control, you simply cannot do anything useful.
I use subversion.
As for project tools, maybe assembla.com, with opensource option?
I like and use it, though you might want to use the standard FOSS sites mentioned by Totophil

Paid option also exists and assembla.com is cheap - around $2-$3 per month per user (opensource is free)

namespaceform
A: 

Using a SCM is a minimal requirement for serious programming period.

I can't figure how some people can code (even alone) without using one. There is a lot of good and free SCM (my favorites are Git and Mercurial) out there, there is no excuses not using one.

Collaboration can be achieved in many ways. Minimal solution would be E-mails, forums, mailing list, irc channels, skype (or other instant messaging software), etc. If you want more visibility and better integration with your SCM, you can check out tools like Redmine, Trac (self hosted) or Assembla, GitHub, SourceForge, BitBucket (source code hosting providers).

esavard