Continuous Integration

Continuous Integration

Continuous Integration is an XP practice that ensures problems with the full system are detected as soon after they are introduced as possible. It refers to automatically building and testing the full system (integrating the system with all of its … Continued
Naming Things

Naming Things

It is hard to overestimate the importance of choosing good names for source code elements in software development.  Much has been written on this topic, and it is often a source of great debate.  “What makes a name good, or … Continued
Whole Team

Whole Team

An XP Practice, Whole Team refers to the idea that the team involved in building an application or delivering a project is the whole team. If the project needs UI design, or testing, or data modeling, the individuals with those … Continued
Dependency Injection

Dependency Injection

Dependency Injection is a technique that facilitates loosely coupled object-oriented software systems.  It is closely related to the Dependency Inversion Principle.  In simple systems, references to collaborating objects are made directly within classes that need to refer to them.  This … Continued
Test Driven Development

Test Driven Development

Test Driven Development, or TDD, also known as Test Driven Design, is a process for writing code using tests to define and then confirm the software’s behavior. It is characterized by a set of steps known as “Red – Green – … Continued
Code Readability

Code Readability

Writing code that is readable is critical for any software application that needs to be maintained for any length of time.  There are valid performance and anti-theft reasons tominify or even obfuscate code that is being deployed, but the source … Continued
Know Where You Are Going

Know Where You Are Going

Don’t just code with blinders on – understand how what you’re building will be used and the problems it’s meant to solve. As developers, it can sometimes be tempting to focus purely on the technical, engineering challenge of the task … Continued
Pair Programming

Pair Programming

Pair Programming refers to the practice of having two people engaged together on a single programming task.  It’s an XP practice, and is employed by many agile (and non-agile) software development teams.  Even in traditional environments where pair programmnig is … Continued
Dogfooding

Dogfooding

Dogfooding is short for “Eating your own dog food,” which represents the practice of using your own products.  For software developers, that means working with, as a real user, the applications you’re building, or at least working closely with people … Continued