Здесь уже описывали:
Ты сочиняешь прогу, вот ты декомпозировал задачу и сосредоточился на каком-то элементарном преобразовании данных.
Знаешь вход и выход, осталось запилить само преобразование.
Пишешь функу (в первом приближении), запускаешь в репле и убеждаешься, что она работает как надо. Потом причесываешь её за 2-3 итерации «рефакторинга». И всё - модуль готов!
Переключаешься но следующее преобразование.
В итоге ты мозгом не растекаешься по всей системе и у тебя кусочек за кусочком она строится. При этом кусочки сразу отглаженные вдоль и поперёк.
А всю систему ты запускаешь потом. Один раз.
И после запуска если нужно доработать что-то, то зачастую не надо перезапускать.