Когда я работала проджектом в похожей ситуации с большим количеством проектов и небольшим количеством разработчиков, разработчики очень не любили переключение между проектами в рамках одного спринта, т.е. когда ты сегодня делаешь один проект, а завтра другой. Как текущий разработчик я их отлично понимаю) Для нас тогда оптимальной стала стратегия основной разработчик проекта + запасной. Основной разработчик (кстати да, все фулстеки были) вел свой проект полностью (с заказчиком не коммуницировал, этим проджект занимался), а также периодически посматривал в проект, на котором он числился запасным разработчиком. В случае болезни/отпуска основного разработчика в зависимости от состояния дел на проектах происходило переключение основных/запасных.
Конечно, по желанию разработчиков они иногда менялись проектами (но хотели не так часто, надо отметить).