<?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>Matthieu Brucher&#039;s blog &#187; Development process</title> <atom:link href="http://matt.eifelle.com/category/general/development-process/feed/" rel="self" type="application/rss+xml" /><link>http://matt.eifelle.com</link> <description></description> <lastBuildDate>Tue, 27 Jul 2010 07:04:23 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.1</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Book review: Debug It!: Find, Repair, and Prevent Bugs in Your Code</title><link>http://matt.eifelle.com/2010/03/23/book-review-debug-it-find-repair-and-prevent-bugs-in-your-code/</link> <comments>http://matt.eifelle.com/2010/03/23/book-review-debug-it-find-repair-and-prevent-bugs-in-your-code/#comments</comments> <pubDate>Tue, 23 Mar 2010 08:01:41 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[Debugger]]></category> <category><![CDATA[Development process]]></category> <category><![CDATA[Pragmatic Bookshelf]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Agile software]]></category> <category><![CDATA[Test patterns]]></category> <category><![CDATA[Test-Driven Development]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=1153</guid> <description><![CDATA[Debugging software is one of the complex actions in software development. It&#8217;s not just about using a debugger, it&#8217;s about how do you manage bugs. This book has a pragmatic (amazing, don&#8217;t you think?) approach on this matter.Content and opinions
Thee parts, three views how what debugging actually is.
The first is the pragmatic debugging: reproduce your [...]]]></description> <content:encoded><![CDATA[<p>Debugging software is one of the complex actions in software development. It&#8217;s not just about using a debugger, it&#8217;s about how do you manage bugs. This book has a pragmatic (amazing, don&#8217;t you think?) approach on this matter.<br
/> <span
id="more-1153"></span></p><h4>Content and opinions</h4><p>Thee parts, three views how what debugging actually is.</p><p>The first is the pragmatic debugging: reproduce your bug, diagnose it, fix it, and make it definitely go away. Each step is actually not mandatory done by a debugger, and in fact the book advocates <a
href="http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/">the TDD approach</a>. Making it go away is in fact thinking about what this bug meant: was it a design issue, a feature, and if it is a bug, how can all the consequences be erased?</p><p>The second is managing your bugs. The main action is to have a bug database that is healthy, meaning it must be taken care of. As the book is about a pragmatic approach, one may think the advice are pure logic, and that no one would not follow them. If this book serie has so much success, it is because those advice are in fact not that obvious for everyone!</p><p>Finally, the first two parts are in fact the theory. Practice is always a little bit different. What do you do of leagacy releases? Of third-parties libraries? Of bugs that you need to fix in a hurry in parallel? Tests is another facet of software closelly related to debugging. Once you&#8217;ve debugged something, you want your tests to assert that it won&#8217;t come again unless you see it. How can you be sure that you will have enough information when debugging your software? Finally, there are some pitfalls in software that hinder debugging. As those anti-patterns, this part is about concrete actions that must be implemented in every software project.</p><h4>Conclusion</h4><p>Pragmatic Bookshelf has the habit of having a lot of experience feedback in their books, and this one is not an exception. Sadly, there are mainly present in the first part of the book. Still, it&#8217;s not the main value of the book. I think the main value is placing debugging in the new landscape of agile software. Too many times, the word debugging is missing in agile books, replaced by only testing. They are the two sides of the same coin. The last part has its virtues as well. Debugging is not a simple workflow, there are differences for each software project.</p><p>As usual, the publisher has an excellent book on a practical subject that answers practical questions on debugging.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/77376/debug-it-find-repair-and-prevent-bugs-in-your-code"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/32590000/32595801.JPG" border="0" alt="Debug It!: Find, Repair, and Prevent Bugs in Your Code" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/77376/debug-it-find-repair-and-prevent-bugs-in-your-code">Debug It!: Find, Repair, and Prevent Bugs in Your Code</a><br
/> Price: $29.88</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 61px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/193435628X/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/31xF4DWc2mL._SL75_.jpg" width="61" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/193435628X/masbl03-20" target="_blank">Debug It!: Find, Repair, and Prevent Bugs in Your Code (Pragmatic Programmers)</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Paul Butcher</strong></span><br
/> ISBN: 193435628X</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 23.07</span><br
/> <strong>38 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 12.94</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 8</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/03/23/book-review-debug-it-find-repair-and-prevent-bugs-in-your-code/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Book review: Software Project Secrets: Why Software Projects Fail</title><link>http://matt.eifelle.com/2010/01/19/book-review-software-project-secrets-why-software-projects-fail/</link> <comments>http://matt.eifelle.com/2010/01/19/book-review-software-project-secrets-why-software-projects-fail/#comments</comments> <pubDate>Tue, 19 Jan 2010 08:03:46 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[APress]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Development process]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=1080</guid> <description><![CDATA[There are more stories of failed software projects than of failed insert_another_field projects. But why is that so? Of course, software management is young, contrary to the other fields, but there are a set of management practices that should help project managers in their jobs. Why are they failing? Is it because they are not [...]]]></description> <content:encoded><![CDATA[<p>There are more stories of failed software projects than of failed <em>insert_another_field</em> projects. But why is that so? Of course, software management is young, contrary to the other fields, but there are a set of management practices that should help project managers in their jobs. Why are they failing? Is it because they are not applied? Because the field is really too young? Or something else?<br
/> <span
id="more-1080"></span></p><h4>Content and opinions</h4><p>The first part is dedicated to the reasons why a software project can fail. It starts with 12 reasons of why software is different than other fields. This implies some assumptions that can differ from the usual project management. The last chapter is a simulation of what a failing software project is. All in all, the main message passes, but I think it is too harsh. The underlying idea is that software is different than all the other fields, but in fact, it may be all the same (at least on the points that were underlined): building a bridge is something we know how to do through usual management, but it can still run late/too expensive/&#8230; Besides, the example is overdone. It cumulates all the typical mistakes that we know now how to avoid.</p><p>The second part gives the pieces of advice to fix what the first part uncovered. Three agile processes are explained, then tools to budget with one of these processes. the last is the example of the first part reloaded with agile methods. I agree that agile methods are an answer to the software management project, but each time software management is really opposed to usual management. There are issues that are still really different in software projects: defining the needs of the users. When you build a bridge or when you build a house, you know what you want. You know the number of ways, or the number of doors/windows/rooms, &#8230; In software projects, you don&#8217;t know how many doors you need. Another issue is that people think that software is easy to do, so it&#8217;s easy to add something else (mainly because it is mandatory&#8230; or not).</p><h4>Conclusion</h4><p>If the book is really easy to read, there are some shortcuts that did bother me: the two examples are caricatures of reality (not even a real example where things went well or really bad, they are a story), and software management is also exagerated compared to project management. Perhaps the real conclusion is this one: exageration. Software project management is too difficult to be explained by a caricature: it may lead to the opposite effect.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"><a
rel="nofollow" href="http://r.popshops.com/pp/69813/the-passionate-<a rel="nofollow" href="http://r.popshops.com/pp/70573/software-project-secrets-why-software-projects-fail"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/17380000/17382509.JPG" border="0" alt="Software Project Secrets: Why Software Projects Fail" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/70573/software-project-secrets-why-software-projects-fail">Software Project Secrets: Why Software Projects Fail</a><br
/> Price: $49.49</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 50px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/1590595505/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51MYSrFv2qL._SL75_.jpg" width="50" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/1590595505/masbl03-20" target="_blank">Software Project Secrets: Why Software Projects Fail (Expert&#8217;s Voice)</a> (Hardcover)<br
/> <span
style="font-size: 0.8em;">by <strong>George Stepanek</strong></span><br
/> ISBN: 1590595505</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 49.49</span><br
/> <strong>41 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 5.61</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 6</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/01/19/book-review-software-project-secrets-why-software-projects-fail/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Thinking of good practices when developing with accelerators</title><link>http://matt.eifelle.com/2010/01/05/thinking-of-good-practices-when-developing-with-accelerators/</link> <comments>http://matt.eifelle.com/2010/01/05/thinking-of-good-practices-when-developing-with-accelerators/#comments</comments> <pubDate>Tue, 05 Jan 2010 08:48:57 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[C++]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Development process]]></category> <category><![CDATA[Distributed Computing]]></category> <category><![CDATA[High Performance Computing]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[CUDA]]></category> <category><![CDATA[Fortran]]></category> <category><![CDATA[Grid computing]]></category> <category><![CDATA[HMPP]]></category> <category><![CDATA[MPI]]></category> <category><![CDATA[Multithreaded applications]]></category> <category><![CDATA[Scientific computing]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=997</guid> <description><![CDATA[Due to the end of the free lunch, manufacturers started to provide differents processing units and developers started to go parallel. It&#8217;s kind of back to the future, as accelerators existed before today (the x87 FPU started as a coprocessor, for instance). If those accelerators were integrated into the CPU, their instruction set were also.
Today&#8217;s [...]]]></description> <content:encoded><![CDATA[<p>Due to the end of the <a
href="http://www.gotw.ca/publications/concurrency-ddj.htm">free lunch</a>, manufacturers started to provide differents processing units and developers started to go parallel. It&#8217;s kind of back to the future, as accelerators existed before today (the x87 FPU started as a coprocessor, for instance). If those accelerators were integrated into the CPU, their instruction set were also.</p><p>Today&#8217;s accelerators are not there yet. The tools are not ready yet (code translators) and usual programming practices may not be adequate. All the ecosystem will evolve, accelerators will change (GPUs are the main trend, but they will be different in a few years), so what you will do today needs to be shaped with these changes in mind. How is it possible to do so? Is it even possible?<br
/> <span
id="more-997"></span></p><h4>Available code translators</h4><p>Code translators are the easiest path to solution. I know two of them.</p><p>The first is the <a
href="http://www.pgroup.com/resources/accel.htm">PGI compiler</a>. It only supports CUDA and the Fortran and C99 language. I didn&#8217;t use it yet, also I plan of testing it in the near future. It is based on pragmas, and the compiler generates the CUDA microcode.</p><p>The second solution is <a
href="http://www.caps-entreprise.com/fr/page/index.php?id=49&amp;p_p=36">HMPP</a>. It supports more than just CUDA (also CAL/IL or OpenCL) and Fortran/C (also Java now). As the PGI compiler, it is based on pragmas, and a excellent thing is that it detects the available accelerators and launches the correct kernel (if you authorized it) or the original code. You can also modify the generated code to put your own (you can tune the code for instance, which may give you an additional x2 factor). Unfortunately, it is not possible to call functions inside the parallelized kernels, which means that only simple or badly-written (too many lines or duplicated code) kernels can be called. I think this is the same for the PGI compiler.</p><p>It seems that code translators still need work:</p><ul><li>only few accelerators are supported (CUDA, and sometimes CAL/IL or OpenCL),</li><li>almost no langage (Fortran/C/Java, a lot of Virtual Machines should be able to use them natively, without developers using specific tools),</li><li>only one function can be parallelized at a time.</li></ul><p>The last point is currently the biggest issue. You need to cut your function int pieces to have clean code and a good portability/evolutivity for the future.</p><p>This is why one still need to program a lot for those accelerators, and so we need to adapt our programming practices, develop in the accelerators&#8217; native langages (even if we know that they may disappear in a few years).</p><h4>Developping your own &#8220;tool chain&#8221; for accelerators</h4><p>For accelerators, there are a lot of things that needs to be done each time: copying some data, computing and getting some data back. These are the steps that code translators automate, in fact it is a common practice to use tools to automate stuff. The issue is that complex kernels are not supported by those translators. So what?</p><p>Creating automatic functions that will copy the data you need is in fact very common in metaprogramming. Coding the kernel on an accelerator is in fact not that difficult: the manufacturers provide the needed compilers (that&#8217;s what nVidia does and the success of the tool chain cannot be denied), and this is really the cornerstone. One has to write more code, some parts are less portable (because they are written in one of the accelerator&#8217;s languages), but in the end, with metaprogramming, the code can be better tuned, enhanced and read. This is the leverage of the accelerators.</p><h4>Conclusion</h4><p>Why do we care developing for accelerators? We know that they will go away. Before they do, they are the only way of speeding up our software. Code translators are the best tools to develop in a portable way, but they need time to support more accelerators, languages and method of programming. When CPUs will be on a par with accelerators, their progress will help compilers to target them correctly. It&#8217;s just a matter of time.<br
/> Meanwhile, metaprogrammin is the next best solution to automate processes that code translators cannot support yet.</p>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/01/05/thinking-of-good-practices-when-developing-with-accelerators/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book Review: Pragmatic Version Control Using Git</title><link>http://matt.eifelle.com/2009/10/06/book-review-pragmatic-version-control-using-git/</link> <comments>http://matt.eifelle.com/2009/10/06/book-review-pragmatic-version-control-using-git/#comments</comments> <pubDate>Tue, 06 Oct 2009 07:07:52 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Book review]]></category> <category><![CDATA[Development process]]></category> <category><![CDATA[Pragmatic Bookshelf]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[DVCS]]></category> <category><![CDATA[Git]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=790</guid> <description><![CDATA[As I was looking for a book on Bazaar (a book I didn&#8217;t find yet), I ran accross this one on Git. I heard that to use correctly Git, one needed a tutorial, so I figured a pragmatic book would do the trick.Content and opinions
The book has three main parts: a general introduction to Distributed [...]]]></description> <content:encoded><![CDATA[<p>As I was looking for a book on Bazaar (a book I didn&#8217;t find yet), I ran accross this one on Git. I heard that to use correctly Git, one needed a tutorial, so I figured a pragmatic book would do the trick.</p><p><span
id="more-790"></span></p><h4>Content and opinions</h4><p>The book has three main parts: a general introduction to Distributed Version Control Systems (DVCS) and Git, using Git everyday and what is called administration.</p><p>The introduction covers the different choices made by Git relative to Version Control. Without the actual commands, it is a gentle introduction, and if the choices does not suit you, well, you can walk away here. Its mainly an introduction to DVCS, but with a Git biais. If you find the book in a real library, you can browse this single chapter first. Then, another chapter helps you install the software package on Linux, OS X or even Windows.</p><p>The actual fun part comes next. How do you actually use Git to add and commit changes? Git has some some specifics in that matter compared to Bazaar or Mercurial. What are branches and how can they be used, how they should be used? What is the purpose of history and how it can be changed (fundamentaly changed)? Git is one of the few VCS that can actually rewrite history. There are of course enough warnings because this can be dangerous. Once history is known, it can be shared through remote repositories, and then how should a repository be organized? Finally some additional tools are presented. It&#8217;s really easy to follow the evolution, and it draws a small picture of the commands you will use every day.</p><p>The last part is abut migrating from CVS and SVN, and then how to set up a Git server. The connection between the commands in SVN and CVS is also described when you switch to Git. Of course, you will need more than CVS and SVN knowlegde to really use Git to its maximum power, the book is not about the theory of VCS, only about how to use Git. You will find a good introduction, but you will have to learn by other means the complete philosophy behind DVCS.</p><h4>Conclusion</h4><p>I didn&#8217;t know much about Git before reading the book, and the approach proposed here is efficient (although simple): from the basics to advanced workflows. You need to know a little about version control, as the Git specific parts are well explained in the book.</p><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 63px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/1934356158/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/519CeNsejdL._SL75_.jpg" width="63" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/1934356158/masbl03-20" target="_blank">Pragmatic Version Control Using Git (Pragmatic Starter Kit)</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Travis Swicegood</strong></span><br
/> ISBN: 1934356158</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 23.07</span><br
/> <strong>46 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 16.00</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 20</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/10/06/book-review-pragmatic-version-control-using-git/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Test-Driven Development</title><link>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/</link> <comments>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/#comments</comments> <pubDate>Thu, 20 Aug 2009 08:47:33 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Development process]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Test patterns]]></category> <category><![CDATA[Test-Driven Development]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=405</guid> <description><![CDATA[Test-Driven Development is one of the most controversial development processes. Instead of planning everything ahead, you develop your program incrementally as well as simultaneously and rigorously test it. Kent Beck is one of the most proeminent advocates of this method and this book is the Bible of TDD.Content and opinions
TDD is about testing while developing, [...]]]></description> <content:encoded><![CDATA[<p>Test-Driven Development is one of the most controversial development processes. Instead of planning everything ahead, you develop your program incrementally as well as simultaneously and rigorously test it. Kent Beck is one of the most proeminent advocates of this method and this book is the Bible of TDD.</p><p><span
id="more-405"></span></p><h4>Content and opinions</h4><p>TDD is about testing while developing, so it is of no wonder that the first part of the book which expose the methodology is done with the help of an example. Small steps, one of the main ideas behind TDD, in the explanations result in a lot of small chapters that explain how to do one thing.</p><p>The second part is about the main tol for TDD: xUnit. Its goal is to provide a standard tool for all languages.Well, in fact, it is different implementation, but some are not as easy to use as JUnit, the Java implementation. Some languages are more easy to cope with TDD than others.</p><p>The third part is a formal list of patterns to efficiently develop with TDD. What do you need to test something completly? What do you need to go from a test to the actual associated solution? This is the kind of questions the patterns try to answer.</p><h4>Conclusion</h4><p>There are a lot chapters with simple ideas in each one. What bothers me is that they could have been hierarchized a little bit more, but really, this is not an issue here. TDD is something that everyone should do, but there are some domains where it is more difficult than in other. For instance, hw would you test a complex stochastic scientific module? This is a question that remains open at the end of the book. For general IT, it answers every question on testing though.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69397/test-driven-development-by-example"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14580000/14587404.JPG" border="0" alt="Test Driven Development: By Example" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69397/test-driven-development-by-example">Test Driven Development: By Example</a><br
/> Price: $44.99</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0321146530/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/513PZWJDH7L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0321146530/masbl03-20" target="_blank">Test Driven Development: By Example</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Kent Beck</strong></span><br
/> ISBN: 0321146530</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 40.53</span><br
/> <strong>54 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 24.99</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.gif" class="asa_rating_stars" /> | 4 | 34</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
<!-- Served from: matt.eifelle.com @ 2010-07-30 08:53:32 by W3 Total Cache -->