Guard Clause

Guard Clause

Complexity in code makes it harder for to understand what the code is doing. The smallest unit of our code tends to be the function or method. You should be able to look at a given function and quickly determine … Continued
Explicit Dependencies Principle

Explicit Dependencies Principle

The Explicit Dependencies Principle states: Methods and classes should explicitly require (typically through method parameters or constructor parameters) any collaborating objects they need in order to function correctly. If your classes require other classes to perform their operations, these other … Continued
Hollywood Principle

Hollywood Principle

The Hollywood Principle states, “Don’t Call Us, We’ll Call You.” It’s closely related to the Dependency Inversion Principle, and illustrates a different way of writing software from the more traditional form of programming in which one’s own code dictates the flow … Continued
Keep It Simple

Keep It Simple

The KISS principle, or Keep It Simple, Stupid, spans many trades, industries, and professions.  The more complex something is, the more ways there are for it to fail, and the more difficult it is to explain to someone else who … Continued
YAGNI

YAGNI

YAGNI, or “You Ain’t Gonna Need It” (or “You Aren’t Gonna Need It”), emerged as one of the key principles of Extreme Programming.  Put another way, the principle states: “Always implement things when you actually need them, never when you just … Continued
Boy Scout Rule

Boy Scout Rule

The Boy Scout Rule can be summarized as: Leave your code better than you found it. Boy Scouts have a rule regarding camping, that they should leave the campground cleaner than they found it. They don’t take it upon themselves … Continued
Simplicity

Simplicity

Simplicity is one of the Values of Extreme Programming.  It guides and underlies many XP and Agile Principles and Practices.  From extremeprogramming.org: We will do what is needed and asked for, but no more.  This will maximize the value created … Continued
Communication

Communication

Communication is a key value in Extreme Programming. Software projects require a great deal of communication. If you’re writing an application just for your own use, then the communication channels are all extremely fast, making for very tight feedback loops. … Continued
Feedback

Feedback

Feedback is an Extreme Programming value: We will take every iteration commitment seriously by delivering working software.  We demonstrate our software early and often then listen carefully and make any changes needed.  We will talk about the project and adapt … Continued
Courage

Courage

Courage is one of the Values of Extreme Programming.  To wit: We will tell the truth about progress and estimates.  We don’t document excuses for failure because we plan to succeed.  We don’t fear anything because no one ever works … Continued