7 ms·
Should we revisit Extreme Programming in the age of AI?
- AnimalMuppet 1y agoJust in case: This is not a call for everyone to "pair program" with an AI. 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 1y ago100%
- viraptor 1y agoThat's only if you don't preserve the results explicitly. If you're trying to delve into some new code without enough docs, I could imagine learning lots about the system along the LLM and then leaving that as documentation and/or agent files in the repo.
- Terretta 1y ago> Just in case: This is not a call for everyone to "pair program" with an AI. 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.
- bgwalter 1y agoCertainly someone is willing to sell Extreme Vibing (XV) courses.
- parpfish 1y agothat’s what onlyfans is predicated on
- mattmanser 1y agoI'd totally forgotten about XP. Funny how some of it is now day-to-day, and other parts of it would be considered extremely weird.
- imjacobclark 1y agoYeah, much of XP has just been integrated into modern workflows (for the better!), really getting this out there as a call to arms for folks to _think_ before they churn out 1000s of lines of code with an LLM and ship without thought! From your perspective, which bits of XP would you consider weird?
- loloquwowndueo 1y ago[flagged]
- andyjohnson0 1y ago> No. (Betteridge’s Law dictates so) Maybe. But its not a law. Its a vague heuristic. Thought is still required.
- layer8 1y agoI'm gonna write a blog post titled "Does Betteridge’s Law always apply?".
- throwaway1777 1y ago[dead]
- jongjong 1y agoExtreme Programming attempts to weave together several independently useful concepts into a single paradigm... For that to make sense, the amalgamation of ideas has to be greater than the sum of its parts individually, but it's not clear that this is the case. 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."
- imjacobclark 1y agoAgreed, we’ve come a long way since the dogmatic agile of the 90s, and maybe I could be more explicit that this is about introspecting how you’re delivering software (now AI-enabled workflows are everywhere) to decrease the probability of only increasing output (rather than increasing the probability of outcomes) for your users… XP is a good place to start (but not necessarily end).
- 1y ago
- ilaksh 1y agoI think that XP was the only true agile methodology. Agile just got more and more corrupted over the years through stupidity. 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.
- jadbox 1y agoI think the ideal scenario is usually two paired programmer using a shared set of AI agents on the same working branch together. It's an ideal feedback loop of paired planning, reviewing, building, and testing.
- AnimalMuppet 1y agoDepends on how accurately AI can close the loops.
- viraptor 1y ago> I don't think everything needs a comprehensive set of unit tests though. 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.
- ffk 1y agoI think a more accurate version of this is: unit tests were not only per-method but also per functionality. This was often called BDD (Behavior Driven Development), e.g. Ruby's cucumber. Your intuition here is correct though.
- viraptor 1y agoI disagree with the "not only". The idea in xp is to write the test first. http://www.extremeprogramming.org/rules/testfirst.html http://www.extremeprogramming.org/rules/testfirst.html You don't know how many methods/functions (if any) you're going to add to make it pass, so they're explicitly per-functionality.
- CuriouslyC 1y agoWaterfall is the thing that's coming back with AI.
- apwell23 1y agoIt never went anywhere in the first place
- the_af 1y agoWhat do you mean? I suppose it depends on the company. Maybe big, conservative companies? Startups don't operate on waterfall. Most jobs I've had didn't do the ol' all requirements upfront -> design -> implement dance.
- MangoToupe 1y agoApple famously uses waterfall.
- zdragnar 1y agoThe ol all requirements up front -> design -> implement that people classically associate with waterfall came from an infographic on how not to do waterfall. Actual waterfall looks very much like actual agile, in that it is designed around iteration loops. The primary difference is that waterfall prescribed steps in the iteration process, and agile is just a set of principles in a manifesto. Edit: reference: https://beza1e1.tuxen.de/waterfall.html https://beza1e1.tuxen.de/waterfall.html TLDR: the original impetus for waterfall is basically what we call agile today. Someone copy-pasted a random chart from a paper (one the paper specifically said was too problematic) into a DOD process spec, that turned into a standard because the DOD loves to standardize everything, and big companies all adopted the fundamentally flawed approach and called it waterfall.
- rramadass 1y agoMost people know nothing about "Waterfall Model" which if you think about it, is just commonsense meta framework using which you can implement any SDLC methodology. Pair it with "Spiral Model" (https://en.wikipedia.org/wiki/Spiral_model https://en.wikipedia.org/wiki/Spiral_model) and you are golden. This excellent writeup by David Olson gives both the history and the correct understanding; The Myth of the 'Waterfall' SDLC - http://www.bawiki.com/wiki/Waterfall.html http://www.bawiki.com/wiki/Waterfall.html
- nostrademons 1y agoInterestingly Kent Beck (the originator of Extreme Programming) has been doing a lot with AI coding and figuring out how it could be useful: https://tidyfirst.substack.com/p/augmented-coding-beyond-the-vibes 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-worth-0 https://tidyfirst.substack.com/p/90-of-my-skills-are-now-wor...
- no_wizard 1y agoI’m is the opinion that the test first XP style of development pays more dividends now than ever, simply because you can use it to validate the code that AI generates and importantly it makes it easier to generate code from these AI tools.
- yencabulator 1y agoOne of these "AI coding" things that come across as a code smell is the habit of littering outdated reports/guides in the repo. That seems to be happening here too. This is clearly an AI-generated report based on the code at the time of the generation. I don't see the point of storing them in the history? Especially as this _updated_v2_from_2025 trail of debris. https://github.com/KentBeck/BPlusTree3/blob/main/rust/docs/COPY_PASTE_DETECTOR_SUMMARY.md https://github.com/KentBeck/BPlusTree3/blob/main/rust/docs/C... https://github.com/KentBeck/BPlusTree3/blob/main/rust/docs/UPDATED_COPY_PASTE_ANALYSIS.md https://github.com/KentBeck/BPlusTree3/blob/main/rust/docs/U...
- interleave 1y agoWe're practically a 100% XP shop compiled of ex-Pivots and Thoughtworks. Pairing, TDD and client-on-site as our baseline. We've also been using AI as part of our IDEs full-time for 2+ years. Yet, the most unexpected thing happened this year on my team of 4 senior/staff-level developers: Instead of "splintering/pairing off with AI" individually even further, we wound up quadrupling (mobbing) full-time on our biggest project to date. That meant four developers, synchronously, plus Claude Code typing for us, working on one task at a time. That was one of the most fun, laser-focused and weirdly effective way of combining our XP practice with people and AI.
- des429 1y agoInteresting! What tools are using to make this collaboration easier?
- bicepjai 1y agoWhat is Extreme Programming => XP is an agile methodology that keeps teams laser‑focused on delivering working software through short iterations, tight feedback loops, and simple design, using practices like pair programming, test‑driven development, and continuous integration to adapt quickly to changing needs. It optimizes for learning and quality over raw output: build the smallest thing, test it, ship it, and iterate with the customer. ~ GPT5 in perplexity
- FlacksonFive 1y agoAs a former Pivot and diehard XP dogmatist, yes please!
- interleave 1y agoYay! NYC Pivot here, see my comment below - we're still doing the thing ;)