Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

Patterns are not buzzwords

buzz·word

  1. A word or phrase connected with a specialized field or group that usually sounds important or technical and is used primarily to impress laypersons: "'Sensitivity' is the buzzword in the beauty industry this fall" (ADWEEK).
  2. A stylish or trendy word or phrase.
  3. a word or phrase that is frequently used because of its importance or popularity especially among a certain age-group or profession
    Example: `Recycling' is the new buzzword.

I'm kinda poking fun at a coworker here with this.  He didn't specifically say that "Strategy", "State", "Supervising Controller" or anything like that was a buzzword, but I recall he did say "Open-Closed Principle" (which is, of course, a principle of OO, not a design pattern) is a buzzword, or something like that.

Patterns are not buzzwords.  At least not in the way that I think of what a buzzword is.  I did find a source that defines buzzword as "a word or phrase, often sounding authoritative or technical, that is a vogue term in a particular profession, field of study, popular culture, etc."  But what it neglates to elaborate on is the fact that buzzwords have a lifespan.  They are short-lived in their meanings, usually no longer than a few years.  Software design patterns do not fit that category.  They are long lasting, have concrete definitions and stand as a solid form of communication in the industry.

I've heard on occasion people call patterns, practices or principles buzzwords.  In fact, they are not.  They are a form of communication amongst a group of people, in this case, developers and even managers, to simplify and create more effective communication.  A common and efficient language is critical to a properly built and well oil development machine.

Its so much easier to say "I'm going to decorate this class." than it is to say "I'm going to add some sort of dynamic functionality to this class."  Ok, not too bad.  But now, how about take something common like a factory pattern.  Yeah, NOW how much easier is it to say that you're going to implement a factory pattern, rather than go all out and talk about how you're going to be designing an interface for creating objects, but your implementation is going to be allowing subclasses to make the decisions on which actual instances of classes they want to create.  If someone tells me template, I know what they are talking about without further explanation.

Its important to know and understand design patterns, otherwise when someone else tells you they are going to implement a strategy and get rid of the switch statements, you might be uneasy about what it about to happen if you don't understand what they are talking about.  The best way to learn them is to write code.

Here is more information regarding "patterns" and "communication" here on CodeBetter.

This entry was posted in .Net Development, OOP, Patterns and Practices. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

8 Responses to Patterns are not buzzwords

  1. Free Online Dictionary defines buzzword as:
    buzzword – stock phrases that have become nonsense through endless repetition

    Oooppsss!!!

  2. I don’t see Design patterns as buzzwords – even though people can (mis)use them as such for instance in the organization I work some people want to know what patterns you used in solution as part of judging the quality of a design.

    The way I see it, patterns are important both as a vocabulary since you can save time by talking about an agreed upon term – however that is only important for the more popular pattern (like the GoF ones).

    Another important aspect of patterns, in my opinion, is that it is a way to document design templates that not only shows you a solution but also discusses the alternatives and consequences of applying them. This means that if you have a problem you can take a look at a pattern catalog and find something that can help you and not buy a pig in a poke

    Arnon

  3. Andy F says:

    Words mean things. :)

  4. I can no longer do a design session without using patterns as a part of my language. Patterns are not buzzwords for me, however some candidates I interview pepper their resume with them yet show their lack of knowledge when pressed. In that sense, I’d have to say that the buzzword-iness of a pattern is dependent on the person talking about it.

    When I talk about SOA, those three letters represent a large set of patterns both in terms of software and business. Others revel in the hype around SOA, EDA, and ESB bandying them about as if they were going to get a nickle for every time they mentioned them.

    One litmus test that can be applied is to ask what literature they have read about the pattern/topic they just mentioned and what other patterns they think should be used in conjunction with it. I’ve found that that separates the wheat from the chaff pretty quickly.

  5. DevPrime says:

    Actually, like buzzwords, patterns have lifespans too. The very nature of a pattern is a useful construct of common code, which, once it becomes less than useful either evolves or dies. Take M-V-C, as a classic and oft-used term of late. And that’s precisely the usage the authors intended – a practical approach to solving programming problems.

    But, I do agree with you though. The lifespans of patterns (at least useful ones) are a lot longer than your average buzz-term. :-) Also, there’s a difference between jargon and lexicon. I understand your pain because I know people who dismiss important programming terms too. Lexicons are incredibly important as a communication protocol between people in the same field of work. It prevents miscommunications by using specific field-related terms, which are definitely important.

    But, my corollary to “patterns are not buzzwords” is “patterns are not rules”. Unlike a principle such as, say gravity, patterns are perishable goods and have a lifespan of usefulness. Once technology makes a pattern useless it dies (or evolves into something more useful). So in addition to the importance of knowing patterns, it’s equally important to understand the nature and inner workings of a given pattern and why it’s useful. In the end, knowing that is what makes good architects (rather than just someone who memorizes GoF at face value).

  6. sergiopereira says:

    Anything can be a buzzword. It all depends of who uses it in which context. I have participated in conversations where the term “Abstract Factory Pattern” was thrown out by someone that a minute later realized did not know what he was really talking about.
    When used without the buzz-effect purpose, any buzzword can be useful to convey a lot of information.

  7. rlewallen says:

    “Test Driven Design” = Buzzphrase Phil. :) I’m not so sure about refactoring as a buzzword though. I’m going to have to think on that one. The meaning of refactoring is not short-lived and is unchanging in definition.

  8. Haacked says:

    “Buzzword” is a Buzzword. It’s in vogue as a way to label something you don’t understand and don’t care to try and understand. It’s a good way to dismiss something so you don’t have to try.

    “Refactoring is a buzzword. Test Driven Design are three buzzwords.”

Leave a Reply