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
Vertical Slices

Vertical Slices

Software systems often are broken up into a series of layers. Typically, these are drawn as horizontal boxes, such as in the diagram shown here, and represent different logical components of the system. There is value in separating an application … Continued
Whole Team Activity

Whole Team Activity

Software development is a whole team activity – avoid silos and barriers to communication.  Extreme Programming introduced the idea of the Whole Team, which includes business representatives, testers, and of course programmers.  These teams work together, ideally within the same … Continued
Pain Driven Development

Pain Driven Development

What is Pain Driven Development (PDD)? It means waiting to apply principles, patterns, and practices to your code until there is some pain the current approach is causing that must be addressed. It’s a variation of YAGNI that ensures you … Continued
Read the Manual

Read the Manual

A great deal of the time, software developers can mostly figure things out by just trying things, and seeing what fits.  Maybe it’s a matter of trying different combinations until the compile error disappears, or maybe it’s a matter of … Continued
Rubber Duck Debugging

Rubber Duck Debugging

Sometimes the process of describing a problem, even to an inanimate object, can reveal the solution. Rubber duck debugging refers to the practice of using a small toy, like a rubber duck, as your first assistant when you are faced … Continued