<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for Adept Technologies</title>
	<atom:link href="http://www.adeptechllc.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adeptechllc.com</link>
	<description>Software, Agile Process and Security</description>
	<lastBuildDate>Mon, 18 Mar 2013 10:33:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.1</generator>
	<item>
		<title>Comment on Enabling TDD by Integrating Spring and StrutsTestCase by Amélie</title>
		<link>http://www.adeptechllc.com/2008/11/06/enabling-tdd-by-integrating-spring-and-strutstestcase/comment-page-1/#comment-4693</link>
		<dc:creator>Amélie</dc:creator>
		<pubDate>Mon, 18 Mar 2013 10:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=131#comment-4693</guid>
		<description>Thanks a lot. I was in the same context and that was exactly what I needed. Without your help I would probably never have achieved this!

Just one piece was missing for me - how to retrieve the mocks from the Spring application context to setup my test case.

Here&#039;s what I did (using mockito):

- in testApplicationContext.xml:
&lt;code&gt;
   &lt;bean id=&quot;myService&quot; class=&quot;org.mockito.Mockito&quot; factory-method=&quot;mock&quot;&gt;
      &lt;constructor-arg value=&quot;com.myproject.MyService&quot; /&gt;
   &lt;/bean&gt;
&lt;/code&gt;

- in the test class:
&lt;code&gt;
      XmlWebApplicationContext applicationContext = (XmlWebApplicationContext) sandbox.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
      MyService myService = (MyService) applicationContext.getBean(&quot;myService&quot;);
      when(myService.doSomething()).thenReturn(something);
&lt;/code&gt;

Just wondering if this is the right way to do?</description>
		<content:encoded><![CDATA[<p>Thanks a lot. I was in the same context and that was exactly what I needed. Without your help I would probably never have achieved this!</p>
<p>Just one piece was missing for me &#8211; how to retrieve the mocks from the Spring application context to setup my test case.</p>
<p>Here&#8217;s what I did (using mockito):</p>
<p>- in testApplicationContext.xml:<br />
<code><br />
   &lt;bean id="myService" class="org.mockito.Mockito" factory-method="mock"&gt;<br />
      &lt;constructor-arg value="com.myproject.MyService" /&gt;<br />
   &lt;/bean&gt;<br />
</code></p>
<p>- in the test class:<br />
<code><br />
      XmlWebApplicationContext applicationContext = (XmlWebApplicationContext) sandbox.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);<br />
      MyService myService = (MyService) applicationContext.getBean("myService");<br />
      when(myService.doSomething()).thenReturn(something);<br />
</code></p>
<p>Just wondering if this is the right way to do?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Spring Framework: good for the gander? by Adrian Cumiskey</title>
		<link>http://www.adeptechllc.com/2011/04/13/spring-framework-good-for-the-gander/comment-page-1/#comment-4690</link>
		<dc:creator>Adrian Cumiskey</dc:creator>
		<pubDate>Tue, 13 Dec 2011 16:48:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=329#comment-4690</guid>
		<description>Checkout powermock (http://code.google.com/p/powermock/) if you need to override final methods.  This is a great library that will help you workaround and test the worst of badly designed, unmodular, godlike, procedural style and static initializing Java code!</description>
		<content:encoded><![CDATA[<p>Checkout powermock (<a href="http://code.google.com/p/powermock/" rel="nofollow">http://code.google.com/p/powermock/</a>) if you need to override final methods.  This is a great library that will help you workaround and test the worst of badly designed, unmodular, godlike, procedural style and static initializing Java code!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Unit testing using in-memory databases by Siddharth</title>
		<link>http://www.adeptechllc.com/2009/07/02/unit-testing-using-in-memory-databases/comment-page-1/#comment-4688</link>
		<dc:creator>Siddharth</dc:creator>
		<pubDate>Thu, 10 Nov 2011 20:56:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=224#comment-4688</guid>
		<description>Thanks a lot. This saved my life.</description>
		<content:encoded><![CDATA[<p>Thanks a lot. This saved my life.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Process as Religion or How Agile Will Fail by Agile as Religion &#124; Agile Doctor</title>
		<link>http://www.adeptechllc.com/2009/03/10/process-as-religion-or-how-agile-will-fail/comment-page-1/#comment-4687</link>
		<dc:creator>Agile as Religion &#124; Agile Doctor</dc:creator>
		<pubDate>Thu, 06 Oct 2011 05:42:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=177#comment-4687</guid>
		<description>[...] recently read a blog by Keith McMillan about this -  called Process as Religion or How Agile will Fail. I don’t throw his name around because he is one of the anointed disciples, but merely to give [...]</description>
		<content:encoded><![CDATA[<p>[...] recently read a blog by Keith McMillan about this -  called Process as Religion or How Agile will Fail. I don’t throw his name around because he is one of the anointed disciples, but merely to give [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What to test? by Keith McMillan</title>
		<link>http://www.adeptechllc.com/2011/09/22/what-to-test/comment-page-1/#comment-4686</link>
		<dc:creator>Keith McMillan</dc:creator>
		<pubDate>Thu, 29 Sep 2011 11:47:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=335#comment-4686</guid>
		<description>Hi Jason,

As usual, very insightful comments!

With respect to the static analysis tools, my example was a bit of a throw-away: years ago when I had the problem, the IDE in question (eclipse in fact) didn&#039;t have that sophisticated a set of static analysis tools, so it didn&#039;t highlight my error, but that&#039;s not really the point. As you allude to, my point was sometimes simple things add value, and so the advice to &quot;test what&#039;s likely to break&quot; is somewhat difficult to follow. It&#039;s also difficult for a static analysis tool to say &quot;that&#039;s wrong&quot; usually they&#039;re limited to saying &quot;that&#039;s suspicious.&quot;  People have to do the thinking, and that&#039;s where we have to use unit tests to capture the intention of the code.  Static analysis will, I think, always be limited to flagging things for further review, until computers become sentient (I for one welcome our new computer overlords).

I&#039;m also conflicted about your last point: advocating for a unit test for just a setter and getter. In fact I think I am in fact advocating for that. I could deduce the function of the test from other, higher level functions that use the property in question, but when they failed, it might take me quite a while to figure out why (and in fact, it did take me quite a while). If the &quot;unit&quot; that I&#039;m testing is an entity, then I think I come down on the side of writing a test for the getter/setter pair, even if it&#039;s tested elsewhere.

-  Keith</description>
		<content:encoded><![CDATA[<p>Hi Jason,</p>
<p>As usual, very insightful comments!</p>
<p>With respect to the static analysis tools, my example was a bit of a throw-away: years ago when I had the problem, the IDE in question (eclipse in fact) didn&#8217;t have that sophisticated a set of static analysis tools, so it didn&#8217;t highlight my error, but that&#8217;s not really the point. As you allude to, my point was sometimes simple things add value, and so the advice to &#8220;test what&#8217;s likely to break&#8221; is somewhat difficult to follow. It&#8217;s also difficult for a static analysis tool to say &#8220;that&#8217;s wrong&#8221; usually they&#8217;re limited to saying &#8220;that&#8217;s suspicious.&#8221;  People have to do the thinking, and that&#8217;s where we have to use unit tests to capture the intention of the code.  Static analysis will, I think, always be limited to flagging things for further review, until computers become sentient (I for one welcome our new computer overlords).</p>
<p>I&#8217;m also conflicted about your last point: advocating for a unit test for just a setter and getter. In fact I think I am in fact advocating for that. I could deduce the function of the test from other, higher level functions that use the property in question, but when they failed, it might take me quite a while to figure out why (and in fact, it did take me quite a while). If the &#8220;unit&#8221; that I&#8217;m testing is an entity, then I think I come down on the side of writing a test for the getter/setter pair, even if it&#8217;s tested elsewhere.</p>
<p>-  Keith</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What to test? by Jason Titus</title>
		<link>http://www.adeptechllc.com/2011/09/22/what-to-test/comment-page-1/#comment-4682</link>
		<dc:creator>Jason Titus</dc:creator>
		<pubDate>Fri, 23 Sep 2011 12:47:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=335#comment-4682</guid>
		<description>Keith,

   I won&#039;t argue with the validity of your post.  As usual, you are talking about good stuff, and right on.  I will say, however, that I feel not enough people rely on the compiler and static analysis tools to assist.  The goal of your unit tests is to insure your production software is doing the right thing.  In my mind, that is also the goal of the compiler and static analysis tools.  Both of which people seem to discount.  In fact, I&#039;ve seen that very issue you identify highlighted in Eclipse when configured correctly so you&#039;d have a much harder time missing it.  In this particular case I believe the tool that would identify the condition was CheckStyle.  We&#039;ve had a zero warnings policy and the first time you do something like this it will stick out on the warnings tab like a sore thumb.  It can catch tons of simple things like single equals instead of double, poor null handling, etc.

   If you are using a dynamic language, you have a lot more of this burden placed on your unit tests.  That fact makes me conflicted as to whether I&#039;m a fan of them or not.

   Again, I am strongly in agreement that unit tests (and TDD) are invaluable to a development project.  I&#039;m just out to promote other tools that can assist as well.

   One other thing I will say is that I expect you are not advocating a simple test specifically for the getter and setter in this case.  In my opinion, unit tests are great, but if something like that isn&#039;t exercised by a unit test that provides value in some other way, it is likely dead code (although it wouldn&#039;t have required you to look at it for a day if it were dead code, obviously).  TDD helps to keep code clean in that respect, in a way 100% unit test coverage metrics doesn&#039;t.

Jason</description>
		<content:encoded><![CDATA[<p>Keith,</p>
<p>   I won&#8217;t argue with the validity of your post.  As usual, you are talking about good stuff, and right on.  I will say, however, that I feel not enough people rely on the compiler and static analysis tools to assist.  The goal of your unit tests is to insure your production software is doing the right thing.  In my mind, that is also the goal of the compiler and static analysis tools.  Both of which people seem to discount.  In fact, I&#8217;ve seen that very issue you identify highlighted in Eclipse when configured correctly so you&#8217;d have a much harder time missing it.  In this particular case I believe the tool that would identify the condition was CheckStyle.  We&#8217;ve had a zero warnings policy and the first time you do something like this it will stick out on the warnings tab like a sore thumb.  It can catch tons of simple things like single equals instead of double, poor null handling, etc.</p>
<p>   If you are using a dynamic language, you have a lot more of this burden placed on your unit tests.  That fact makes me conflicted as to whether I&#8217;m a fan of them or not.</p>
<p>   Again, I am strongly in agreement that unit tests (and TDD) are invaluable to a development project.  I&#8217;m just out to promote other tools that can assist as well.</p>
<p>   One other thing I will say is that I expect you are not advocating a simple test specifically for the getter and setter in this case.  In my opinion, unit tests are great, but if something like that isn&#8217;t exercised by a unit test that provides value in some other way, it is likely dead code (although it wouldn&#8217;t have required you to look at it for a day if it were dead code, obviously).  TDD helps to keep code clean in that respect, in a way 100% unit test coverage metrics doesn&#8217;t.</p>
<p>Jason</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What&#8217;s Done in an Agile Project? by Keith McMillan</title>
		<link>http://www.adeptechllc.com/2011/08/24/whats-done-in-an-agile-project/comment-page-1/#comment-4681</link>
		<dc:creator>Keith McMillan</dc:creator>
		<pubDate>Wed, 24 Aug 2011 21:33:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=331#comment-4681</guid>
		<description>Hi Jason,

I appreciate your points. I think your definition of &quot;signed off&quot; corresponds nicely with &quot;reviewed by stakeholders&quot; in the continuum above. I think that it&#039;s a good place to aim for in terms of done-ness.

In some projects, for better or worse (mostly worse), the product owner isn&#039;t available during the sprint to review, and only shows up at the end of the sprint (and sometimes not even then) so it&#039;s sometimes a challenge to get something signed off and still get the kind of regular feedback we need in order to measure progress.

I always like to have at least two stories per iteration, even if that means making them small, so at least the team gets something done, and we don&#039;t have an all-or-nothing velocity computation as a result.

In the end, it&#039;s up to the team to decide on the most &quot;advanced&quot; definition of done they can accomplish, based on the constraints of the individual project. It&#039;s in everyone&#039;s best interest they balance the remaining uncertainty against the need for feedback in a timely fashion.</description>
		<content:encoded><![CDATA[<p>Hi Jason,</p>
<p>I appreciate your points. I think your definition of &#8220;signed off&#8221; corresponds nicely with &#8220;reviewed by stakeholders&#8221; in the continuum above. I think that it&#8217;s a good place to aim for in terms of done-ness.</p>
<p>In some projects, for better or worse (mostly worse), the product owner isn&#8217;t available during the sprint to review, and only shows up at the end of the sprint (and sometimes not even then) so it&#8217;s sometimes a challenge to get something signed off and still get the kind of regular feedback we need in order to measure progress.</p>
<p>I always like to have at least two stories per iteration, even if that means making them small, so at least the team gets something done, and we don&#8217;t have an all-or-nothing velocity computation as a result.</p>
<p>In the end, it&#8217;s up to the team to decide on the most &#8220;advanced&#8221; definition of done they can accomplish, based on the constraints of the individual project. It&#8217;s in everyone&#8217;s best interest they balance the remaining uncertainty against the need for feedback in a timely fashion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What&#8217;s Done in an Agile Project? by Jason Titus</title>
		<link>http://www.adeptechllc.com/2011/08/24/whats-done-in-an-agile-project/comment-page-1/#comment-4680</link>
		<dc:creator>Jason Titus</dc:creator>
		<pubDate>Wed, 24 Aug 2011 21:24:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=331#comment-4680</guid>
		<description>Keith -

   A term that I&#039;ve used and seen used is &quot;signed-off&quot;.  From the development team&#039;s perspective, I think the &quot;gate&quot; that is most important, or at least hits the sweet spot, is this one.  My definition of signed-off is when someone responsible for delivery of the functionality can confirm they have been given what they requested and/or need.  On some projects I&#039;ve seen the project owner give developers sign-off after quickly checking out a change on the development server where it was freshly deployed (a high level of trust between project owner and development team existed in that case).  On other projects I&#039;ve seen sign-off only occur when a QA team resource has written passing automated unit tests AND a business team has confirmed that the functionality does what is needed.  

   It seems pretty common in my experience for teams to stack up a pile of &quot;dev-complete&quot; stories that haven&#039;t been seen by anyone until the big-bang testing cycle before production release.  That is a big red flag that the release is at risk, and a fire-drill is looming.

   One of my favorite agile projects I&#039;ve been involved with required the developers to &quot;demo&quot; the story to the &quot;customer&quot; (XP project) in order to get sign-off.  No story points counted against the iteration without that sign-off.  It prevented too many stories from building up. (On a side note, I distinctly recall part of the demonstration for one story actually required me to crawl under my desk and pull the network cord out of the wall, demonstrate a failure, plug it back in before showing the subsequent success -- at the request of our customer who was watching.)

   So from my perspective, the spot on the done continuum I believe is most worthy of focus would be getting stories signed off.  If the development team indeed delivered the functionality that meets the stakeholders&#039; needs, and those stakeholders have demonstrated that to themselves somehow, then getting that code deployed to the production environment is an orthogonal problem (albeit, a critical one).

   Now, the other related question I&#039;ve also seen along the lines of this topic are -- how many stories makes a release done?  That&#039;s a whole different discussion.

   Sorry for the ramblings.  I hope you feel this is all on-topic with your ideas of what done means.

Jason</description>
		<content:encoded><![CDATA[<p>Keith -</p>
<p>   A term that I&#8217;ve used and seen used is &#8220;signed-off&#8221;.  From the development team&#8217;s perspective, I think the &#8220;gate&#8221; that is most important, or at least hits the sweet spot, is this one.  My definition of signed-off is when someone responsible for delivery of the functionality can confirm they have been given what they requested and/or need.  On some projects I&#8217;ve seen the project owner give developers sign-off after quickly checking out a change on the development server where it was freshly deployed (a high level of trust between project owner and development team existed in that case).  On other projects I&#8217;ve seen sign-off only occur when a QA team resource has written passing automated unit tests AND a business team has confirmed that the functionality does what is needed.  </p>
<p>   It seems pretty common in my experience for teams to stack up a pile of &#8220;dev-complete&#8221; stories that haven&#8217;t been seen by anyone until the big-bang testing cycle before production release.  That is a big red flag that the release is at risk, and a fire-drill is looming.</p>
<p>   One of my favorite agile projects I&#8217;ve been involved with required the developers to &#8220;demo&#8221; the story to the &#8220;customer&#8221; (XP project) in order to get sign-off.  No story points counted against the iteration without that sign-off.  It prevented too many stories from building up. (On a side note, I distinctly recall part of the demonstration for one story actually required me to crawl under my desk and pull the network cord out of the wall, demonstrate a failure, plug it back in before showing the subsequent success &#8212; at the request of our customer who was watching.)</p>
<p>   So from my perspective, the spot on the done continuum I believe is most worthy of focus would be getting stories signed off.  If the development team indeed delivered the functionality that meets the stakeholders&#8217; needs, and those stakeholders have demonstrated that to themselves somehow, then getting that code deployed to the production environment is an orthogonal problem (albeit, a critical one).</p>
<p>   Now, the other related question I&#8217;ve also seen along the lines of this topic are &#8212; how many stories makes a release done?  That&#8217;s a whole different discussion.</p>
<p>   Sorry for the ramblings.  I hope you feel this is all on-topic with your ideas of what done means.</p>
<p>Jason</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Continuous Integration isn&#8217;t a tool! by What&#8217;s Done in an Agile Project? &#124; Adept Technologies</title>
		<link>http://www.adeptechllc.com/2009/11/04/continuous-integration-isnt-a-tool/comment-page-1/#comment-4679</link>
		<dc:creator>What&#8217;s Done in an Agile Project? &#124; Adept Technologies</dc:creator>
		<pubDate>Wed, 24 Aug 2011 20:38:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=259#comment-4679</guid>
		<description>[...] The sweet spot for most folks seems to be in building on a shared development server, with some sort of robust suite of tests to assure that new functionality is at least working per the tests, and that nothing that used to work was broken (subject always to the suite of tests being reasonable).  This most folks will recognize as Continuous Integration (although you should really read Continuous Integration isn&#8217;t a Tool!) [...]</description>
		<content:encoded><![CDATA[<p>[...] The sweet spot for most folks seems to be in building on a shared development server, with some sort of robust suite of tests to assure that new functionality is at least working per the tests, and that nothing that used to work was broken (subject always to the suite of tests being reasonable).  This most folks will recognize as Continuous Integration (although you should really read Continuous Integration isn&#8217;t a Tool!) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Process as Religion or How Agile Will Fail by Jamie</title>
		<link>http://www.adeptechllc.com/2009/03/10/process-as-religion-or-how-agile-will-fail/comment-page-1/#comment-4677</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Wed, 10 Aug 2011 14:09:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.adeptechllc.com/?p=177#comment-4677</guid>
		<description>You are right.  Most religions have a small piece of truth buried beneath the process (ceromony).

The problem is that most people don&#039;t understand what you do, namely the spirit of agile and not its implementation.

You may like this, which also has some comments on the matter.

http://www.financialagile.com/reflections/9-general/104-followers

J</description>
		<content:encoded><![CDATA[<p>You are right.  Most religions have a small piece of truth buried beneath the process (ceromony).</p>
<p>The problem is that most people don&#8217;t understand what you do, namely the spirit of agile and not its implementation.</p>
<p>You may like this, which also has some comments on the matter.</p>
<p><a href="http://www.financialagile.com/reflections/9-general/104-followers" rel="nofollow">http://www.financialagile.com/reflections/9-general/104-followers</a></p>
<p>J</p>
]]></content:encoded>
	</item>
</channel>
</rss>
