Today the test suite was started. I already had an outline complete with classes and method stubs, a setup, and some utility functions for bringing in test data. But I was finally able to create some of those important changes that will basically be reproduced with some slight variations for most of the rest of the tests. I think what was the most important thing that was accomplished was a slight performance improvement. Nothing is finalized yet, since my overall performance based architecture is still very new, but the changes seem to be the best possible way to solve the problem, regardless of how the new architecture works out.
And yes, this does bring me back to the discussion, what if I had been practicing test driven development from the beginning? Would I have made these errors in the first place? I think that when starting a product from nothing, we sort of assume that the basic, "guess and check" methodology will work best since it appears that we are actually accomplishing something. Yeah, it does work and it makes us feel good. I probably won't stop in the immediate future, but the more I design tests that just feel awkward with the style that I've been coding, the more I want to switch to test driven development.
I think that practice is the keyword for today. When looking at a rather small "pile of code" one can not begin to think of it as one would a corporation with hundreds or thousands of employees. The numbers can not be compared. All that one can actually do is to keep practicing.