4

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?

MattDavey
  • 7,096
  • 3
  • 31
  • 32
  • possible duplicate: [To design pattern, or not to design pattern](http://programmers.stackexchange.com/questions/95718/to-design-pattern-or-not-to-design-pattern) - I know it's not an _exact_ duplicate, but your question is more of a discussion starter than an actual question, and I think if we strip off its not constructive elements, the core question will be an exact duplicate. – yannis Nov 09 '12 at 17:36
  • also related: [Where do you draw the line for your perfectionism?](http://programmers.stackexchange.com/questions/36731/where-do-you-draw-the-line-for-your-perfectionism) & [Is perfectionism a newbie's friend or enemy?](http://programmers.stackexchange.com/questions/170731/is-perfectionism-a-newbies-friend-or-enemy) - If you read the three questions and update yours to differentiate from them _and_ be a bit less open ended, we might have a great question in our hands. – yannis Nov 09 '12 at 17:39
  • @YannisRizos perhaps I hit the submit button a bit too soon. I'll try and make the question clearer.. – MattDavey Nov 09 '12 at 17:43
  • Ok, closing to prevent further answers, flag for mod attention when you finish updating it so I can re-open. – yannis Nov 09 '12 at 17:45
  • 3
    "how did we turn out?" Iduno, how did you turn out? :) Juniors always have wrong-headed ideas, and everyone's a junior at some point. Some people stay there longer than others but I wouldn't expect juniors to be mostly right about much. Unfortunately ours is a craft which requires a great deal of practice to disavow yourself of stupidity, and even then you still do stupid things. Programming is hard, and in our own way we're all bad at it. – Jimmy Hoffa Nov 09 '12 at 17:49
  • Actually, that's precisely how Patterns are supposed to be used: apply them one after the other, and end up with a good design. If that doesn't work, it's the Pattern Author's fault. At least, that's how Christopher Alexander envisioned Patterns: he wanted ordinary people to be able to architect great buildings, for the simple reason that thare are too many buildings and too few architects. The same is true in software: the demand for software is growing faster than the supply of programmers, SW *has* to built by unskilled end-users following Patterns. There's just no other way. – Jörg W Mittag Nov 09 '12 at 19:03
  • 1
    Design patterns are both a communication tool to enhance clarity and canned solutions to common problems. Some programmer don't have enough experiences to having seen all, so knowing what patterns exist is good for them. Old programmers with a lot of experience now have an accepted named to call these solutions instead of explaining them again and again in communication. – Tulains Córdova Nov 09 '12 at 21:11
  • I find your mention of lego bricks to be [highly amusing due to Lego Mindstorms](http://www.generation5.org/content/2004/images/ris-programming.jpg).. – Izkata Nov 12 '12 at 21:10

1 Answers1

1

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.

Ian
  • 5,462
  • 22
  • 26
  • 5
    not needing programmers any more is a trope the media spins out every 10 years or so since the 50s. – jk. Nov 12 '12 at 15:01