На мой взгляд, вы хотите иметь ограниченный набор ветвей, на которых вы можете сосредоточиться. Поскольку вам нужны тесты, показатели качества кода и много интересных вещей, которые можно выполнять со сборками, слишком большое количество отчетов, вероятно, заставит вас упустить информацию.
Когда и что разветвлять, обычно зависит от размера команды и размера разрабатываемых функций. Я не думаю, что есть золотое правило. Убедитесь, что вы используете стратегию, в которой вы можете получить обратную связь рано / часто, и это включает в себя качество с самого начала функций. Бит качества означает, что по мере того, как вы автоматизируете работу по мере развития команды, если вы переходите на большой набор функций, которые строит команда, вы должны также привлекать к работе качество.
ps. Где вы взяли эти подходы? - не чувствует, что эти графики представляют все варианты
Обновление 1: Более подробно о том, почему я сказал, что это не золотое правило. В основном для относительно небольших команд я нашел, что лучше всего использовать подход, который является смесью. Ветви объектов создаются, если это что-то длинное, и часть команды продолжит добавлять меньшие функции.