14

I need to work with 4-5 programmers on a fairly average PHP application using codeigniter. We're in 5 different locations in one city, and all of the programmers are all not too well educated and I'm assuming that most of them have never used any version control system.

Can you recommend some very very easy-to-get-into platform for collaborating on a project like this? I'm talking about something that is only a tad more sophisticated than a shared dropbox folder.

2
  • You used github as a tag. Github is very nice - do you have the money for a private repo?
    – user1249
    Jul 16, 2012 at 14:49
  • I recommend SourceAnywhere Hosted. It's very intuitive to use the product. Actually, if you search for version control, you'll find many good suggestions/tools. If you want to shorten the learning curve, besides the product itself, bear "good customer service" in mind when choosing a product. Because it means you'll have good training and technical support from the company.
    – Windy
    Jul 17, 2012 at 5:23

6 Answers 6

12

You already know the answer

Version control was designed to solve this exact problem. If your developers are unwilling to learn to use this standard development practice, you may need to reconsider your developers. What kind of software are they going to churn out if they're showing an aversion to standard accepted practices, as well as an aversion to learning new things?

I would suggest having them read Pro Git and setting up a private git repository for your team.

6
  • 2
    I neither have the option to pick other developers, nor to have them learn version control. Trust me, I'd prefer both. But I can't - that's the reason I have asked this question. There are plenty of amateur deveopers out there, what do they use?
    – Esuus
    Jul 16, 2012 at 14:38
  • 6
    They learn the proper tools or stay juniors forever. Jul 16, 2012 at 14:58
  • 2
    @Esuus It doesn't take that long to learn git: try.github.com/levels/1/challenges/1 Jul 16, 2012 at 16:46
  • 3
    @VirtuosMedia I don't think Git is exactly simple, SVN is much easier to grasp. Jul 18, 2012 at 6:19
  • 1
    I don't know about Git, but TortoiseSVN makes it really easy for inexperienced users to deal with SVN.
    – Brian
    Jul 18, 2012 at 18:35
4

...FTP

Ok, this is the way I started to collaborate, hooking up Notepad++ to FTP, backing up crap every 10 minutes in renamed folders really sucked, if you do this, for the sake of your project at least use version control at the server.

An online IDE

Cloud9 is very nice and has concurrent editing, however, it will cost you to have more than 1 private workspace to work with your team, but it is worth it.

...try Mercurial

If you don't find Git approachable enough by your coworkers, try Mercurial with TortoiseHG, which is a GUI client for Mercurial. It will take them two minutes to setup and less to start using it.

Have them use the GUI, they just have to learn to use 4 buttons (pull, update, commit, push) and learn 2 or 3 concepts in order to save and share their work.

Have them register in bitbucket. Create a repository for your project, and have them fork it so they can work in their own mirror of the repository and that way they don't have to deal with merging. You do the integration and just ask them to issue pull requests from their Bitbucket fork once they've pushed. Have them pull only from your repository (the one they forked from).

Learn Mercurial yourself so that you can solve all related problems, this is a good start: http://hginit.com/

Try both

You can use Mercurial from Cloud9, how cool is that?.

Stop assuming

If you are the one looking to use the correct tools you are already in a leadership position. Don't assume they're not educated and talk with them about how things are done in the real world.

Be enthusiastic about it an not patronizing.

It really doesn't get any easier than this if you want to do things right. If they expressly don't want to use version control then you might have another kind of more serious problem.

1
  • I feel like this is the best answer, as it's the only one that actually answers the question instead of patronizing the asker. I especailly appreciate the tips on how to make Mercurial easier for people (taking merging and integration out of their hands). This seems like the easiest way to do version control with people hesitant to participate. Thanks!
    – dallin
    Apr 19, 2016 at 16:36
3

I recommend your developers to http://try.github.com

But if no version control is possible, you could stick with something fit for the very beginner/junior that is basic (and archaic).

  1. the APP + DB on development server
  2. Everyone on the same messenger all the time while working so they can speak and know who's working
  3. Everyone edits live on the DEV server through plain old FTP
  4. Enforce team rules on updating a changelog with their revisions + making code comments crucial

The setup for your development server's web folder could also be svn checkout (or git) and you can setup the crontab to auto commit revisions every so often automatically or you can just install a backup or maybe rsync the folder to some other backup location for when they overwrite each others files (as it will happen) and you need to give Bob his changes he lost. Eventually after working with the system for a few months they are going to be begging you to give them svn/git access.

1
  • Even though all answers here were helpful (and because of them I'm now seriously considering if there is a way to make em learn GIT/SVN), you're the only one who actually answered my question. Thanks man.
    – Esuus
    Jul 21, 2012 at 0:46
2

I'm assuming that most of them have never used any version control system.

You need to correct that assumption and find out if they do or do not have any knowledge or experience of any version control systems. No point assuming when they could have knowledge.

As other answers have said, this is what version control is for. Git is probably the best way forward, and Learn Git is a really good starting point

2

Well, there is no way out than to use version-control.

Dropbox does have sort of version-control, but I believe that if two people save a file, the newer version will just replace the older version, which is not desirable for version control during software development.

Svn is an easy to learn (at least easier than git) version-control system, and you can find various public repositories hosted online, but I would not recommend it for geographically distributed teams.

So the way to go for ditributed teams is git. If having your source public OR buying a private plan is not a problem, then create a repository on github, otherwise setup a local git repository.

May be you can find a GUI for git which might make it easier for these developers to start grasping a version-control system conceptually. For Windows its TortoiseGIT. I haven't used any git gui client for Linux or MAC, so I won't recommend one here.

4
  • Dropbox has one advantage: you can get people using it who have never used source control systems in their life. This can be a major advantage when working with science professors… Jul 17, 2012 at 21:11
  • GitHub also has private repositories if you don't want to make your code public. Jul 18, 2012 at 7:24
  • @VirtuosiMedia Yes, I know that, but I am not sure if they are free. Jul 18, 2012 at 7:30
  • @OzairKafray They aren't free, but they're pretty inexpensive. The smallest plan gives you 5 private repositories for $7/month, plus unlimited public. Jul 18, 2012 at 7:33
2

You are on a right track

The version controlling is the way to go! It will serve well to collaborate code sharing and help with integration. In addition, frequent check-in(s) are very important discipline that all team needs to practice.

However, choosing the right version control for your project is very important.

There is a recent nice post and answers to help you decide : What is a good toy example to teach version control?

Not the answer you're looking for? Browse other questions tagged or ask your own question.