Кто что думает про коллективное программирование?
Была практика работы в паре:
Один сидит за клавиатурой, второй рядом. Каждый час меняемся. 
Итог: более чистый код, но количество кода в день (и, соответсвенно, количесво выполняемых задач снизилось по отношению к двум работающим паралельно.)
Пришли к выводу, что лучше кодить паралельно, но делать ревизии в чужой код (хотябы раз в день).
Если два программиста зрелые и самостоятельные, то на мой взгляд оптимальнее всего, сначала согласовать структуруру проекта, нарисовать диаграммы классов, и другие диаграммы по необходимости и каждый пусть кодит свой кусок, время от времени просматривая весь проект.

Программирование в паре нужно когда уровень одного сильно превосходит уровень второго, тогда программирование в паре позволит быстро подтянуть новичка на новый уровень, и начать давать небольшие самостоятельные задачки. По этой теме есть плагин www.opennet.ru/opennews/art.shtml?num=36979 (использовать не пробовал, но для такой методике вполне полезная штука)