How to multiple developers efficiently work on one force.com application

eclipse-pluginforce.comsalesforcevisualforce

The company I work for is building a managed force.com application as an integration with the service we provide.

We are having issues working concurrently on the same set of files due to the shoddy tooling that is provided with the force.com Eclipse plugin. If 2 developers are working on the same file, one is given a message that he can't save — once he merges he has to manually force the plugin to push his changes to the server along with clicking 2 'Are you really sure' messages.

Basically, the tooling does a shoddy job of merging in changes and forces minutes of work every time the developer wants to save if another person has modified the file he's working on.

We're currently working around this by basically 'locking' individual files by letting co-workers know who is editing a file.

It feels like there has got to be a better way in this day and age. Does anyone know of a different toolset we could use, process we could change, or anything we can do to make this easier?

Best Answer

When working with the Force.com platform my current organisation has found a number of different approaches can work depending on the situation. We all use the Eclipse Force.com plugin without issues and have found the following set ups to work well.

We have a centralised version control system that we deploy from using a series of ant commands to a developer org instance. We then depending on the scope of the work either separate it off into chunks with each developer having their own development org and merging the changes and testing them regularly, or working in a single development org together (which if you have 2 developers should be no major problem) allowing you to have almost instant integration.

If you are both trying to work on the same file you should be pair programming anyway, but if working on two components of a similar system together, sharing the same org can allow you to develop in a fast and flexible manner by creating the skeleton of the system you wish to use and then individually fleshing out the detail.

I have used both methods extensively and a I say, work really well depending on the situation.

Related Topic