Если есть условный год времени, лучше сделать несколько разных проектов. Чтобы занимали не более месяца.
Когда будете стартовать новый, будете учитывать предыдущий. В итоге должно получаться с каждым разом оптимальней.
Как вы себе представляете прогнозирование? Разработчик сам не знает, когда освободится.
Сделайте условные статусы и пусть они их себе присваивают. Например он всё сдал и ждет приема работы. Т.е. может взять мелкую работу.
Развернуть тестовый стенд можно из бекапа. Пусть трогают, ломают. Через планировщик просто разворачиваем бекап. Докер тут совсем ни к чему.
Ansible сценарии для окружения и управления пишутся за 1 день. Пример