After 70 short 25 minute or so sessions of TDD with Access and RubberDuck VBA, what have I learned?
I have definitely learned that this is a really big subject and a big paradigm shift in my current programming style. Thinking about how to write code to keep it under test is one of the trickiest parts of Test Driven Development.
One of the commonalities to the way I program is thinking about how the code might break. I think about unexpected user inputs and possible corner cases like files that were there then they were deleted. Basically, expect the unexpected. In some respects this helps me to think differently about tests.
Another hurdle though is that I have always been a functional programmer vs an Object Oriented programmer. That is changing though and there is a lot of elegant code and interesting ways to program objects and interfaces. I really have been learning a lot over the last couple of years.
For a while I had an O’Reilly subscription and watched a lot of Uncle Bob videos. More than once! He is entertaining and very knowledgeable on the subject:
This is his first lesson in a series which can be purchased on his web site or you can get an O’Reilly subscription for a while and watch a large number of his videos there.
Another inspiration has been Michael C. Feather’s book: Working Effectively With Legacy Code
I have written a few unit tests for customers and for our Access JumpStart product, but I have to admit that it is not yet my norm. However I really like the idea and possibilities. I’d like my code to be easier to develop and allow my testing regime to help me continue right where I left off when coming back to a project.
So I am looking forward to continuing my journey, learning as much as I can, and maybe finding new ways to bring Extreme Programming (XP) practices including TDD and Pair Programming into my projects. Ultimately, I believe it is making me a faster and better programmer. Thanks for following along with me in these articles and I look forward to continuing the journey with you!