A search for design patterns that landed me in TDD

During my college days, "Design Patterns" was one of the topics that caught my attention. It wasn't part of our curriculum. The aspect of design patterns that mainly seemed very attractive to me was that by using them, a developer with less experience might be able to produce the quality of design an experienced developer can come up with.

I was looking for an open-source codebase that has used some of the design patterns. One recommendation I received from an online source was that the JUnit codebase is a good place to look for the implementation of some of the design patterns.

I learned how to use JUnit to write automated tests, without which I could not have understood the codebase much. I started reading the JUnit codebase, and it wasn't an easy journey, considering my limited experience with real-world or decently sized codebases.

I am happy that I decided to read the JUnit codebase back then. It gave me confidence that I could read and understand open-source codebases. There were several situations where I had to read the source code of the libraries/ frameworks to better understand the context. In fact, after almost two decades of this incident, once again, I had the chance to visit the JUnit source code in order to develop a framework by extending JUnit.

Merely by writing automated tests, one will not get used to Test-Driven Development. How I got into Test-Driven Development through Extreme Programming (XP) is a story for another post.