Over the years I’ve noticed a shift in attitude towards design patterns, particularly amongst the emerging generation of developers.
There seems to be a notion these days that design patterns are silver bullets that instantly cure any problem, a proliferating idea that advancing as a software engineer simply means learning and applying more and more patterns. When confronted with a problem, developers no longer strive to truly understand the issue and design a solution – instead they simply pick a design pattern which seems to be a close fit, and try to brute-force it.
You can see evidence of this by the many, many questions on Stack Overflow that begin with the phrase “what pattern should I use to…”.
I fall into a slightly more mature category of developers (5-10 years experience) and I have a very different viewpoint on patterns – simply as a communication tool to enhance clarity. I find this perspective of design patterns being lego bricks (collected like pokemon cards) a little disconcerting.
Will developers lose this attitude as they gain more experience in software engineering? Or could these notions perhaps steer the direction of our craft in years to come?
Did the older generation of developers have any similar concerns about us? (perhaps about OO design or similar…). if so, how did we turn out?
8
Things are better now because they can ask and we can correct.
There was a time maybe ten years ago where patterns were being discussed in the popular press. The story went that in a few years you wouldn’t need programmers, you’d have one architect who would coordinate the work of 50 students (All off-shore) trained in the basic patterns.
1