in Jeremy Zawodny's blogPatterns were a fad, in the sense that suddenly they were essential, and six months after they were gone. However, patterns do have some benefits. For me, the largest one is vocabulary.
I assumed that design patters was a formal way of teaching folks to design their stuff the right way. You know, "here's the way to implement a foo... and here's how you do a bar." Something one step (or level of abstraction) above STL or other popular component libraries.
I'm a developer, but I'm also a teacher. I teach programming and design of software. I must say that I find it extremely difficult to teach software development. My efforts are more directed towards getting students interested and exploring on their own, than transmitting some kind of prepackaged knowledge. When they do get interested, doubts arise, and then I'm helpful as a guide more than as a teacher.
I believe software development can't be taught. Its an expertise that must be acquired by personal experience. It's much as with any physical sport, except that with sports this characteristic is more obvious. So, Patterns as a set of established practices which could be taught are more or less useless. Each pattern can be "taught" to someone who already figured a solution out of the problem, but it's not teaching. It's standardizing vocabulary.
A standard vocabulary is priceless when you are in front of a white-board, trying to sketch the design of an app with your team. You can't say Producer-Consumer in less than those two words. It becomes easy to discuss alternatives, without getting lost in small details. Big pictures, module decoupling, layer divisions, all become less fuzzy in a discussion, if it takes place at a higher level.
This is what I like on Patterns. That's where they excel, not in teaching, but in design.
Anti-patterns, on the other hand, can be taught to a good software developer. He will most certainly identify cases where an anti-pattern bugged him all along a project. They become a checklist of traps not to fall into.
Naturally, they are great for discussing designs, much as patterns are.
Posted by Sergio Carvalho at January 09, 2003 02:46 PM
| TrackBack