TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Extreme Programming, a Reflection

99 pointsby joseph_cooneyover 11 years ago

13 comments

barrkelover 11 years ago
The things that I remember XP being <i>controversial</i> for were pair programming and TDD - real TDD, where you write the tests first and let the tests drive the design. And those are the two things that I don&#x27;t really see as having caught on.<p>I mean, pairing is a fine approach when training someone up on a codebase, but it tends to be much more effortful for the guy in the driving seat, while the guy looking over your shoulder is making small comments and doing researchy lookups. This makes it less than efficient when both people are at the same knowledge level. The extra eyes looking for bugs is debatable; the bugs are more thoroughly found with tests.<p>Test-first TDD is even less popular. Norvig vs Jeffries was enlightening - <a href="http://devgrind.com/2007/04/25/how-to-not-solve-a-sudoku/" rel="nofollow">http:&#x2F;&#x2F;devgrind.com&#x2F;2007&#x2F;04&#x2F;25&#x2F;how-to-not-solve-a-sudoku&#x2F;</a> .<p>Software does have a much heavier focus on testing than it used to, to the point that in many projects, everything is implemented twice - all features have two representations, one in the form of the implementation, another in the form of tests, and often with the lines of test code outnumbering the implementation.<p>But other things have suffered IMHO; making code easy to test tends to over-abstract it, making it more parameterized and exposing more implementation details of high-level abstractions.<p>APIs are often uglier with a lot more exposed symbols to handle the parameterization, with various bits and bobs asking for interfaces that only have one concrete implementation that can only be created by a factory, and you have to learn the knack of actually instantiating the useful bits anew for each library. I&#x27;ve got Java squarely in mind, of course, and I&#x27;m convinced better language design can solve the problem with less harm to the software.
评论 #6926451 未加载
评论 #6926725 未加载
评论 #6926453 未加载
评论 #6926471 未加载
评论 #6926464 未加载
评论 #6928222 未加载
评论 #6927979 未加载
评论 #6927812 未加载
评论 #6931454 未加载
grimerover 11 years ago
In regards to pair programming - I realized recently that I&#x27;m opposed to it just because I don&#x27;t enjoy it. I don&#x27;t like having someone look over your shoulder while programming, or looking over someone else&#x27;s shoulder while they are programming. It is exhausting. Collaborating in front of a whiteboard for a few hours is fine - I just don&#x27;t want to do it all day. I also don&#x27;t like feeling guilty taking a 5 minute break to read hacker news, or my personal email.<p>And I&#x27;m in the programming industry because I enjoy programming, so would want to work in an environment which I enjoy - and in today&#x27;s market, i have the luxury of picking my employer.<p>I&#x27;m sure not everyone feels the same way, but I suspect I&#x27;m not alone in that opinion.
评论 #6927591 未加载
评论 #6927569 未加载
评论 #6928347 未加载
pistacchiosoover 11 years ago
Putting my headphones in, drifting in my own, private world of code is to me one of the simple pleasures of life. Ok with short meetings and thight, small schedules and the like, but put someone watching at my screen while I&#x27;m coding and I can easily commit an homicide.
评论 #6926647 未加载
评论 #6927205 未加载
henrik_wover 11 years ago
The XP book was hugely important for me. I read Kent Beck&#x27;s article on Extreme Programming in IEEE Software in October 1999, and got the book as soon as it came out. For the first time I saw a methodology that reflected how I actually liked to work. I hadn&#x27;t done pair-programming then, but working in small increments, with lots of tests, rewriting etc - more agile in short. Previously, I wrote programs <i>despite</i> the methodology (like RUP, or company internal methodologies), but here was a system that actually helped. Truly revolutionary at the time.
评论 #6926385 未加载
inglorover 11 years ago
Another post saying nothing by uncle Bob. His ability to say nothing never ceases to amaze me -_-.<p>He&#x27;s one of the good guys, that&#x27;s for sure - but every time I read his blog I keep waiting for that something new and it never comes.
thebearover 11 years ago
In the short section entitled &quot;Success&quot; toward the end of the article, the author repeats the sentence &quot;Extreme Programming succeeded&quot; five times, slightly rephrased each time. To be perfectly honest, I find it hard to comment on this without sounding derisive. There is no hint at what &quot;succeeding&quot; even means for a software methodology, and even if we assume we know what &quot;succeeding&quot; means in this context, there is not a shred of evidence for the truth of the statement. A poorly defined statement repeated five times without evidence or proof.
lifeisstillgoodover 11 years ago
It&#x27;s still relevant - I doubt that 2% of teams do all 12 (mostly it&#x27;s the pair programming) but it is without a doubt the seminal work on software in business of the last 15 years.
评论 #6926436 未加载
khaledhover 11 years ago
<a href="http://programming-motherfucker.com/" rel="nofollow">http:&#x2F;&#x2F;programming-motherfucker.com&#x2F;</a>
FrankenPCover 11 years ago
I love pair programming. Frankly though, it takes several hours of committed time to be really useful. It&#x27;s hard to get two production programmers to sit down together for a few hours to focus on this. To get around the time hurdle, I&#x27;ve proven to upper mgmt that the amount of bug fixes or efficiency improvements is easily greater than the amount of product the two alone could have achieved. There&#x27;s a Tesla-ish resonance that occurs when two people are focusing on the exact same problem. LOVE IT.
ColinDabritzover 11 years ago
The Ten Year Agile Retrospective: <a href="http://msdn.microsoft.com/en-us/library/hh350860(v=vs.100).aspx" rel="nofollow">http:&#x2F;&#x2F;msdn.microsoft.com&#x2F;en-us&#x2F;library&#x2F;hh350860(v=vs.100).a...</a><p>From June 2011, this article covers four key success factors for the next 10 years of agile. Great thinking on software development.
steven2012over 11 years ago
I was developing software back then when extreme programming came about. It wasn&#x27;t controversial at all. In fact, everyone I knew thought it was a much better way of programming than the current waterfall method. The only problem was inertia from management, which is always the case.
city41over 11 years ago
I like a lot of what XP brought to the table, except pair programming. I find it&#x27;s genuinely not effective most of the time. It <i>is</i> very effective when teaching someone. But in general I have found it to be slower, produce worse code, reduce accountability, and causes frustration. I&#x27;m currently working on a long blog post detailing my thoughts on it.
评论 #6928696 未加载
asdasfover 11 years ago
I was pretty shocked to see a programmer that delusional about XP and its influence. Then I got to the bottom and saw it was an XP snake-oil salesman writing it, not a programmer. Surprise. All 12 of those things predate XP, and most of the 12 things are situational. There is virtually never a case where following all 12 of those things makes sense. But that is exactly what XP was. It demanded you do all 12. Just saying &quot;because some people still do some things in that list, XP mattered&quot; when those things were being done before XP came out is absurd. &quot;Which ones don&#x27;t you do?&quot;, all of them but avoiding overtiming.