The extreme in eXtreme Programming (XP)

My first exposure to anything Agile was with eXtreme Programming (XP) back in 1999. While it had many process steps similar to what Scrum and Kanban offer today, the thing that really differentiated XP was it’s focus on technical practices. It’s those technical practices that we are usually referring to when we talk about XP today.

The big rewrite

I remember once having two back-to-back clients who had just rewritten significant systems in their environment. I asked why they’d chosen to rewrite the system from scratch rather than just fixing them as they were.

Scouting rule

We often talk about the scouting rule of “always leave the campsite cleaner than you found it”, or in a software context “always leave the code a little bit better than you found it”.

Quality

The theme for this week seems to be quality so let’s look at some different aspects of that.

YAGNI (You Aren’t Going to Need It)

YAGNI (You Aren’t Going to Need It) is a principle that keeps us from over-engineering the system. Build today only those things that you need today. Things that we need tomorrow, we can build tomorrow.

Hot-fixes

It used to be common that we would have two different ways to deploy something to a production environment.

Mocking frameworks

I’ve recently noticed a number of posts criticizing mocking frameworks, where half the responses are defending the idea of mocking rather than talking about the frameworks that had been called out1. Let’s be clear that those are two completely different things.

  1. This is an example of a psychological phenonomenon called Attribute Substitution where we are faced with a computationally difficult decision, we will often substitute a more easily calculated decision in it’s place and answer that instead, without even realizing that we did this.