TDD and complexity →
Imagine each side of the balance sheet contained only one number. Would the process have value? No. Imagine that each side had a thousand numbers but they were entered in exactly the same order, and were added on exactly the same row as their counterpart on the other side. Would you ever need to total the numbers? No. You wouldn’t even need two sheets. You would spot any problems as you entered the details.
Now imagine the real world example that there are thousands of numbers being added to each side of the balance sheet in completely random orders at different times. Varying numbers of out-going items for each incoming item. Now do you want the practice? Of course you do.
What’s the difference? It’s the scope of the work required to consolidate everything.
I can’t claim to be a stringent practitioner of TDD, but having a good test suite improves confidence in the software. The balance to strike, and I’m still not sure I do that consistently, is making tests that are neither too close to the actual code nor so far removed that they test the whole system.