Since it has already been discussed in other answers why pair programming isn't a solution for youwhy pair programming isn't a solution for you, I will discuss what we have currently experimented with, and are satisfied with the results.
In my view what you can do to increase collaboration is to have two people together on each project. Each of them works on a different part of the project, but because these parts have to be integrated the two developers have to collaborate. This also requires that the two programmers discuss the architecture (layering and interfaces) of the project, and then decide to take on different roles.
And, if this approach, limits the number of projects your company can handle at a time, you can assign this collaborating pair two projects simultaneously.
We recently experimented with this approach, having one of them develop models + integration with apis and the other programmer handling views and controllers. We have found following advantages of this setting:
- The code structure results out in a much better way than if only one is working on all aspects of the project.
- We don't have to remind them about committing code to repository etc.
- They have to put some effort in testing each others code, instead of relying solely on our dedicated QA for it.