KISS – Keep It Simple, Stupid
The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore simplicity should be a key goal in design, and that unnecessary complexity should be avoided. Wherever possible, complexity should be avoided in a system—as simplicity guarantees the greatest levels of user acceptance and interaction. KISS is used in a variety of disciplines, such as interface design, product design, and software development.
YAGNI – You aren’t gonna need it
YAGNI is principle of extreme programming (XP). It states that a programmer should not implement functionality until deemed necessary. Ron Jeffries who is the founder of XP states that “Always implement things when you actually need them, never when you just foresee that you need them.”
DRY – Don’t Repeat Yourself
The DRY principle is principle of software development which aims to reduce repetition of code by abstraction. A simple example would to create a function for a piece of code which is repeated and replace it with the function calls.
DRY has been formulated by Andy Hunt and Dave Thomas in their book The Pragmatic Programmer. It has been stated that “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system”.