<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Unruly Rambling - agile tag</title>
  <link>http://www.shoesobjects.com/blog/tags/agile/</link>
  <description>My thoughts on software, technology, and life in general</description>
  <language>en</language>
  <copyright>Mike Shoemaker</copyright>
  <lastBuildDate>Sun, 31 Jan 2010 17:47:37 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>My thoughts on TDD after one small project</title>
    <link>http://www.shoesobjects.com/blog/2004/08/23/my_thoughts_on_tdd_after_one_small_project.html</link>
    
      
        <description>
          &lt;p&gt; First, I must disclose that I really only did Test Driven Development in the beginning while coming up with the object model and basic methods.  It worked out well for this.  I found that it was much harder to drive the detailed design using TDD at later stages.  Although, i&#039;ll give the approach the benefit of the doubt and say that it was my lack of experience using TDD that caused this.   &lt;/p&gt;
&lt;p&gt; The project that I worked on was a calculation engine that takes two objects, each with various numbers of subclasses(I won&#039;t bore you with the business details) and outputs numeric values.  The computation is fairly simple but output is pretty detailed and isn&#039;t easy to see problems by simply eye balling the data.  Unit tests worked out fantastic here.  We have over 120 unit tests that exercise positive and negative paths.  I can honestly say that if management came to us tomorrow and asked for another calculation scenario, we could introduce it and be confident that we didn&#039;t break anything else almost immediately.  Pretty slick.   &lt;/p&gt;
&lt;p&gt; Although this was a very positive experience, there were some downfalls.  When approaching a project with TDD in mind.  I&#039;m having a hard time determining how to estimate it.  Since you are not doing BDUF (Big Design Up Front), the scope of change is quite unknown.  If you haven&#039;t worked with a given project before(legacy or new), it would be very hard to estimate resources or timelines.   &lt;/p&gt;
&lt;p&gt; In my world at work, we are typically give a production date and then figure the timeline out backwards.  This allows us to determine how many people it will take to meet the predetermined date.  I realized, this approach is less than optimal, but I have to live with it.  With this being the case, how can you not do BDUF?   &lt;/p&gt;
        </description>
      
      
    
    
    
    <category>java</category>
    
    <comments>http://www.shoesobjects.com/blog/2004/08/23/my_thoughts_on_tdd_after_one_small_project.html#comments</comments>
    <guid isPermaLink="true">http://www.shoesobjects.com/blog/2004/08/23/my_thoughts_on_tdd_after_one_small_project.html</guid>
    <pubDate>Mon, 23 Aug 2004 15:48:13 GMT</pubDate>
  </item>
  
  </channel>
</rss>

