Since the pandemic, remote software engineering work has become common place. Daily stand ups around cubicles are now sit downs with tiny glowing boxes representing people. Agile and scrum have both adapted reasonably well to remote work, and the future of software dev is likely going to be entirely remote as less and less developers opt to return to an office
However, there is an old variant of agile which when done remotely can have severe consequences: Extreme Programming (XP). Like Agile, there is no one definition which fits extreme programming. Every company is a little different in how they carry out their methodology, and it’s irresponsible to assume some random website on the internet applies to everyone. The one defining element of XP is paired programming. Any difference XP has with agile is purely derived from capitalizing on paired programming.
If you have not figured it out by now, this article is going to be eXtremely against XP.
Paired programming can be used for its instructional value where the senior developer teachers the junior. It can also be used to help tackle a task which you cannot solve. This is generally how paired programming should be done, but it is not how it’s used in XP. In XP both you and your partner are already up to speed on each other, so knowledge sharing is much rarer.
In XP Paired Programming is done continuously. This can help remove bugs before they happen, enforce code standards, and prevent common mistakes. It is for this reason XP is commonly used to minify the need for code review as all the code has (in theory) been seen by another set of eyes. Reliability is a core idea of software made using XP so it should not be a surprise that it heavily utilizes Test Driven Development (TDD). TDD can work well with paired programming as it adds something you and your partner can discuss.
Most importantly, Paired Programming is effective at helping dial in your focus. Focus can be a major problem with remote software so this can help tremendously. You should be able to focus for an entire 8-hour workday with minimal breaks. How exciting! You always have someone watching you making sure you don’t get sidetracked. Of course, the camera is mandatory. Also, we don’t want you to get comfortable with your team, so we won’t let you pair with the same person more than 3 times a month.
Do you feel uncomfortable yet?
Even if you are okay with XP it’s important to understand how it affects those who are not. You can say “Well if you don’t like it don’t take the job!” However, the job may not have started as XP. In addition, the fact it’s XP may have slipped under the radar. Many times, the only warning signs are on Glass Door reviews.
The fact of the matter is it can quickly burn you out. You generally take a lot of breaks, but it’s robotic. You can’t just get up for an hour to clear your mind. There is simply too much pressure to ‘do something’. XP in remote dev is especially problematic. There is less attachment to your team, and it’s easier to get away with being a dick. In addition, being alone in your home with someone you barely know watching you can be extremely uncomfortable and intimidated.
All of this takes its toll, and it can quickly lead to severe consequences including mental health issues. If you try and bring up these issues, you’ll be told you are not a team player or that you don’t fit in the culture. XP companies try and push a “One of us! One of us!” mentality. They will organize ridiculous events in the hopes you drink the Kool Aid…. And for $100,000 you may just do that.
Don’t drink it. It’s not worth it. You can do better. Take a pay cut if you have to. You will thank me later.