Is something like DRY a design pattern, a methodology, or something in between? They do not have specific implementations that could neccessarily be demonstrated(even if you can easily demonstrate a case NOT using something like KISS... see The Daily WTF for a plethora of examples), nor do they fully explain a development process like a methodology generally would. Where does that leave these types of "rule of thumb"'s?

  • 21
    DRY SOLID KISS... I don't know if that makes software design more appealing, or less... – FrustratedWithFormsDesigner May 2 '11 at 19:11
  • 12
    Acronyms? (Grinning, running, and ducking.) – Warren P May 2 '11 at 19:45
  • 2
    @Warren P: That becomes GRAD... Hmmm... – FrustratedWithFormsDesigner May 2 '11 at 20:09
  • 1
    a DRY & SOLID KISS is definitely better than a wet & weak slurp... – JustAMartin Feb 20 '13 at 9:23
  • Marketing delivered buzzwords. – Emilio Garavaglia Sep 21 '16 at 21:21

According to Wikipedia it is a principle of software development.

In fact, Wikipedia refers to all of them as principles:


In software engineering, Don't Repeat Yourself (DRY) or Duplication is Evil (DIE) is a principle of software development


KISS is an acronym for the design principle "Keep it simple, Stupid!".


The principles when applied together intends to make it more likely that a programmer will create a system that is easy to maintain and extend over time

  • 1
    Is there any good tutorial with examples that helps understand on how to apply these design patterns... – Krunal Feb 14 '14 at 13:54
  • 2
    Design patterns are different. As the answer states, these are principles which should guide you in your day to day design and development. For examples and tutorials there are many in the web. Here is one such: blog.gauffin.org/2012/05/11/… – Jonn Oct 16 '15 at 7:55
  • 2
    Another opposite of DRY is "WET": write everything twice. – Dr Rob Lang Aug 30 '18 at 14:04

I'd say that they're basic engineering principles.

A methodology can have n principles.

And they're definitely not design patterns :)


These are the guidelines for your everyday work, crossing the boundaries of layers, problem domains and technologies.

They also form what you would call a philosophy defining your professional practice.

  • And they need not apply just to software development - well ok, SOLID really only applies to software development but the other two are very general, and can be applied independent of any specific industry! – FrustratedWithFormsDesigner May 2 '11 at 19:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.