> The big win is that each function that gets split out has fewer reasons to change. The individual functions are therefore easier to maintain and understand.
Yet the namespace becomes more polluted and the interconnections between the functions becomes more complicated, particularly during debugging.
It's important to remember that "break big things into smaller things" only pushes complexity someone else rather than eliminating it altogether, while simultaneously increasing the overall complexity of the system by increasing the number of interconnections between the parts. That doesn't mean you shouldn't do it but you should be honest about the consequences.