<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>xProgramming.com &#187; Book Review</title>
	<atom:link href="http://xprogramming.com/category/book/feed/" rel="self" type="application/rss+xml" />
	<link>http://xprogramming.com</link>
	<description>an agile software development resource</description>
	<lastBuildDate>Tue, 01 Nov 2011 10:56:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Book Review: Shop Class as Soulcraft</title>
		<link>http://xprogramming.com/xpmag/book-review-shop-class-as-soulcraft/</link>
		<comments>http://xprogramming.com/xpmag/book-review-shop-class-as-soulcraft/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 14:47:02 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>
		<category><![CDATA[XP Magazine]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=1301</guid>
		<description><![CDATA[Author Matthew B. Crawford is a physicist, has a Ph.D. in political philosophy, and is a motorcycle mechanic. What's not to like? Recommended for practitioners, managers, executives.]]></description>
			<content:encoded><![CDATA[<div class="precis">Author Matthew B. Crawford is a physicist, has a Ph.D. in political philosophy, and is a motorcycle mechanic. What&#8217;s not to like? Recommended for practitioners, managers, executives.</div>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/1594202230/ref=nosim/armaties" target="blank"><br />
<img class="size-full wp-image-1302" title="Shop Class as Soulcraft Cover" src="http://xprogramming.com/wp-content/uploads/shop-class.jpg" alt="Shop Class as Soulcraft Cover" width="240" height="240" /><br />
<strong> Shop Class as Soulcraft: An Inquiry into the Value of Work</strong><br />
&#8211; Matthew B. Crawford</a></p>
<p>Crawford speaks eloquently about the value people feel in work that is tangible. He is primarily extolling the joy we feel in applying the manual arts well, and suggests that we should value those skills more highly.</p>
<p>He points out that a craft like plumbing is not subject to off-shoring, because it must be done on site. The Agile software community, of course, understands that working on site is far more effective for us, though it is not logically necessary in quite the way that plumbing is.</p>
<p>But there&#8217;s more for us in this book besides a good read. People do get joy and work harder, when their work is tangible. This has implications for how a developer can work toward greater joy, by focusing on delivering real features that people want.</p>
<p>There are implications for management as well. Because people are motivated to see their work come to fruition, we&#8217;re likely to get better results with feature-focused teams rather than teams divided along other lines, such as infrastructure levels.</p>
<p>This book is a quick and enjoyable read and it will give you valuable ideas.Give it a look!</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/xpmag/book-review-shop-class-as-soulcraft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Pragmatic Ajax</title>
		<link>http://xprogramming.com/book/bookpragmaticajax/</link>
		<comments>http://xprogramming.com/book/bookpragmaticajax/#comments</comments>
		<pubDate>Sat, 29 Apr 2006 21:28:40 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=572</guid>
		<description><![CDATA[Justin Gehtland, Ben Galbraith, and Dion Almaer bring us a valuable and enjoyable book describing Ajax. It is full of running examples, points out the major gotchas, and it's a good read too! Recommended!]]></description>
			<content:encoded><![CDATA[<div class="precis">Justin Gehtland, Ben Galbraith, and Dion Almaer bring us a valuable and enjoyable book describing Ajax. It is full of running examples, points out the major gotchas, and it&#8217;s a good read too! Recommended!</div>
<p><a name="book0976694085"></a><a name="N65564"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0976694085/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0976694085.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0976694085/ref=nosim/armaties" target="_blank">Pragmatic Ajax</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0976694085/ref=nosim/armaties" target="_blank">Justin Gehtland, Ben Galbraith, Dion Almaer</a></span> programming</p>
<h3>Ajaxian Maps</h3>
<p>The book starts off strong. After a brief introduction, the authors take us through an implementation of a mapping application that&#8217;s very much like Google Maps, the web app that put &#8220;Web 2.0&#8243; on the, um, pardon me, map.</p>
<p>I particularly like, in this part, that they show how the tiling geometry works. Folks always think that tiling and graphical ports and windows and such are difficult. Yet, approached cleanly, they are not, and Pragmatic Ajax gives a good example here of how straightforward such things can be.</p>
<p>By page 37, you&#8217;ve implemented a sweet little map application, that can be <a href="http://media.pragprog.com/titles/ajax/code/GoogleMaps/step5-3.html" target="_blank">seen here</a>. Neat.</p>
<p>The book moves right along, adding the zoom tool and push pins. They even show you what to do about the inevitable fact that Internet Explorer doesn&#8217;t support things like transparency correctly. With all the money in the world, why can&#8217;t they fix that stuff? But I digress &#8230;</p>
<p>The book shows the code you need, and of course the code is also available on the pragprog website. Delicious. These guys do good work.</p>
<h3>Filling a Form</h3>
<p>We move from the sublime to the practical, making fields on a form fill in without refreshing the whole page. Again, IE doesn&#8217;t correctly support XMLHttpRequest. Maybe next service pack. &lt;sigh/&gt;.</p>
<p>This chapter is putting off telling us how the server processes our calls to it, but takes us through things that I badly need to understand, like the way that state changes come back and get handled in our JavaScript.</p>
<h3>But Wait! There&#8217;s More &#8230;</h3>
<p>The book provides a brief but valuable explanation of some of JavaScript&#8217;s nicities. It briefly describes the Document Object Model that underlies modern browsers &#8212; a short and clear description that I really liked. I don&#8217;t like the DOM, mind you, but I do like the writeup.</p>
<p>Then the authors give us a look at some of the frameworks and toolkits that are available for Ajax. They introduce us to some of the UI libraries, and they give us some good simple advice about keeping our new-found power under the user&#8217;s control, not just our own.</p>
<p>They tell us about JSON (JavaScript Object Notation) and its RPC counterpart. They tell us about server-side integration using PHP, Rails, Spring, and ASP.NET. Best of all, they port their standard application (a Customer Relationship Manager) to each of those systems.</p>
<p>The book closes with a look at the future of Ajax as these authors see it, describing the &lt;canvas&gt; element, and Scalable Vector Graphics (SVG). They even provide a little page that displays a bar chart using &lt;canvas&gt;, and in SVG. They also point to other interesting canvas-based and SVG-based sites.</p>
<h3>Bottom Line</h3>
<p>I like this book. I don&#8217;t know whether, much less when, I might convert this site to use Ajax. Probably I&#8217;ll encounter clients who are using it before I do much more than an experiment here at home.</p>
<p>Justin Gehtland, Ben Galbraith, and Dion Almaer have done a very good job with this book. It&#8217;s well written, interesting, and best of all it includes some simple but powerful examples that can get you over that hurdle of putting up your first Ajax pages. Like all the PragProg books, it is attractive to read and well laid out.</p>
<p>If I had written this book, I&#8217;d be quite proud of it, and Justin, Ben, and Dion should be. Well done!</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/bookpragmaticajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Refactoring Databases</title>
		<link>http://xprogramming.com/book/bookrefactoringdatabases/</link>
		<comments>http://xprogramming.com/book/bookrefactoringdatabases/#comments</comments>
		<pubDate>Mon, 17 Apr 2006 21:27:15 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=568</guid>
		<description><![CDATA[Scott and Pramod have done an excellent job with this book. It's full of practical advice about how to improve your database design, when to do it, and even how to manage the transitions. If your project involves a database, this book can help.]]></description>
			<content:encoded><![CDATA[<div class="precis">Scott and Pramod have done an excellent job with this book. It&#8217;s full of practical advice about how to improve your database design, when to do it, and even how to manage the transitions. If your project involves a database, this book can help.</div>
<p><a name="book0321293533"></a><a name="N65564"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0321293533/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0321293533.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0321293533/ref=nosim/armaties" target="_blank">Refactoring Databases</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0321293533/ref=nosim/armaties" target="_blank">Scott Ambler, Pramod Sadalage</a></span></p>
<p>In my consulting, I often run across clients who are getting pretty good at code refactoring, but who are hampered by the need to live with a database structure that is getting old and crufty. Sometimes I can give them some useful advice, since I have a lot of database work in my background, but I&#8217;ve never worked in a situation where a database needed refactoring, so mostly what I have been able to do is to cajole them and encourage them to figure it out.</p>
<p>Scott and Pramod have done a lot of the figuring out for us. They provide about 70 named refactorings, like Drop Column, Introduce Soft Delete, or Replace View with Method(s). Each refactoring includes a section on Motivation (why we might want to do this), Potential Tradeoffs, Update Mechanics, Data-Migration Mechanics, and Access Program Mechanics.</p>
<p>The latter two are particularly helpful, in my opinion. I&#8217;ve noticed that many database refactorings are deferred indefinitely because folks can&#8217;t figure out how to do them without breaking existing programs. Data Migration Mechanics addresses how to make the change in two steps, first putting in the new feature and making it available, while leaving legacy code running, and then later removing the legacy support after all programs have been updated. Some of the migration examples are quite elegant, and will help get you in the right frame of mind.</p>
<p>Access Program Mechanics sections address the changes you&#8217;ll need to make to the programs that access the data, pointing out various aspects that you&#8217;ll need to be concerned about.</p>
<p>If your project uses database technology, whether it&#8217;s a new project or an existing one, this book can help you become much more Agile with respect to database changes. I like the book, and I think you will also.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/bookrefactoringdatabases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: A Short History of Nearly Everything</title>
		<link>http://xprogramming.com/book/books20040109/</link>
		<comments>http://xprogramming.com/book/books20040109/#comments</comments>
		<pubDate>Mon, 19 Jan 2004 20:15:10 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=435</guid>
		<description><![CDATA[Bill Bryson writes a delicious book that lives up to its title. The cosmos, the earth, atoms, geology, life, homo sapiens -- it's all here.]]></description>
			<content:encoded><![CDATA[<div class="precis">Bill Bryson writes a delicious book that lives up to its title. The cosmos, the earth, atoms, geology, life, homo sapiens &#8212; it&#8217;s all here.</div>
<p><a name="book0767908171"></a><a name="N65564"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0767908171/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0767908171.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0767908171/ref=nosim/armaties" target="_blank">A Short History of Nearly Everything</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0767908171/ref=nosim/armaties" target="_blank">Bill Bryson</a></span></p>
<p>If you&#8217;re interested in the history of science at all, this is one of the most enjoyable books on the subject that I have ever read. Bryson&#8217;s history and science is solid, at least as far as this layman can tell, covering both the history of scientific endeavor and discoveries, and the often very bizarre people who were involved.</p>
<p>Bryson&#8217;s writing is delightful. Some examples:</p>
<blockquote><p>Looking for the unknown isn&#8217;t simply a matter of traveling to remove or distant places, however. In his book <em>Life: An Unauthorized Biography</em>, Richart Fortey notes how one ancient bacterium was found on the wall of a country pub &#8220;where men had urinated for generations&#8221; &#8212; a discovery that would seem to involve rare amounts of luck <em>and</em> devotion and possibly some other quality not specified.</p></blockquote>
<p>Or this &#8230;</p>
<blockquote><p>In the most literal way, cells also vary in liveliness. Your skin cells are all dead. It&#8217;s a somewhat galling notion to reflect that every inch of your surface is deceased. If you are an average-sized adult you are lugging around about five pounds of dead skin, of which several billion tiny fragments are sloughed off each day. Run a finger along a dusty shelf and you are drawing a pattern very largely in old skin.</p></blockquote>
<blockquote><p>Most living cells seldom last more than a month or so, but there are some notable exceptions. Liver cells can survive for years, though the components within them may be renewed every few days. Brain cells last as long as you do. You are issued a hundred billion or so at birth, and that is all you are ever going to get. It has been estimated that you lose five hundred of them an hour, so if you have any serious thinking to do there really isn&#8217;t a moment to waste.</p></blockquote>
<p>Or this &#8230;</p>
<blockquote><p>Bouyed by the success of leaded gasoline [which he had invented], Midgley now turned to another technological problem of the age. Refrigerators in the 1920s were often appallingly risky because they used dangerous gases that sometimes leaked. One leak from a refrigerator in Cleveland, Ohio, in 1929 killed more than a hundred people. Midgley set out to create a gas that was stable, nonflammable, noncorrosive, and safe to breathe. With an instinct for the regrettable that was almost uncanny, he invennted chloroflourocarbons, or CFCs.</p>
<p>Seldom has an industrial product been more swiftly or unfortunately embraced. CFCs went into production in the early 1930s and found a thousand applications in everything from car air conditioners to deodorant sprays before it was noticed, half a century later, that they were devouring the ozone in the atmosphere. As you will be aware, this was not a good thing&#8230;.</p>
<p>Midgley never knew this because he died long before anyone realized how destructive CFCs were. His death was itself memorably unusual. After becoming crippled with polio, Midley invented a contraption involving a series of motorized pulleys that automatically raised or turned him in bed. In 1933, he became entangled in the cords as the machine went into action and was strangled.</p></blockquote>
<p>Or this &#8230;</p>
<blockquote><p>Perhaps nothing speaks more vividly for the strangeness of the times than the fate of the lovely little Bachman&#8217;s warbler. A native of the southern United States, the warbler was famous for its unusually thrilling song, but its population numbers, never robust, gradually dwindled until by the 1930s the warbler vanished altogether and went unseen for many years. Then in 1939, by happy coincidence two separate birding enthusiasts, in widely separated locations, came across lone survivors just two days apart. They both shot the birds, and that was the last that was ever seen of Bachman&#8217;s warblers. &#8230;</p></blockquote>
<blockquote><p>I mention all this to make the point that if you were designing an organism to look after life in our lonely cosmos, to monitor where it is going and keep a record of where it has been, you wouldn&#8217;t choose human beings for the job.</p>
<p>But here&#8217;s an extremely salient point: we have been chosen, by fate or Providence or whatever you wish to call it. As far as we can tell, we are the best there is. We may be all there is. It&#8217;s an unnerving thought that we may be the living universe&#8217;s supreme achievment and its worst nightmare simultaneously.</p></blockquote>
<p>I truly enjoyed this book. Were it not for the author&#8217;s penchant for reminding use that we are overdue for a massive volcano eruption that will freeze the earth to a ball of ice, a meteor strike that will vaporize us at 60,000 degrees, or a disease that will carry us all off, it would be full of nothing but charm. As it stands, now I have to decide whether to save my money or get another BMW. Do you see a meteor coming from where you are?</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20040109/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Leadership and Self-Deception: Getting out of the Box</title>
		<link>http://xprogramming.com/book/books20030910/</link>
		<comments>http://xprogramming.com/book/books20030910/#comments</comments>
		<pubDate>Wed, 10 Sep 2003 20:07:38 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=423</guid>
		<description><![CDATA[This isn't just one of those self-improvement books. It asks us to dig deeply into our own feelings about people and situations. Reading this with an open mind will ask some hard questions that need answers.]]></description>
			<content:encoded><![CDATA[<div class="precis">This isn&#8217;t just one of those self-improvement books. It asks us to dig deeply into our own feelings about people and situations. Reading this with an open mind will ask some hard questions that need answers.</div>
<p><a name="book1576751740"></a><a name="N65557"></a><a href="http://www.amazon.com/exec/obidos/ASIN/1576751740/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/1576751740.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/1576751740/ref=nosim/armaties" target="_blank">Leadership and Self-Deception</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/1576751740/ref=nosim/armaties" target="_blank">The Arbinger Institute</a></span></p>
<p>I can&#8217;t really tell you what this book is about: the book itself will have to do that. Let me tell you what the book made me think about.</p>
<p>It made me think about the times when I have handled a situation badly, had interactions with people where I was trying to lead but somehow stepped on my own foot &#8212; or tongue? &#8212; and failed to make the situation better. Often I have made the situation worse, though fortunately people of good will often recover from such things.</p>
<p>The premise of the book is that we mess these things up, not from a lack of skill or &#8220;technique&#8221; but because we are deceiving ourselves about what&#8217;s going on, always in the same way. That may sound overly simplistic: could all these different problems really be due to a common cause? Still, I found the ideas to be quite compelling and certainly thought-provoking. Often I could look back on situations and see clearly that in at least that case, the book had me pegged perfectly.</p>
<p>The book is like a short novel or narration, about a new employee, Tom, and his interactions with his boss and others, talking about the company&#8217;s foundation for success, the recognition and elimination of self-betrayal and self-deception. It&#8217;s a very easy read, and if you let it, it will make you think. It&#8217;s not all smarmy slimy like some self-help things, nor is it cheerfully impractical like others. Still, it is offering some challenging ideas that deserve consideration.</p>
<p>You can check <a href="http://www.arbinger.com/">the Arbinger Institute Web site</a> for more information and a look at a few chapters. The book has my very real recommendation. Thanks to Mark Graybill for calling it to my attention.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20030910/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Extreme Programming Refactored</title>
		<link>http://xprogramming.com/book/books20030904/</link>
		<comments>http://xprogramming.com/book/books20030904/#comments</comments>
		<pubDate>Fri, 05 Sep 2003 20:06:49 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=421</guid>
		<description><![CDATA[This book is painful to read for anyone who understands what XP is, because it goes to such pains not to understand, to take out of context, and to distort.

It is dangerous to read for anyone who does not understand what XP is, because it goes to such pains not to understand, to take out of context, and to distort. ]]></description>
			<content:encoded><![CDATA[<div class="precis">This book is painful to read for anyone who understands what XP is, because it goes to such pains not to understand, to take out of context, and to distort.</p>
<p>It is dangerous to read for anyone who <strong>does not</strong> understand what XP is, because it goes to such pains not to understand, to take out of context, and to distort.</div>
<p><a name="book1590590961"></a><a name="N65569"></a><a href="http://www.amazon.com/exec/obidos/ASIN/1590590961/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/1590590961.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/1590590961/ref=nosim/armaties" target="_blank">Extreme Programming Refactored</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/1590590961/ref=nosim/armaties" target="_blank">Matt Stephens, Doug Rosenberg</a></span> fiction</p>
<p>In its attempt to be a book full of satire while at the same time making good points regarding XP, Extreme Programming Refactored undermines itself. The book (I&#8217;ll call it XPR henceforth) makes some very good points about the value of some XP practices, and offers some good ideas about ways to improve it in situations where the practices cannot be done, will not be done, or are not sufficient. However, owing to the density of satirical distortions, quotes out of context, misinterpretations, and putatively amusing songs, it is almost impossible to find the good bits amidst the bad, even for someone who already understands XP (assuming that this reviewer does). For someone not already intimately familiar with XP, I believe it would be impossible.</p>
<p>A book satirizing XP might have been amusing to some people, but would have been informative to none. A book addressing XP&#8217;s limitations and how to deal with them would have been valuable to a wide range of people and might even have been made entertaining as a side effect. In this book, the intricate mixture of satire, error, and somewhat good advice is unmanageable by anyone who doesn&#8217;t already know the material, and largely unnecessary for anyone who does.</p>
<p><a name="N65586"></a></p>
<h2>A Few Examples</h2>
<p>Indented sections below are quotations from the book.</p>
<blockquote><p>Doug once worked with a guy who had a technique that he called &#8220;Samurai debugging (this was back around 1981/1982). When you follow the Samurai debugging technique, you start with a blank screen. That&#8217;s not what you want, so you start debugging it, and you continue debugging it until your program does exactly what you want it to do.</p>
<p>It&#8217;s similar to Michelangelo&#8217;s &#8220;All you do is start with a block of marble and chip away everything that doesn&#8217;t look like David,&#8221; but it&#8217;s also not so unlike XP today.</p></blockquote>
<p>Except entirely. XP is not about debugging &#8212; if anything it is about never needing to debug. XP isn&#8217;t about chipping away bugs, it is about synthesizing simple tests and code that does part of what we need, and building it up incrementally to come up with a more and more refined, well-designed, solution to the problem at hand.</p>
<p>This pattern, you&#8217;ll see, is typical. XPR presents a straw-man argument about what XP is like and then demolishes the straw man. The fact that XP is not like that is lost or distorted in aid of &#8220;satire&#8221;.</p>
<blockquote><p>C3 project was floundering. So Chrysler brought in Kent Beck, who in turn brought in Ron Jeffries, who in turn brought in his crack team of XPers (except then, of course, they weren&#8217;t known as &#8220;XPers&#8221;.</p></blockquote>
<p>Except not really. Kent did bring me in. I brought in no one. The project was done, for at least the first year, with members of the existing C3 team, not with new people. After that, a few new people were brought in. We <em>built</em> a team of XPers: we didn&#8217;t bring one in.</p>
<p>Much of the book relies on demolishing the reputation of the C3 project through mockery and satire. Unfortunately, much of the discussion is as poorly researched as this rather fundamental error suggests. Public and private offers to assist the authors with the facts of history and of XP were rebuffed, perhaps to the detriment of the book.</p>
<blockquote><p>Normally it is the refactorer&#8217;s responsibility to change all the code that uses the interface that he has changed; therefore, all integrated code must be fully working. However, this does have the side effect &#8230; that code that was previously thought to be completed suddenly needs to be rewritten, possibly even redesigned, because a separate part of the system has been refactored. As we discussed earlier, many of the XP refactorings involve interface changes, so this is quite a high risk.</p></blockquote>
<p>It is quite rare for a refactoring to require substantial &#8220;rewriting&#8221;, much less &#8220;redesigning&#8221; existing code. Changes induced by refactoring are largely lexical in nature rather than more deep or complex; they tend to be small and simple rather than tricky. The paragraph above suggests that there is often a lot of rework, of &#8220;doing over&#8221; when we use incremental design and refactoring. Based on my own experience and the reported experience of many other practitioners, this is simply not the case.</p>
<blockquote><p>No long after Matt uploaded the first version of &#8220;The Case Against Extreme Programming&#8221; article onto his Web site, Ron Jeffries (in a rebuttal placed on the Agile Modeling mailing list) suggested that the author fears change and wants to suppress it. Then he added, &#8220;He&#8217;s afraid of integration.&#8221; Why <em>fears</em>? Why not &#8220;is wary of change,&#8221; &#8220;prefers a changeless approach,&#8221; &#8220;approaches change with caution&#8221;?</p>
<p>It wouldn&#8217;t be nearly as emotive. When &#8220;discussing&#8221; criticism of XP, XPers frequently shoot the messenger.</p></blockquote>
<p>This observation isn&#8217;t entirely unfair. In informal web discourse, tempers get frayed, and often we do convert a bad idea into a bad person, and this is wrong. It happens to many people: falling into the same trap, Extreme Programming Refactored shoots the messenger with its own emotive distortions labelled as satire. Unfortunately, in this case, the messenger is the book itself.</p>
<blockquote><p>This is another circular argument behind XP. XP is supposedly suited to a project with vague requirements, but the requirements are vague (not written down in detail and agreed upon by all project stakeholders) <em>because</em> you&#8217;re using XP.</p></blockquote>
<p>Well, no. Actually, the requirements are not written down because they are vague, not the other way around. Instead, they are discussed, just as they would be in any reasonable process hoping to reach consensus and understanding. In XP, the difference is that the requirements are then committed, not to ambiguous text, but to far less ambiguous tests and code.</p>
<p><a name="N65664"></a></p>
<h2>Things to Like</h2>
<p>The book is not without content of merit, though unfortunately it is very difficult for a naive reader to tell what has merit and what does not. Some things that I like include these:</p>
<ul>
<li>David van der Klauw has written a very interesting short article on pair programming, addressing the return on investment from pairing in different kinds of work. I would like to see that article published somewhere on its own.</li>
<li>The authors often point out the benefits of XP practices and values. That XPR then often goes on to distort the practices and values, and to present funny songs about them does not lessen the fact that the authors have clearly tried to include some good things to say when they had them.</li>
<li>The authors raise one of the most important issues with XP, namely that it won&#8217;t work if you don&#8217;t do it. As far as I know, no process will work if you don&#8217;t do it, including the authors&#8217; own favorite. While XPR is quick to point out, and rightly, that a so-called XP project will go off the rails if the team doesn&#8217;t do XP, the book does not address the same issue for other proposed processes and practices.</li>
<li>The authors address the question of scalability fairly well, pointing out the difficulties which would arise if you tried to do XP with a 50 person team. We all agree that adaptations would have to be made for a project of that size, and it is certainly true that XP was devised with smaller teams in mind. If the conclusion of the book had been &#8220;don&#8217;t do XP with 50 people&#8221;, XPR would have made a fairly interesting case, albeit one that both experience and reason might argue with.</li>
</ul>
<p><a name="N65687"></a></p>
<h2>Conclusion</h2>
<p>In this reviewer&#8217;s opinion, Extreme Programming Refactored has undermined its own position by presenting far too many cute songs and made up stories &#8220;satirizing&#8221; XP. The book thus presents something that isn&#8217;t really XP, and isn&#8217;t what XP people are talking about, recommending, or doing. This tragically reduces the book&#8217;s potential contribution.</p>
<p>For more valuable discussion of the limitations of XP and what to do about them, I would recommend either Pete McBreen&#8217;s <a href="http://xprogramming.com/xpmag/books20021009.htm">Questioning Extreme Programming</a>, or Barry Boehm and Richard Turner&#8217;s <a href="http://xprogramming.com/xpmag/books20030819.htm">Balancing Agility and Discipline</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20030904/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Balancing Agility and Discipline</title>
		<link>http://xprogramming.com/book/books20030819/</link>
		<comments>http://xprogramming.com/book/books20030819/#comments</comments>
		<pubDate>Tue, 19 Aug 2003 20:05:17 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=417</guid>
		<description><![CDATA[Barry Boehm and Richard Turner have produced an important and balanced book about agile versus plan-driven methods. Unfortunate title, perhaps, and a few things to disagree with, but highly recommended.]]></description>
			<content:encoded><![CDATA[<div class="precis">Barry Boehm and Richard Turner have produced an important and balanced book about agile versus plan-driven methods. Unfortunate title, perhaps, and a few things to disagree with, but highly recommended.</div>
<p><a name="book0321186125"></a><a name="N65563"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0321186125/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0321186125.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0321186125/ref=nosim/armaties" target="_blank">Balancing Agility and Discipline: A Guide for the Perplexed.</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0321186125/ref=nosim/armaties" target="_blank">Barry Boehm, Richard Turner</a></span></p>
<p>The senior author&#8217;s name alone is enough to ensure that this book will be read by people we would like to influence. Fortunately Boehm and Turner have done a rather decent job of describing agile methods, plan-driven methods, how they work, where they are applicable, and how they can play together. There are things to question and perhaps disagree with, and there is much to agree with.</p>
<p>The authors make clear at the beginning and throughout the book that successful development, whether agile or plan-driven, requires discipline. They chose, I believe unfortunately, to use the word discipline in the title instead of plan-driven, the term used in the bulk of the book.</p>
<p><a name="N65577"></a></p>
<h2>A Few Disagreements</h2>
<p>I believe that the authors make a bit too much of the need for good people on an agile project. They hold that an agile project cannot sustain people of Alistair Cockburn&#8217;s &#8220;Level -1&#8243; and that plan-driven projects can. And they hold that an agile project needs Level 2 or 3 people throughout, while a plan-driven project needs them only at the beginning. I&#8217;m not convinced that this is quite true. Or, it might be a matter of project size.</p>
<p>Boehm and Turner draw some conclusions from Amr Elssamadisy and Gregory Schalliol&#8217;s paper on &#8220;bad smells&#8221; in Extreme Programming, taking at face value some of Amr and Gregory&#8217;s conclusions about what was needed to shore up the areas where their project had problems. I acknowledge the problems, but believe that I would have tried some more agile solutions rather than falling back, as Amr and Gregory recommend, on more plan-driven approaches. On the other hand, they were there, and I was not.</p>
<p>The authors say, referring to Amr and Gregory&#8217;s paper:</p>
<blockquote><p>In this case, the &#8220;customers&#8221; were one step removed from the actual end users. They compounded their limitations by doing less homework on the real needs in the early iterations, perhaps because they thought their other customer functions were more important. Putting blind trust in &#8220;the customer is always right&#8221; adage can be risky if the customer doesn&#8217;t fully understand and appreciate the end users&#8217; needs. A good deal of early coaching is needed to get on-site customers to appreciate and perform the role of end-user representatives. Otherwise, the on-site customers can become examples of the point in Chapter 2 about the main source of tension in agile methods being between collocated and non-collated customers.</p></blockquote>
<p>While this is true, the authors seem to conclude that a plan-driven fix would be appropriate to the situation. However, any such fix would imply a very different staffing and budgeting approach to the project. It might well be more effective and less costly to improve the ability of those in the customer role to perform it well.</p>
<p>I feel that in a number of places in the book, the authors fall into the common trap of &#8220;it can be done this way, therefore it should be done this way&#8221;, even though they rightly warn us all that this is a trap. When it comes down to it, our biases and expectations rule us all in ways we don&#8217;t always expect.</p>
<p>One more example, still referring to the same paper:</p>
<blockquote><p>A second smell illustrates one of the likely side effects of fixed schedules and diseconomies of scale: &#8220;Everyone says that all the story cards were finished at the proper times, but it still takes 12 more weeks of full-time development effort to deliver a quality application to the customer.&#8221; This is related to the previous smell, in that there is a large gray area called &#8220;integration&#8221; in large systems between zero-defect story completion and acceptable system delivery. And there are other gray areas between &#8220;zero defects&#8221; and &#8220;zero defects plus documentation and standards compliance&#8221;.</p></blockquote>
<blockquote><p>The recommended solution [from Amr and Gregory] was to &#8220;Create a precise list of tasks that must be completed before the story is considered finished, and then police it regularly and honestly.&#8221; This conflicts with agile philosophies such as &#8220;Managers in organizations either have a fundamental trust of people or they don&#8217;t &#8212; there is no middle ground,&#8221; and &#8220;Trust people, mistrust communication&#8221; (where &#8220;communication&#8221; presumably includes plans and standards.) It illustrates the tension between the agile ideal of small teams, where there&#8217;s always enough time for everybody to talk through gray areas, and large-project practice, where this would just consume too much time, implying more efficient, objective approaches are needed.</p></blockquote>
<p>Again, we all see that the problem occurred. However, there might be more &#8220;agile&#8221; solutions to try, such as improving automated tests for system integration. Certainly no one should object to having a task checklist, but might object to &#8220;policing&#8221; the list. It seems to me that the mantra of any team ought to be &#8220;Trust, but verify&#8221;, in spite of recent use of the phrase in a political arena we may find odious.</p>
<p><a name="N65612"></a></p>
<h2>Many Agreements</h2>
<p>Overall, the book is quite well-balanced, and makes points that we should all wish to make so clearly and well. Under the heading of &#8220;Future Applications Will Need Both Agility and Discipline&#8221;, we find:</p>
<blockquote><p>Large projects can no longer count on low rates of changes, and their extensive process and product plans will become expensive sources of rework and delay. As the use of agile methods progresses from individual early-adopter projects to enterprise-coupled mainstream applications, the Brooksian software development werewolves of complexity and conformity will be waiting for them. Thus there will be a higher premium on having methods available that combine agility and discipline in situation-tailorable ways.</p></blockquote>
<p>In aid of this, the authors offer six conclusions, of which the above is one. The full six are:</p>
<ol>
<li>Neither agile nor plan-driven methods provide a silver bullet.</li>
<li>Agile and plan-driven methods have home grounds where one clearly dominates the other.</li>
<li>Future trends are toward application developments that need both agility and discipline.</li>
<li>Some balanced methods are emerging.</li>
<li>It is better to build your method up than to tailor it down.</li>
<li>Methods are important, but potential silver bullets are more likely to be found in areas dealing with people, values, communication, and expectations management.</li>
</ol>
<p><a name="N65647"></a></p>
<h2>A Good Book, Worth Your Time</h2>
<p>This one is a keeper. While it is hard for a hard-core XPer like me to completely agree, the ideas are well thought out and well supported.</p>
<p>Get it.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20030819/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: Questioning Extreme Programming</title>
		<link>http://xprogramming.com/book/books20021009/</link>
		<comments>http://xprogramming.com/book/books20021009/#comments</comments>
		<pubDate>Wed, 09 Oct 2002 19:12:55 +0000</pubDate>
		<dc:creator>Jeff Langr</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=341</guid>
		<description><![CDATA[Jeff, an experienced XP coach, takes a hard look at Pete McBreen's book, and finds it to contain good questions. He feels that the answers fall short -- perhaps due to Pete's inexperience with XP.]]></description>
			<content:encoded><![CDATA[<p>eff, an experienced XP coach, takes a hard look at Pete McBreen&#8217;s book, and finds it to contain good questions. He feels that the answers fall short &#8212; perhaps due to Pete&#8217;s inexperience with XP.         <a name="book0201844575"></a><a name="N65560"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0201844575/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0201844575.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0201844575/ref=nosim/armaties" target="_blank">Questioning Extreme Programming</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0201844575/ref=nosim/armaties" target="_blank">Pete McBreen</a></span></p>
<p>After reading <strong>Software Craftmanship</strong> by Pete McBreen,   and being impressed by many of the ideals it contained, I was anxious to see his take on XP. I approached <strong>Questioning Extreme Programming</strong> with an open mind, hoping to glean some legitimate viewpoints that challenge some of the concepts of XP. Worst case, I would at least know what to expect in terms of resistance when discussing XP. After reading the book, I was confused and disappointed.</p>
<p>Tainting the book immediately is the author&#8217;s admission in the preface that &#8220;I have never worked on a full XP project.&#8221; This becomes clear with some of the brief diatribes against XP practices that are not borne out in their practical application. By the book&#8217;s conclusion, I felt that the biggest point of book was to give the author (and perhaps the reader) plenty of excuses to never do XP. McBreen foreshadows his conclusions early in Chapter 1: &#8220;You are likely to discover a difference between what you think is important and the items that XP assumes are important.&#8221; (p10)</p>
<p>On page 12, McBreen says, &#8220;Changing processes is hard. Attempt it only when the benefits massively outweigh the costs.&#8221; This is an obvious assertion, yet it is repeated a few times in the book. Another example from page 53: &#8220;If your current approach to software development is not broken, it is unlikely that you can recoup the cost of changing to a different process.&#8221; But McBreen doesn&#8217;t appear to believe that most software development is broken, so it is clear what decision he has already made with respect to trying XP. A very brief list of &#8220;signs that your process is broken&#8221; appears on page 9. This list seems small, again suggesting that perhaps the processes out there are working just fine. However, McBreen doesn&#8217;t mention many other signs that you may encounter, such as:</p>
<ul>
<li>team members don&#8217;t improve in capability</li>
<li>large amounts of dusty documentation lie around</li>
<li>overstaffed or overworked help desk</li>
<li>heavy volumes of defects; high-end defect tracking systems</li>
<li>minimized communication; lots of headphones</li>
<li>large number of chiefs involved in any given project</li>
<li>disdainful comments from the business on the capability of the developers</li>
<li>mistrust, evidenced by excessive &#8220;CYA&#8221; emails</li>
<li>segmented knowledge that creates bad dependencies on individuals</li>
</ul>
<p>From what I&#8217;ve seen, most software development <em>is</em> broken, or at least bent. But it is very hard for organizations to admit there is a problem, as Weinberg tells us in <strong>Secrets of Consulting</strong>. McBreen is suggesting that there is not a problem.</p>
<p>Chapter 4, &#8220;What do other methodologies consider important?&#8221; provides a good summary of the various development methodologies in use today. It compares and contrasts several examples of software engineering, open source, and agile processes.</p>
<p>Chapter 5, &#8220;What is important for your projects?&#8221; is an interesting discussion of how to assess the role of methodologies in your specific project. It ends with a list of key questions (p52) to ask yourself to determine whether an approach is right for your organization.</p>
<p>On page 60, the author talks about the XP planning game: &#8220;The accuracy of the estimates produced during the planning game needs to be investigated, especially for organizations that are just adopting XP. &#8230; I wonder how long it takes a new XP team to get good at the Planning Game.&#8221; Here McBreen misses the point of the heavy feedback cycles in the planning game. Initial  estimates <em>are</em> going to be inaccurate in any process. In XP, the team has  lots of opportunities to estimate and to learn how to do it well&#8211;the team hones  their estimating skills every two weeks.</p>
<p>In any case, no other process provides a better solution to estimation. No matter how much planning, and how experienced a team is, software developers cannot predict the next hour accurately, let alone the thousands of hours that represent a typical project. The point of the planning game is to <em>allow</em> teams to get good at planning, something that is missing in processes that do not accommodate replanning.</p>
<p>Another theme in the book is related to XP&#8217;s attempts to fix things that the author admits are clearly broken. The author fears that certain changes just won&#8217;t happen, so why should XP even try? As an example, XP stipulates that developers have the right to make their own estimates, as opposed to being told&#8211;by a non-technical person&#8211;how long something should take. In response, the author states that &#8220;Imposed estimates are such an endemic problem in software development that I suspect that few organizations will be able to use the planning game successfully.&#8221; McBreen&#8217;s defeatist attitude is a key part of the problem.</p>
<p>Of the XP practices, McBreen reacts most critically to the short-cycle incremental design practices of simple design and refactoring. These disciplines emphasize constant care to ensure system design is always optimal, as opposed to producing a complete design up front and assuming it remains correct. But McBreen sees &#8220;parallels between undisciplined hacking and XP,&#8221; (p66) and appears to lean on the side of developers who view incremental design as &#8220;an inefficient, questionable practice, possibly bordering on malpractice.&#8221; (p68) Which is malpractice: presuming that significant up-front design is always perfect, or being vigilant and ensuring that the code and design always stay clean?</p>
<p>McBreen&#8217;s whole discussion on incremental design is where my confusion began. McBreen wrote an entire book, <strong>Software Craftmanship</strong>, discussing how what most of us do today is not software engineering; it is instead craft. The premise of that book is that software is malleable, and we can easily shape or craft it from nothing into a robust product. In contrast, engineering is presented as a paradigm where we do significant planning up front because either we must or because it is too costly to change things later. (Many real engineers will refute this statement, though.) And thus we do not engineer software, we craft it with care, largely because we are able to. Personally I loved the book.</p>
<p>Yet <strong>Questioning XP</strong> seems to refute the craft metaphor, as McBreen wishes for a process where we can do perfect design up front. He also wishes for developers not to be burdened by having to show constant love and care for their craft. Unfortunately, that&#8217;s what craft is all about: craft will fail if its practitioners are not disciplined. If McBreen wants us to believe him in <strong>Questioning XP</strong>, then he should refute his earlier conclusions in <strong>Software Craftmanship</strong>.</p>
<p>Besides, McBreen is just wrong, demonstrating his lack of personal experience with XP. XP does support up-front design&#8211;it&#8217;s just that it recommends that design always proceed in the presence of code. The more effort we spend on design without feedback, the more likely that our design is incorrect. Design is done during the planning game, in addition to being done constantly throughout development. XP by no means prohibits us from sketching out UML diagrams prior to beginning an iteration, a task, or a test case. But we learn as we repeat, and our need to physically sketch diminishes as our understanding of good OO design and the system increases.</p>
<p>The brevity and title of Chapter 8, &#8220;Are We Done Yet?&#8221; hints that the author is wearying of all the XP practices by this point. McBreen includes a brief discussion of test-first development and acceptance testing as part of the last few practices covered. This is unfortunate, since the implication is that testing is an afterthought in XP as well. In fact, these are the two technical practices that will make or break an XP effort, and they should really be viewed as the technical drivers in XP.</p>
<p>I also note that McBreen is inconsistent in his naming of the unit-testing practice, using &#8220;test-first design&#8221; once or twice earlier, and &#8220;test-first development&#8221; elsewhere. This is to be forgiven, since the XP community keeps changing the name. The preferred term is now &#8220;test-driven development,&#8221; which technically encompasses the older term test-first <em>design</em>&#8211;not test-first development&#8211;plus the refactoring practice. The important thing to note is the reason it is (was) called test-first design: writing tests first has a huge impact on design. Were McBreen to have gotten the name right and have done a bit more research, he could have helped explain in the previous chapter that test-first design is one more way that design is <em>always</em> happening in XP.</p>
<p>Some of the side arguments in the book are appalling. In the chapter &#8220;Truly Incremental Development,&#8221; McBreen argues that making code readable and maintainable will &#8220;dumb down&#8221; the software (p67). &#8220;Tight, well-written code &#8230; can look obfuscated to people with less knowledge of the programming language.&#8221; First, clever code has little place in modern software that must be maintained by people at all levels of ability. Second, XP does not promote dumbing down software to the level of incompetent developers. What it does promote is making code clear wherever possible. I&#8217;ve been burned by too many high-priced consultants, with an attitude like McBreen&#8217;s, who left behind unmaintainable messes. I&#8217;m sure most of you have too.</p>
<p>The discussion on clever code brings up the issue that there are few true craftsmen in the software development industry. The majority of developers are adequate at best. McBreen&#8217;s discussion on pair programming is brief, like the test-first design topic, and only scratches the surface of its huge role in an XP effort. Both practices do wonders for bringing up the level of competence on a team. Pair programming educates all developers far faster than individuals working alone in their cube. Even the most experienced developers learn more through pairing. Feedback from the quick cycles of test-first design also serve to bolster and reinforce the body of knowledge of a developer.</p>
<p>The bulk of the chapters in section 4, &#8220;Questioning XP Concepts&#8221; contain well-reasoned discussions of concepts such as test-first development, source code as design, and large teams. Chapter 16, &#8220;Requirements: Documentation or Conversation&#8221; re-emphasizes one of the author&#8217;s main concerns about XP: the reality of finding an on-site customer with enough knowledge to be able to accurately feed the development team. Indeed, it is difficult in many organizations to find such a resource. Yet, the ability to precisely pin down requirements is a key factor in making any project successful. Once again, the author seems to be dismissing an XP concept because it&#8217;s just too hard to try and fix things that even he admits are broken. If the organization values the ability to deliver what the business is looking for, then it must learn how to grow the body of people able to drive a project as customer.</p>
<p>In chapter 12, &#8220;Test First Development,&#8221; McBreen discusses the overall value of testing in the XP process compared to other processes. This is a valuable chapter that discusses automated testing vs. manual testing, as well as the relationship between the development team and the test team. McBreen admits that XP teams are producing software where &#8220;the quality of the resulting applications is better.&#8221; (p110) The chapter ends on the note that testers should be an integral part of software development, as XP promotes, &#8220;rather than after-the-fact commentators and critics, as in the traditional approach.&#8221; Excellent observation.</p>
<p>On page 130-131, the author states: &#8220;When <em>all</em> of the practices are being used effectively, XP teams report that their workdays are productive and enjoyable.&#8221; (emphasis added.) The good part about this admission is that McBreen answers his own question from page 66: &#8220;Is a high level of discipline sustainable in the long run?&#8221;</p>
<p>McBreen&#8217;s defeatism surfaces again in a discussion on documentation and XP maintenance teams (Chapter 17, &#8220;Is Oral Documentation Enough?&#8221;). McBreen admits that there is high value to acceptance tests and unit tests as documentation. But he doesn&#8217;t believe that maintenance teams will keep the tests up to date, based on his experience that shows him maintenance developers will not keep documentation up to date. Quite a leap of logic; nonetheless, why knock XP for something which there is supposedly no solution (if there is one, McBreen doesn&#8217;t tell us what it is).</p>
<p>Part V, &#8220;Understanding the XP Community,&#8221; talks about the divisive nature of XP jargon and developer culture. Granted, XP proponents are often overly enthusiastic, and are good at being provocative regarding other questionable practices, such as big design up front. Should we hold enthusiasm against them? McBreen seems annoyed that XP has its own terminology. What process does not?</p>
<p>Part V ends with a weird chapter that tries to come up with a way of yanking extreme programming away from developers, supposedly to force them into a more rigorous, heavyweight approach. McBreen states that this a difficult proposition because the developers love working the XP way so much, and because the customers love the productivity they get out of the development teams. If everyone likes XP, what&#8217;s the problem McBreen is trying to solve?</p>
<p>The final section, part VI, presents the author&#8217;s conclusions. The basic conclusion is that XP is too narrowly focused to be applicable to most people. McBreen presents a good checklist of ten criteria to use to determine whether XP is applicable to your efforts. But the answers given by McBreen do everything to convince you that the answer to most of the questions is no. Above all, fear seems to drive McBreen&#8217;s recommendations, and if we follow his lead, we are best off not changing anything.</p>
<p>Also included in the conclusions are assertions that aren&#8217;t discussed anywhere in the book. For example (p175): &#8220;If the majority of your projects involve writing life- or safety-critical embedded software, please don&#8217;t even think about using XP.&#8221; Please tell me why.</p>
<p>I appreciated <strong>Questioning XP</strong>, because it presents many good challenges that need to be addressed. But McBreen tarnished his effort with too many unverified claims. It also seemed like the primary audience was McBreen himself&#8211;perhaps he wanted to be convinced by book end that he had no reason to try XP. McBreen even hoped that XP will be soon supplanted by something else, so he wouldn&#8217;t have to hear the rhetoric any longer (p168).</p>
<p>In summary, <strong>Questioning XP</strong> did not appear to be backed by enough meaningful research or experience to provide a truly honest critique of XP. Its conclusions did not seem to be in line with the evidence presented in the rest of the book. However, I do recommend it for XP coaches&#8211;it does provide a thorough awareness of the issues that will be faced on an XP effort.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20021009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software for Your Head</title>
		<link>http://xprogramming.com/book/books20020208/</link>
		<comments>http://xprogramming.com/book/books20020208/#comments</comments>
		<pubDate>Fri, 08 Feb 2002 18:42:59 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=299</guid>
		<description><![CDATA[If you are serious about your profession, if you are serious about teamwork, if you are serious about success, please read this book.]]></description>
			<content:encoded><![CDATA[<div class="precis">If you are serious about your profession, if you are serious about teamwork, if you are serious about success, please read this book.</div>
<p><a name="book0201604566"></a><a name="N65561"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0201604566/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0201604566.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0201604566/ref=nosim/armaties" target="_blank">Software for Your Head</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0201604566/ref=nosim/armaties" target="_blank">Jim and Michele McCarthy</a></span></p>
<p>I read a lot of books, and recommend a lot of books. I believe it&#8217;s possible to find something useful in almost every decent book. Still, over the many years of my life, there have been quite a few books and people that made a difference. I&#8217;m thinking of Dijkstra, Knuth, Weinberg, Brooks, Constantine, DeMarco, our own Kent Beck and Martin Fowler. I hesitate to list these authors, as surely I&#8217;m forgetting someone whose book made a big difference to my professional life.</p>
<p><em>Software for Your Head</em> may be one of those books.</p>
<p>The book is based on the results of years of running the authors&#8217; &#8220;Software Development BootCamp&#8221; courses, five intensive days where teams come together to envision a product, organize to make it, and then do so. From these simulations, done over a period of five years, the McCarthys have come up with that patterns that make up this book.</p>
<p>The ideas in the book are very challenging. The book is long. It is very readable yet hard to take in because some of the notions are hard to imagine. Can you imagine that it would be possible to reliably build teams where the members were fully present, committed to unanimously making the best decisions possible, committed to expressing their emotions and their ideas, committed to the productive confict of ideas, committed to true creativity, excellence, accomplishment, shipping the product? That&#8217;s what <em>Software for Your Head</em> asks you to imagine.</p>
<p>Often when people hear about XP, they get stuck because they think the world can&#8217;t really be that way. Believe me,  <em>Software for Your Head</em> will do that to you in spades. Many of us have been on at least one great team in our lives; I hope most of us have that privilege at least once. Jim and Michele dare us to imagine that this experience could be repeated almost at will.</p>
<p>Is it possible? Will these patterns and protocols work? Will enough people study them, learn them, commit to them, adopt them? I don&#8217;t know. Certainly I hope they work and I hope people try them. I don&#8217;t know whether Jim and Michele are right, but I want them to be. I feel sure that they have at least a big piece of the truth.</p>
<p>What I&#8217;m sure of is this: if you read this book, really study and consider it, you will think thoughts you haven&#8217;t thought before, and you will likely learn something about yourself, your colleagues, and your projects. I read a lot of books and recommend a lot of books. This one is special. Do yourself a favor: buy it, read it, and give it deep consideration.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20020208/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Reviews V</title>
		<link>http://xprogramming.com/book/books20020203/</link>
		<comments>http://xprogramming.com/book/books20020203/#comments</comments>
		<pubDate>Tue, 05 Feb 2002 18:41:37 +0000</pubDate>
		<dc:creator>Ron Jeffries</dc:creator>
				<category><![CDATA[Book Review]]></category>

		<guid isPermaLink="false">http://xprogramming.com/?p=297</guid>
		<description><![CDATA[Updated to include our first review of Java Tools for eXtreme Programming. These books are all about agile software development, even those written before the term existed. They're all worth having and reading, more than once. Dig in!]]></description>
			<content:encoded><![CDATA[<div class="precis">Updated to include our first review of <em>Java Tools for eXtreme Programming</em>. These books are all about agile software development, even those written before the term existed. They&#8217;re all worth having and reading, more than once. Dig in!</div>
<p>In this review: <a href="/xpmag/books20020203.htm#book047120708x">Java Tools for eXtreme Programming</a>, <a href="/xpmag/books20020203.htm#book0201699699">Agile Software Development</a>, <a href="/xpmag/books20020203.htm#book0130676349">Agile Development with Scrum</a>, <a href="/xpmag/books20020203.htm#book020161622x">The Pragmatic Programmer</a>, <a href="/xpmag/books20020203.htm#book076790768x">Slack</a>,  and <a href="/xpmag/books20020203.htm#book1556158238">Dynamics of Software Development</a>.</p>
<table border="0">
<tbody>
<tr>
<td><a name="book047120708x"></a><a name="N65567"></a><a href="http://www.amazon.com/exec/obidos/ASIN/047120708x/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/047120708x.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/047120708x/ref=nosim/armaties" target="_blank">Java Tools for eXtreme Programming</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/047120708x/ref=nosim/armaties" target="_blank">Richard Hightower and Nicholas Lesiecki</a></span> agile</p>
<h3>review by <a href="mailto:mike@clarkware.com">Mike Clark</a>, of Clarkware.com</h3>
<p>A toolbox brimming with trusty tools can help teams deliver projects faster, and any budget can afford good-quality open source tools.  This book effectively demonstrates how to use Ant, JUnit, Cactus, HttpUnit, and JUnitPerf to make the XP practices of automated testing and continuous integration possible.  Each of these tools is dutifully put to work automating the build and test cycle of a sample J2EE application.</p>
<p>Don&#8217;t let the extreme title or the fluorescent cover      frighten you &#8211; it&#8217;s the price of admission for a ride      on the XP bandwagon.   This book should appeal to XPers and non-XPers alike who recognize that automated testing and continuous integration are good things for any project.</p>
<p>To be fair, the book recycles a lot of good information already available online, but packages it into a cohesive, albeit gravity challenged, format.  And although it includes simple examples for using every tool, those unfamiliar with J2EE will likely find the lengthy case study a bit heavy-handed and seek other references.</p>
<p>The book is a good introduction for the uninitiated and a valuable reference for those plying their trade with these tools.  Don&#8217;t miss an opportunity to easily automate your Java project and spend more time delivering business value!</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a name="book0201699699"></a><a name="N65599"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0201699699/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0201699699.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0201699699/ref=nosim/armaties" target="_blank">Agile Software Development</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0201699699/ref=nosim/armaties" target="_blank">Alistair Cockburn</a></span>Alistair is software development&#8217;s archaeologist, or maybe I mean ethnographer. Whichever I mean, Alistair visits real projects and interviews them. He recommends methods based on two criteria: did the project ship, and would the team use the same method again. That, folks, is about as close as you get to facts in our business.</p>
<p>Agile Software Development addresses a wide range of issues in agile development, both philosophical and practical. It includes the first book-published description of Alistair&#8217;s Crystal methodology, as far as I know.</p>
<p>Be aware that some people think there&#8217;s not enough meat in this book. If you want rules, XP books have more rules. There is depth to this material in my opinion. I found it thought-provoking. Maybe you have to be nearing Level Three to get it.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a name="book0130676349"></a><a name="N65616"></a><a href="http://www.amazon.com/exec/obidos/ASIN/0130676349/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/0130676349.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/0130676349/ref=nosim/armaties" target="_blank">Agile Development with Scrum</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/0130676349/ref=nosim/armaties" target="_blank">Ken Schwaber and Mike Beedle</a></span>Scrum is a team approach to software development that relies on the &#8220;people in a room&#8221; approach to things. Scrum projects work in bursts of time, typically one month, delivering whatever they can in that period. The process description doesn&#8217;t go to the programming level as XP does: it assumes that the team knows some way to develop software and that they&#8217;ll do so.</p>
<p>Scrum projects manage a &#8220;backlog&#8221; of desired features. There is a Product Owner, analogous to XP&#8217;s Customer, and there is a Scrum Master, who may be analogous to the XP Coach. The Scrum Master seems to have more power than a Coach.</p>
<p>Scrum has been used successfully on a number of projects. The Scrum guys are in some ways more contentious than even I am. I like it when someone makes me look reasonable.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a name="book020161622x"></a><a name="N65633"></a><a href="http://www.amazon.com/exec/obidos/ASIN/020161622x/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/020161622x.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/020161622x/ref=nosim/armaties" target="_blank">The Pragmatic Programmer</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/020161622x/ref=nosim/armaties" target="_blank">Andy Hunt and Dave Thomas</a></span> programmingOutstanding book! Andy and Dave are excellent programmers and excellent teachers, with one eye each on simplicity, skill, craftsmanship, learning, and quality. Where they get all those eyes, I&#8217;ll never know. This is a book on how an individual programmer can increase skills, and how to work effectively, alone or on a team.</p>
<p>As with any such book, much of the advice is something you already know. Much of it is also something you have forgotten to focus on lately. Very very good stuff. I wish I could have written this book.</td>
</tr>
</tbody>
</table>
<table border="0">
<tbody>
<tr>
<td><a name="book076790768x"></a><a name="N65650"></a><a href="http://www.amazon.com/exec/obidos/ASIN/076790768x/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/076790768x.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/076790768x/ref=nosim/armaties" target="_blank">Slack</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/076790768x/ref=nosim/armaties" target="_blank">Tom DeMarco</a></span>If Tom DeMarco writes it, read it, that&#8217;s my advice. This one, billed as a &#8220;Handbook for Managers, Entrepreneurs, and CEOs&#8221;, is about &#8220;Getting past burnout, busywork, and the myth of total efficiency.&#8221; The basic premise is that when organizations run too &#8220;lean and mean&#8221;, they lose capacity for change and innovation. We&#8217;ve all see it happen: DeMarco documents and explains the effect and what to do about it.</p>
<p>Tom reminds us that we all have responsibility to lead our companies out of the darkness. He feels that when we look at Dilbert, we need to ask ourselves, as Dilberts all, what we should do instead of the counter-productive responses that Dilbert too often shows. I think Tom is a little hard on Dilbert, who does try sometimes. Maybe Dilbert is just beaten down. We&#8217;re not beaten down yet: let&#8217;s change the world, one more time.</td>
</tr>
</tbody>
</table>
<p><a name="book1556158238"></a><a name="N65664"></a><a href="http://www.amazon.com/exec/obidos/ASIN/1556158238/ref=nosim/armaties" target="_blank"><img src="http://xprogramming.com/images/1556158238.jpg" border="1" alt="image" hspace="10" vspace="10" align="left" /></a></p>
<h1><a href="http://www.amazon.com/exec/obidos/ASIN/1556158238/ref=nosim/armaties" target="_blank">Dynamics of Software Development</a></h1>
<p><span class="author"><a href="http://www.amazon.com/exec/obidos/ASIN/1556158238/ref=nosim/armaties" target="_blank">Jim McCarthy</a></span></p>
<p>I&#8217;m embarrassed to report that Jim wrote to me recently and asked me why I hadn&#8217;t reviewed this book. I was embarrassed because it is one of my favorites but somehow got left out of the review stack. Sorry, Jim!</p>
<p>The book is a collection of &#8220;rules&#8221; for &#8220;delivering great software on time&#8221;. Many of them have entered the lexicon of programmers everywhere: &#8220;Don&#8217;t Flip the Bozo Bit&#8221;, and &#8220;Don&#8217;t Go Dark&#8221; are two of my favorites. I agree with most everything in here. Jim was Extreme before Extreme was cool! If you haven&#8217;t read this book, you should.</p>
]]></content:encoded>
			<wfw:commentRss>http://xprogramming.com/book/books20020203/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

