I'm breaking with one of my own traditions by "reviewing" (such as these reviews of mine are) this before I've actually finished reading it, but even only halfway through I'm loving it already. Very dense, very thought-provoking, I must have dogeared half the pages for coming back later to ponder some sentence or other. Pairing this book with Kuhn's TheStructureOfScientificRevolutions would, in my opinion, be a perfect introduction to some basic values of Extreme Programming, Agile thinking, or Weinbergian humanism : we don't need to abandon rigorous thinking in order to uphold tolerance, fairness, respect or common decency. -- LaurentBossavit
I couldn't quite finish it though. Breaking with another of my "rules" I put it down three chapters to the end, to pick up later. Not disappointed, just overwhelmed with the effort at that point. I'm giving myself a break from thought-provoking reading by going back to fiction, back to old friends for a while - I selected IainBanks' WalkingOnGlass from my one of my favorite shelves. -- LaurentBossavit
And we don't need to abandon tolerance, fairness, respect or common decency in order to uphold rigorous thinking? - DaleEmery
That might be even closer to the mark. -- lb
I've this strong sense that XP and the other agile methods are in some way "post-formal". A lot of the agile big names, and a lot of the early adopters seem to be folks who've had thorough educations in Comp Sci, maths, engineering, etc and have in the past used methods have a high degree of formalism. And they haven't forgotten or abandonded that stuff, they just use those mental tools a different way now. --KeithBraithwaite
Kent says somewhere that "the difference between modernism and postmodernism is a theme that plays throughout XP". Polanyi's "post-critical" is certainly post-modern. Of course the term itself is subject to a certain postmodern vagueness of definition. I always read it as "somehow rejecting the still entrenched Cartesian heritage". -- lb
I spent most of my graduate studies focusing on a post-modern theory of family therapy called NarrativeTherapy, which is based on much of MichaelFoucault?'s philosophy, particularly TheSocialConstructionOfReality. In my first reading of ExtremeProgrammingExplainedEmbraceChange?, I kept getting an old familiar feeling. By the end of the book I realized the feeling was coming from the fact that XP is based in post-modern thinking.
I recently found a hard connection between TheSocialConstructionOfReality and Agile methodologies in AgileSoftwareDevelopment where AlistairCockburn references PelleEhn?'s Scandanavian Design: On Participation and Skill, which in turn sites Berger and Luckmann's TheSocialConstructionOfReality, a book I had bought during graduate school, but had never read (it's next on my list). It was an exciting convergence of my two careers! --DaveHoover
In what regard is XP "based on post-modern thinking"? It looks a lot like plain old engineering thinking to me, with a whif of craft: profoundly pre-modern. Not-modern, for sure. RUP is modern (in the sense of modern that post modern is post of), and its huge suckingness is partly explained thereby. But unless everything not-modern is post-modern, I've no idea what the claim is supposed to mean.
Re-reading my post, the phrase "the fact that XP is based in post-modern thinking" does seem to be oxymoronic (in that I am stating my opinion as fact, which is quite a modern tendency) and vague (in that I am not defining "post-modern"). Maybe I can clarify...
Looking in The American Heritage Dictionary, "post-modern" is defined as:
Of or relating to art, architecture, or literature that reacts against earlier modernist principles, as by reintroducing traditional or classical elements of style or by carrying modernist styles or practices to extremes...
This definition seems to clarify things nicely, even though I had a different definition in mind when I used the term "post-modern" above. The definition I had in mind is the definition I learned in graduate school from NarrativeTherapy:
Postmodernists believe that there are limits on the ability of human beings to measure and describe the universe in any precise, absolute, and universally applicable way. They differ from modernists in that exceptions interest them more than rules.
Does that clarify the meaning of my claim at all? --DaveHoover
Certainly it does. That first definition is pretty much what I described, right? Right. --dh
I wonder, how did post-modernism get from these two (now) fairly uncontentious notions to the common usage: "It may look like any old arbitrary bollocks I lashed together to you, but it's post-modern. My apparent lack of any talent or skill whatever is ironic."? It's interesting, since moving to rural Cumbria eighteen months ago this is the first time I've seen or heard the term, whereas it was commonplace during the six years I was in London. There, is was on many lips, serving as a moral and aesthetic get out of jail free card. So much so that it was abused into meaninglessness, while at the same time being used as the marker of a self-defined elite (they thought). This in ways far removed from either defintion given above. Seems as if, in rushing to throw out the murky bath water of modernist dogma more than a few people took the opportunity to let slip the ever-crying baby of discernment.
As far as architecture goes, the field of modern/post-modern I know most about, I find myself profoundly disinterested in that distinction. I'm interested in good buildings vs. bad ones. And there are both in both categorie, I find. Puzzled of Penrith asks: does that make me modern or post it? -- KeithBraithwaite
It is unfortunate that one term can be so widely used and with such a broad range of meanings. I will think twice before using it so brashly in the future. It was a pleasant surprise, though, that the dictionary definition of "post-modern" matched so closely to XP.
While we're on the topic of postmoderinism (and all of the term's various ab/uses), take a look at this talk by LarryWall, creator of Perl: [Perl, the first postmodern computer language] --DaveHoover
I've read that transcript several times now, and it always leaves me dissatisfied. Partly I guess its by association with Perl, a langauge I find to have some nice features, but to be largely objectionable. And by asociation with those Perl fans who've forcefully explained why my thinking that means there's something wrong with me.
"Theres more than one way to do it", and there is. But there isn't, as Larry's talk invites you to imagine, every way to do it you can think of. Or even every way to do it you're familiar with from elsewhere. And all those various ways are not equally useful in all situations. Those ways aren't all equally easy in their own terms, eiter. But Perl fans don't talk about that much.
"First" I don't know about (though I doubt it), but Perl is not the only post-modern language, I'd argue that it isn't even the most most-modern: Common Lisp is way ahead, and C++ may be, too. Larry's comparisons with the supposed Modernist problems with other languages ring hollow.
And the advantages of Perl's borrowings from other languages are way overstated. The irony is that the way many people make Perl useful to them is to ignore a whole bunch of features, and use one of the "sane subsets", essentailly a smaller, more limited, less general purpose language embedded inside Perl.
Blah, blah, there was a lot more here that got lost. Wasn't very good anyway. --KeithBraithwaite
I am interested in hearing what you find objectionable about Perl. I wonder if it is the bad experiences you have had with Perl zealots.
OK. I certainly did find the bad experience with the Pearl zealots objectionable, and this is less of a side-issue than it might at first appear. These things we call programming languages are more than a compiler and some libraries, they are also formed from the habits of thought of a technical culture. Very much so with an language like Perl that has itself been developed by its large community of users. I find that the arrogance, presumption and disregard that certain conspicuous parts of the Perl community has shown to myself, and others, is reflected in the language. And I find that objectionable.
I find it objectionable that the language is so floridly non-orthogonal, I want to focus my mental energies more on problem in hand, and less on remembering arbitrary syntax than Perl allows.
I find it objectionable that there is sometimes more than one way to do things where there's no discernable advantage one way or the other, since that means that I have to make distracting, and essentially nilpotent, decisions far too frequently.
I find it objectionable that certain features almost universal, and widely used, amongst Perl's general class of "languages that look like C" are missing from Perl.
I find it objectionable that the aping of natural languages (so we're told) in Perl's development has resulted in a programming language that, like natural languages, can only be learned through prolonged immersion. My (professional) life is too short.
How's that? --KeithBraithwaite
Thanks for the explanation. Sounds like you'd like to steer clear of Perl as much as possible. More power to you. I, on the otherhand, enjoy it as another tool in my toolbox. Sorry to hear that some people in the Perl community have treated you badly. I witnessed some of this abuse online myself and it definitely tarnished my respect for those people.
You're welcome. Indeed I would like to steer clear of Perl as much as possible. However, for a lot of the things I do use it for, I'm very, very happy to use it in contrast to the alternatives! Now that I've gone to the trouble to learn a subset of Perl (which was the least bad option at the time I had to do it), I do find it a useful tool: we use it quite a bit to knock up little bits of CGI for internal use, for example, for which it is well suited by virtue of its powerful CGI libraries. But all the time I'm using it these irritations sap my energy.
In his talk, Larry mentions carpenters and the many tools they choose from. Perl is a versatile language, often called the Swiss Army Chainsaw. But I don't believe that Perl is the right choice for every situation. Unfortunately some people do think this, and some of those people like to clunk people on the head with it.
To those people I would advise reading Software Craftsmanship [ISBN 0201733862 (amazon.com, search)], a book that sheds a positive light on well-established, Open Source languages while encouraging craftsmen to have a broad range of languages in their toolbox. --DaveHoover