Funny how some of it is now day-to-day, and other parts of it would be considered extremely weird.
From your perspective, which bits of XP would you consider weird?
Maybe. But its not a law. Its a vague heuristic. Thought is still required.
TDD is useful in some situations, yep totally. Pair programming is useful in some situations, yes. Continuous integration; yes, much of the time. Frequent feedback; yes, sometimes, for some types of work which doesn't require deep focus...
It just doesn't work as a blanket 'XP' paradigm because you rarely need all these parts all the time, at the same time. IMO, this is why Extreme Programming lacks gumption as a concept. It feels like a bunch of good ideas thrown together. If there was some kind of synergy between those ideas and practices, the concept of XP would be more important.
As it stands today, everyone is implementing maybe 1 or 2 aspects of XP, but almost nobody is implementing ALL of XP... So nobody can claim that they're adhering to XP.
This is not the same as as 'Agile' because with Agile; the vast majority of big companies are implementing maybe 90% of agile practices, with 70% fidelity... This consistency is enough for companies to identify themselves as 'Agile'. I've worked for many companies which implemented ALL of the Agile practices but not one of them actually implemented them exactly as taught in the Agile Manifesto. I think the closest one I worked for was maybe 90% of the way there; they even followed the story point system exactly and used a packet of cards with numbers on them to allow people to vote during Sprint Planning meetings... but anyway, pretty much all the companies/projects I worked for identified themselves 'Agile' because all the practices fit into a single paradigm and there was value in adopting all of them. After a while, it became easier for project managers to just say "Let's switch to Agile" instead of saying "Let's time-box our development work into short increments, with a planning meeting, refinement meeting and retrospective meeting for each 2-week increment."
Clearly AI programming allows you to quickly close feedback loops. I don't think everything needs a comprehensive set of unit tests though.
But if people can go back and understand the core concept of XP (which again is about feedback loops to me) and take advantage of LLM-based agent systems to create those tight closed feedback loops, then that will be an advance for software engineering.
There's a difference in the tests of that era though. Around the xp times, unit tests were for unit of functionality, not per-method.
“Unit tests are small tests, each one exercising a little piece of functionality. The units tested are usually individual methods, but sometimes clusters of methods or even whole objects.”
Extreme Programming Explained: Embrace Change, 2nd Edition (2004) Kent Beck
https://tidyfirst.substack.com/p/augmented-coding-beyond-the...
I remember he first posted 2+ years ago, back when people first realized ChatGPT might be useful for coding, that "90% of my skills are now worthless and the remaining 10% are worth 1000x"
https://tidyfirst.substack.com/p/90-of-my-skills-are-now-wor...
AnimalMuppet•1h ago
If you pair program with someone else on your team, you both learn what the other is thinking. You both become more familiar with what the code is doing, and why it's doing it.
If you "pair program" with an AI, anything it learned, it forgets as soon as the prompt is closed.
So don't think that's what he's talking about here. He's talking about XP, with humans, just like in the 1990s. There may be some AI in there too, but that's not where the XP part comes from.
imjacobclark•58m ago
viraptor•20m ago
Terretta•16m ago
If that's not what you're doing, you're likely doing it wrong.
> If you pair program with someone else on your team, you both learn what the other is thinking. You both become more familiar with what the code is doing, and why it's doing it.
Yes.
> If you "pair program" with an AI, anything it learned, it forgets as soon as the prompt is closed.
Same with humans, including your future self. So pair on docs.
TL;DR: You should absolutely be XP pair programming with your LLM.
Fulgen•10m ago
If you want AI slop everywhere, that is.
the_af•6m ago
Maybe we need a new term, maybe we don't, but it's not pair programming if you're doing it with an LLM.