Мое видение процесса — разбить все на маленькие задачи, одна задача — один человек, задачи в виде древовидной структуры.
По каждой задаче тот, кто ее решает, делает оценку времени на реализацию.
Потом в конце каждого дня каждый разработчик вносит, сколько по какой задаче было потрачено времени. При необходимости изменяет оставшееся до конца задачи время (если не менять, то оно будет уменьшаться само по мере того, как разработчик будет вносить потраченное на эту задачу время).
В результате можно в любой момент видеть прогресс по задачам и проекту в целом.
Софт — самому интересно, недавно поднимал здесь тему. На небольшом проекте реально все делать на листе экселя, но автоматизация может все сильно упростить…