<?xml version="1.0" encoding="UTF-8"?>
<GoodreadsResponse>
	<Request>
		<authentication>false</authentication>
		    <method><![CDATA[]]></method>
	</Request>
	
<book id="44919">
  <title><![CDATA[Working Effectively with Legacy Code (Robert C. Martin Series)]]></title>
  <isbn><![CDATA[0131177052]]></isbn>
  <isbn13><![CDATA[9780131177055]]></isbn13>
    <image_url>http://photo.goodreads.com/books/1170271723m/44919.jpg</image_url>
    <work>
  <best_book_id type="integer">44919</best_book_id>
  <books_count type="integer">1</books_count>
  <default_description>This is the eBook version of the printed book. If the print book includes a CD-ROM, this content is not included within the eBook version. &lt;B&gt;Get more out of your legacy systems: more performance, functionality, reliability, and manageability&lt;/B&gt; Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.  &lt;P&gt;The topics covered include&lt;/P&gt; &lt;UL&gt; &lt;LI&gt;Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance  &lt;LI&gt;Getting legacy code into a test harness  &lt;LI&gt;Writing tests that protect you against introducing new problems  &lt;LI&gt;Techniques that can be used with any language or platform-with examples in Java, C++, C, and C#  &lt;LI&gt;Accurately identifying where code changes need to be made  &lt;LI&gt;Coping with legacy systems that aren't object-oriented  &lt;LI&gt;Handling applications that don't seem to have any structure&lt;/LI&gt;&lt;/UL&gt; &lt;P&gt;This book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.&lt;/P&gt;</default_description>
  <id type="integer">44241</id>
  <media_type nil="true"></media_type>
  <original_language_id type="integer" nil="true"></original_language_id>
  <original_publication_day type="integer">2</original_publication_day>
  <original_publication_month type="integer">10</original_publication_month>
  <original_publication_year type="integer">2004</original_publication_year>
  <original_title>Working Effectively with Legacy Code (Robert C. Martin Series)</original_title>
  <rating_dist>total:40|5:0|4:1|3:1|2:0|1:0|</rating_dist>
  <ratings_count type="integer">40</ratings_count>
  <ratings_sum type="integer">163</ratings_sum>
  <reviews_count type="integer">103</reviews_count>
  <text_reviews_count type="integer">6</text_reviews_count>
</work>

  <average_rating><![CDATA[4.08]]></average_rating>
  <ratings_count><![CDATA[40]]></ratings_count>
  <text_reviews_count><![CDATA[6]]></text_reviews_count>
  <url><![CDATA[http://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code]]></url>
  <authors>
        <author id="25201">
      <name><![CDATA[Michael Feathers]]></name>
      <role><![CDATA[]]></role>
      <url><![CDATA[http://www.goodreads.com/author/show/25201.Michael_Feathers]]></url>
      <average_rating><![CDATA[4.08]]></average_rating>
      <ratings_count><![CDATA[40]]></ratings_count>
      <text_reviews_count><![CDATA[6]]></text_reviews_count>
    </author>
      </authors>
    <reviews start="1" end="20" total="103">
    <review id="45320675">
    <user id="364832">
    <name><![CDATA[Avdi]]></name>
    <location><![CDATA[Shrewsbury, PA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/364832-avdi?utm_medium=api]]></url>
  </user>
      <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="development" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Fri Aug 01 00:00:00 -0700 2008</read_at>
  <date_added>Tue Feb 03 19:45:14 -0800 2009</date_added>
  <date_updated>Tue Feb 03 19:47:21 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[This is without question one of the essential books on my software development bookshelf.  The dirty secret of software is that 80% or more if it is hacking your way through thick tangles of legacy code.  This book is your survival guide in that jungle.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/45320675?utm_medium=api]]></url>
</review>
    <review id="39505721">
    <user id="536589">
    <name><![CDATA[Tom]]></name>
    <location><![CDATA[Chicago, IL]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/536589-tom?utm_medium=api]]></url>
  </user>
      <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="nonfiction" />
        <shelf name="own" />
        <shelf name="tech" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Thu Dec 18 00:00:00 -0800 2008</read_at>
  <date_added>Sun Dec 07 07:23:00 -0800 2008</date_added>
  <date_updated>Fri Dec 26 07:10:56 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[This is a great book and an absolute must-read for all software developers.  Feather's definition of legacy code is code without unit tests, and the book provides a plethora of techniques for adding tests to your code.  I will definitely be referring back to this book time and time again.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/39505721?utm_medium=api]]></url>
</review>
    <review id="29833510">
    <user id="931201">
    <name><![CDATA[Ryan]]></name>
    <location><![CDATA[Mountain View, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/931201-ryan-platte?utm_medium=api]]></url>
  </user>
      <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[anyone who cares about refactoring]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at>Sun Jan 01 00:00:00 -0800 2006</read_at>
  <date_added>Mon Aug 11 06:35:29 -0700 2008</date_added>
  <date_updated>Mon Aug 11 06:40:16 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[Authoritative look at how to slice and dice messy code to get it under control. It's hard work, especially to do it right, but Feathers delivers well-thought-through principles and rudiments to take those steaming piles of untested but working and mission-critical code and get them under a reliable ...<a href="http://www.goodreads.com/review/show/29833510">more...</a>]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/29833510?utm_medium=api]]></url>
</review>
    <review id="12377461">
    <user id="591383">
    <name><![CDATA[Spencer]]></name>
    <location><![CDATA[Kaysville, UT]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/591383-spencer-uresk?utm_medium=api]]></url>
  </user>
      <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sat Jan 12 22:08:39 -0800 2008</date_added>
  <date_updated>Sat Jan 12 22:10:00 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[This book had some good tips and techniques for working with legacy code, but the author missed the most obvious (and best) way to deal with having to work with legacy code: trick someone else into doing it.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/12377461?utm_medium=api]]></url>
</review>
    <review id="25032454">
    <user id="1067387">
    <name><![CDATA[Vladimir]]></name>
    <location><![CDATA[Redmond, WA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1067387-vladimir-drozdenko?utm_medium=api]]></url>
  </user>
      <rating>3</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Fri Jun 20 21:13:08 -0700 2008</date_added>
  <date_updated>Fri Jun 20 21:21:03 -0700 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[If you familiar with refactoring concepts and design patterns, I don't think this book will be a revelation. But generally this is pretty good reading.]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/25032454?utm_medium=api]]></url>
</review>
    <review id="14854310">
    <user id="882577">
    <name><![CDATA[obakasan]]></name>
    <location><![CDATA[ffm, Germany]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/882577-obakasan?utm_medium=api]]></url>
  </user>
      <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="programming" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Thu Feb 07 15:29:09 -0800 2008</date_added>
  <date_updated>Mon Feb 11 11:30:48 -0800 2008</date_updated>
  <read_count></read_count>
    <body><![CDATA[Interesting suggestions. We all could use more unit tests, I suppose. ]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/14854310?utm_medium=api]]></url>
</review>
    <review id="78292382">
    <user id="1104924">
    <name><![CDATA[Forrest]]></name>
    <location><![CDATA[San Francisco, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1104924-forrest-norvell?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Thu Nov 19 01:42:47 -0800 2009</date_added>
  <date_updated>Thu Nov 19 01:42:47 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/78292382?utm_medium=api]]></url>
</review>
    <review id="78006340">
    <user id="1857559">
    <name><![CDATA[Thomas]]></name>
    <location><![CDATA[Waterloo, ON, Canada]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1857559-thomas?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Mon Nov 16 15:48:33 -0800 2009</date_added>
  <date_updated>Mon Nov 16 15:48:33 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/78006340?utm_medium=api]]></url>
</review>
    <review id="77633545">
    <user id="1843909">
    <name><![CDATA[Arvind]]></name>
    <location><![CDATA[Bangalore, 19, India]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1843909-arvind?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Fri Nov 13 05:23:16 -0800 2009</date_added>
  <date_updated>Fri Nov 13 05:23:16 -0800 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/77633545?utm_medium=api]]></url>
</review>
    <review id="76228705">
    <user id="2279601">
    <name><![CDATA[Owen]]></name>
    <location><![CDATA[The United States]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2279601-owen?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Fri Oct 30 12:48:54 -0700 2009</date_added>
  <date_updated>Fri Oct 30 12:48:54 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/76228705?utm_medium=api]]></url>
</review>
    <review id="76199787">
    <user id="2893457">
    <name><![CDATA[Stefano]]></name>
    <location><![CDATA[Turin, 09, Italy]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2893457-stefano-ricciardi?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Fri Oct 30 07:15:39 -0700 2009</date_added>
  <date_updated>Fri Oct 30 07:15:39 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/76199787?utm_medium=api]]></url>
</review>
    <review id="74586890">
    <user id="2787540">
    <name><![CDATA[Julian]]></name>
    <location><![CDATA[Sofia, 42, Bulgaria]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2787540-julian?utm_medium=api]]></url>
  </user>
      <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Wed Oct 14 22:02:37 -0700 2009</date_added>
  <date_updated>Wed Oct 14 22:02:37 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/74586890?utm_medium=api]]></url>
</review>
    <review id="73764298">
    <user id="2118030">
    <name><![CDATA[Chibimagic]]></name>
    <location><![CDATA[San Diego, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2118030-chibimagic?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="programming" />
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Wed Oct 07 12:39:50 -0700 2009</date_added>
  <date_updated>Wed Oct 07 12:39:50 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/73764298?utm_medium=api]]></url>
</review>
    <review id="73402437">
    <user id="2736731">
    <name><![CDATA[Jon]]></name>
    <location><![CDATA[Carmel, IN]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2736731-jon-fuller?utm_medium=api]]></url>
  </user>
      <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sun Oct 04 09:03:05 -0700 2009</date_added>
  <date_updated>Sun Oct 04 09:03:05 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/73402437?utm_medium=api]]></url>
</review>
    <review id="73394480">
    <user id="2804369">
    <name><![CDATA[Glenn]]></name>
    <location><![CDATA[Round Rock, TX]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2804369-glenn-burnside?utm_medium=api]]></url>
  </user>
      <rating>5</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sun Oct 04 07:07:35 -0700 2009</date_added>
  <date_updated>Sun Oct 04 07:07:35 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/73394480?utm_medium=api]]></url>
</review>
    <review id="72967132">
    <user id="86362">
    <name><![CDATA[Amar]]></name>
    <location><![CDATA[San Francisco, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/86362-amar?utm_medium=api]]></url>
  </user>
      <rating>2</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Tue Sep 29 23:00:22 -0700 2009</date_added>
  <date_updated>Tue Sep 29 23:00:22 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/72967132?utm_medium=api]]></url>
</review>
    <review id="72908510">
    <user id="87495">
    <name><![CDATA[Mitch]]></name>
    <location><![CDATA[Seattle, WA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/87495-mitch?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Tue Sep 29 12:10:06 -0700 2009</date_added>
  <date_updated>Tue Sep 29 12:10:06 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/72908510?utm_medium=api]]></url>
</review>
    <review id="72671240">
    <user id="1070690">
    <name><![CDATA[Joe]]></name>
    <location><![CDATA[Canada]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/1070690-joe?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="currently-reading" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sun Sep 27 12:25:41 -0700 2009</date_added>
  <date_updated>Sun Sep 27 12:25:41 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/72671240?utm_medium=api]]></url>
</review>
    <review id="72653618">
    <user id="2781034">
    <name><![CDATA[David]]></name>
    <location><![CDATA[Irvine, CA]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2781034-david?utm_medium=api]]></url>
  </user>
      <rating>4</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Sun Sep 27 09:27:03 -0700 2009</date_added>
  <date_updated>Sun Sep 27 09:27:03 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/72653618?utm_medium=api]]></url>
</review>
    <review id="72202233">
    <user id="2649576">
    <name><![CDATA[Phil]]></name>
    <location><![CDATA[Portland, OR]]></location>        
    <url><![CDATA[http://www.goodreads.com/user/show/2649576-phil?utm_medium=api]]></url>
  </user>
      <rating>0</rating>
  <votes>0</votes>
  <sell_flag>false</sell_flag>
  <spoiler_flag>false</spoiler_flag>
  <shelves>
        <shelf name="technical-current" />
        <shelf name="to-read" />
      </shelves>
  <recommended_for><![CDATA[]]></recommended_for>
  <recommended_by><![CDATA[]]></recommended_by>
  <read_at></read_at>
  <date_added>Tue Sep 22 22:49:10 -0700 2009</date_added>
  <date_updated>Tue Sep 22 22:49:10 -0700 2009</date_updated>
  <read_count></read_count>
    <body><![CDATA[]]></body>
    <url><![CDATA[http://www.goodreads.com/review/show/72202233?utm_medium=api]]></url>
</review>
    </reviews>
  <popular_shelves>
        <shelf name="to-read" />
        <shelf name="currently-reading" />
        <shelf name="programming" />
        <shelf name="technical" />
        <shelf name="tech" />
        <shelf name="computer-science" />
        <shelf name="agile" />
        <shelf name="software-development" />
      </popular_shelves>
  <book_links>
    <book_link id="8">
  <name><![CDATA[WorldCat]]></name>
  <link>http://www.goodreads.com/book_link/follow/8?book_id=44919</link>
</book_link>
  </book_links>
</book>
</GoodreadsResponse>