eXtreme Programming for Remote teams

Daniele Scillia (Dan The Dev)
Learn Agile Practices
3 min readMar 5, 2024

--

XP is the parent of a lot of best practices known today: when it comes to remote team, anyway, some of it’s values, principles and practices seems to be incompatible… but is this really the truth?

Introduction

Hello, developers! 🚀

I’m a big advocate of eXtreme Programming, as most of you already know: since the first time I read “eXtreme Programming: Explained”, this methodology has become part of my daily job as a Software Developer and it’s the core of what I typically bring as suggestion when I’m technical coaching.

Then, remote work became a habit and it seems that the direction where this type of work is going is diverging from the values and principles of XP itself; most people think that XP (and Agile) practices are not compatible with remote — but is this actually the truth?

Let’s dive into the issue and discover what I think about this!

This is what Ideogram.AI thinks a Remote Pair Programming session looks like.

Values and principles are universal

XP was my first step into the Agile world, and it was enlightening. I always tell this story: when I first heard about a methodology called “eXtreme Programming”, I immediately thought it was related to coding for hours overnight like in some movies — the word extreme in the name is pretty misunderstandable, to be honest.

Then I read the book and it the reason for the name became more clear:

It’s called “eXtreme Programming” because the idea is to take all the things that have proved to work well in programming and take them to their extreme.

Do writing tests work? Do it first!
Does working together work? Do Pair Programming all the time!
Does releasing more often work? Do it every day!

… and so on

The idea is simple, yet revolutionary: if a thing works well, let’s do it more often. Let’s do it always! Why not?

From a high-level perspective, XP is something everyone can easily agree on the 5 values (communication, simplicity, feedback, courage, respect) are something that most developers themselves can think of as ideal values for their work. We all want an effective communication, simplify our work, and respect — and we can easily discover the importance of feedback and courage.

In a similar way, principles are still enough high-level that most people will easily agree: if you ever meet someone who doesn’t agree with principles such as humanity, mutual benefit, improvement, diversity, etc… — well, run away as fast as you can!

It’s great that XP is based on such universal concepts, of course: this can help in setting up a conversation about it, because we can easily start with a shared agreement on them. On the other side, this is just too high level: making values explicit is important because without values, practices quickly become rote, activities performed for their own sake but lacking any purpose or direction.

Practices, on the other hand, are evidence of values. Values are expressed at such a high level that I could do just about anything in the name of value. Practices are clear.

Principles bridge the gap between values and practices. Principles are domain-specific guidelines for life, that starting from values can lead to practices that respect all of them.

By far, IMHO, everything related to XP Values and Principles is “location independent” — meaning that remote work has no impact on their application: we want our organization to be respectful, communicate well, favor diversity, etc — no matter if we are remote or not.

[ … continue … ]

Until next time, happy coding! 🤓👩‍💻👨‍💻

🙏 Thank you for reading this shortened version of this article. You can enjoy the full version on my blog here.

--

--

Daniele Scillia (Dan The Dev)
Learn Agile Practices

Software Engineer @TourRadar - Passionate Dev, XP Advocate, passionate and practitioner of Agile Practices to reach Technical Excellence