Сильно зависит от структуры команды - может быть или не быть расслоение команды:
1. По крутизне (общий уровень);
2. По компетенциям (кто что делает в команде);
Может быть имеет смысл насильно ввести разделение по компетенциям (кто архитектор, кто реализатор, кто тестер и т.п.). Зависит от решаемых задач.
Форматы входа и выхода при делении разработки между программистами или вообще на блоки - описывать надо полностью. Какой формат конкретно выбирать под описание - зависит от того, что описываем
Документирование - логично выстроенная структура программы, правильные и короткие названия функций и переменных - снимают до 60-80% проблем с отсутствием документации.
Ну и общую структуру программы верхнего уровня, задумку и что на какие блоки делится надо конечно иметь описанное на не более чем 1-2 листах А4.
Добавлено спустя 4 минуты 4 секунды:В команде равных сработавшихся программистов в жестких сроках может быть всякая экзотика типа экстремального программирования - это когда в пределе на 2 человек дают 1 компьютер и они по очереди пишут код. Со стороны кажется неэффективным, но на самом деле это очень тяжелый и эффективный режим! Только нельзя его долго держать, не комфортно. Лучше такой режим включать в критическом состоянии типа проваливаемых дедлайнов и т.п. - не более чем на 2-3 дня.
1. Во-первых практически никаких посиделок в личной почте \ контактах и т.п.
2. Во-вторых человек начинает писать код сразу так, что его должен понять как минимум напарник
3. В-третьих у человека который отошел от компа появляется время подумать, что исключает затупливание на одном месте, ибо затупил - вали от компа