It's not about the destination, it's about the journey
posted Saturday, 11 October 2003
A while back, I got a chance to listen to Martin Fowler talk about his book entitled, Patterns of Enterprise Application Architecture. It was a very interesting talk that was filled with lots of interesting information about patterns. At the end of talk, there was the obligatory Q&A session. The session was very friendly until yours truly ask the question, “how does one deal with pattern abuse?” I very surprised to see that the question seemed to have caught Martin off guard. The message in his answer was that we needed to educate people on how to use patterns. Not that I had a different or a better answer to the question but, I guess I was looking for a nugget of wisdom. I felt as though as good as his answer was, it missed the real mark. I mean, pattern books are all the rage. There are plenty of articles and website spewing forth the knowledge of patterns. I can’t sit through a single Java presentation without hearing about patterns. Even so, people just get them wrong more often than we’d all like to admit.
It has now been several months since the encounter with Martin and I have just finished listening to Dave Thomas give an excellent talk on decoupling patterns. Sort of a pragmatic approach to patterns that help you to write loosely coupled code. During the talk, Dave made the comment that he does not like design patterns. I think I was the only one in the room that went ah ha! Everyone else just sort of tilted. After all, here was the great Dave Thomas, the pragmatic programmer speaking out against patterns. How dare he! Of course, he was politely asked to explain his position and his statement. In his answer was the golden nugget of wisdom that I had been searching for. The statement that crystalized all of my random thoughts on the subject was, and I quote, “A Pattern is something that you should “arrive at through design”. So, even though patterns are the destination, it is how we journey to the point of making a decision to use one pattern or another is what is important. Dave’s statement, IMHO, needs no further explanation.