<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"	>
<channel>
	<title>Comments on: Extreme Integration: The future of software development?</title>
	<atom:link href="http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/</link>
	<description>Johannes Brodwall&#039;s Musings on Software Architecture and Programming</description>
	<lastBuildDate>Fri, 12 Mar 2010 19:22:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: gavinclarkeuk</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-127587</link>
		<dc:creator>gavinclarkeuk</dc:creator>
		<pubDate>Tue, 18 Aug 2009 21:44:50 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-127587</guid>
		<description>Much as I like it this approach still allows people to easily push out code to production without writing tests for it first (as already mentioned). I wonder if there is a way to automate forcing people to write the tests first?&lt;br&gt;&lt;br&gt;you could check code coverage before checking in, but I don&#039;t think that goes far enough. As we all know coverage != tested.&lt;br&gt;&lt;br&gt;I&#039;m thinking you might be able to write an issue tracking system which requires acceptance tests to be defined for each issue, and then do some validation when you check in code that ensures the code you checkin is covered by the relevant acceptance tests (linking with an issue id in the checkin comment).  It would need to allow changes to existing acceptance tests too.&lt;br&gt;&lt;br&gt;This doesn&#039;t work for refactorings though, as you are relying on the existing tests, not new ones. Perhaps we also need a tool to do some automated invariance testing - just auto generate tests that run on the old and new version of a class/module and check no behaviour has changed between revisions (remember artifactory?). Any API or behaviour changes would have to have a new or modified acceptance test anyway.&lt;br&gt;&lt;br&gt;The more I look at this space the more I think developers need tools which force them to do the right thing, not just allow them to do it.</description>
		<content:encoded><![CDATA[<p>Much as I like it this approach still allows people to easily push out code to production without writing tests for it first (as already mentioned). I wonder if there is a way to automate forcing people to write the tests first?</p>
<p>you could check code coverage before checking in, but I don&#39;t think that goes far enough. As we all know coverage != tested.</p>
<p>I&#39;m thinking you might be able to write an issue tracking system which requires acceptance tests to be defined for each issue, and then do some validation when you check in code that ensures the code you checkin is covered by the relevant acceptance tests (linking with an issue id in the checkin comment).  It would need to allow changes to existing acceptance tests too.</p>
<p>This doesn&#39;t work for refactorings though, as you are relying on the existing tests, not new ones. Perhaps we also need a tool to do some automated invariance testing &#8211; just auto generate tests that run on the old and new version of a class/module and check no behaviour has changed between revisions (remember artifactory?). Any API or behaviour changes would have to have a new or modified acceptance test anyway.</p>
<p>The more I look at this space the more I think developers need tools which force them to do the right thing, not just allow them to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gavinclarkeuk</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126672</link>
		<dc:creator>gavinclarkeuk</dc:creator>
		<pubDate>Tue, 18 Aug 2009 14:44:50 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126672</guid>
		<description>Much as I like it this approach still allows people to easily push out code to production without writing tests for it first (as already mentioned). I wonder if there is a way to automate forcing people to write the tests first?&lt;br&gt;&lt;br&gt;you could check code coverage before checking in, but I don&#039;t think that goes far enough. As we all know coverage != tested.&lt;br&gt;&lt;br&gt;I&#039;m thinking you might be able to write an issue tracking system which requires acceptance tests to be defined for each issue, and then do some validation when you check in code that ensures the code you checkin is covered by the relevant acceptance tests (linking with an issue id in the checkin comment).  It would need to allow changes to existing acceptance tests too.&lt;br&gt;&lt;br&gt;This doesn&#039;t work for refactorings though, as you are relying on the existing tests, not new ones. Perhaps we also need a tool to do some automated invariance testing - just auto generate tests that run on the old and new version of a class/module and check no behaviour has changed between revisions (remember artifactory?). Any API or behaviour changes would have to have a new or modified acceptance test anyway.&lt;br&gt;&lt;br&gt;The more I look at this space the more I think developers need tools which force them to do the right thing, not just allow them to do it.</description>
		<content:encoded><![CDATA[<p>Much as I like it this approach still allows people to easily push out code to production without writing tests for it first (as already mentioned). I wonder if there is a way to automate forcing people to write the tests first?</p>
<p>you could check code coverage before checking in, but I don&#39;t think that goes far enough. As we all know coverage != tested.</p>
<p>I&#39;m thinking you might be able to write an issue tracking system which requires acceptance tests to be defined for each issue, and then do some validation when you check in code that ensures the code you checkin is covered by the relevant acceptance tests (linking with an issue id in the checkin comment).  It would need to allow changes to existing acceptance tests too.</p>
<p>This doesn&#39;t work for refactorings though, as you are relying on the existing tests, not new ones. Perhaps we also need a tool to do some automated invariance testing &#8211; just auto generate tests that run on the old and new version of a class/module and check no behaviour has changed between revisions (remember artifactory?). Any API or behaviour changes would have to have a new or modified acceptance test anyway.</p>
<p>The more I look at this space the more I think developers need tools which force them to do the right thing, not just allow them to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jhannes</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126671</link>
		<dc:creator>jhannes</dc:creator>
		<pubDate>Sat, 15 Aug 2009 14:58:31 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126671</guid>
		<description>Thanks for insightful comments and links. The Enterprise Continuous Integration chart was interesting. Do you have more information on the specifics of the Reporting row?&lt;br&gt;&lt;br&gt;I agree that testing is the big barrier. It is what requires improvements in practice, not just tools, and that&#039;s always harder.&lt;br&gt;&lt;br&gt;I&#039;d also like to hear your thoughts on the auto-checkin and checkout ideas I outlined.</description>
		<content:encoded><![CDATA[<p>Thanks for insightful comments and links. The Enterprise Continuous Integration chart was interesting. Do you have more information on the specifics of the Reporting row?</p>
<p>I agree that testing is the big barrier. It is what requires improvements in practice, not just tools, and that&#39;s always harder.</p>
<p>I&#39;d also like to hear your thoughts on the auto-checkin and checkout ideas I outlined.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JeffreyFredrick</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126670</link>
		<dc:creator>JeffreyFredrick</dc:creator>
		<pubDate>Sat, 15 Aug 2009 06:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126670</guid>
		<description>I&#039;ve you mourn the loss of JUnitMax you should check out Infinitest: &lt;a href=&quot;http://infinitest.org&quot; rel=&quot;nofollow&quot;&gt;http://infinitest.org&lt;/a&gt;&lt;br&gt;&lt;br&gt;I don&#039;t think your vision of the future sounds far fetched at all. A few years ago I was on a project where we used David Saff&#039;s experimental continuous test runner and I thought that it was fantastic. We also had very small checkins form the policy of competitive commits: each pair tried to checkin more frequently to make merging the other pair&#039;s problem!&lt;br&gt;&lt;br&gt;However I do think the idea of abundant automated tests will be the last element to go mainstream in practice, even later that distributed source control. Most of the teams I see actually do far less automated testing than you&#039;d think, and often even less than they think (they assume someone else is writing more tests than they are).&lt;br&gt;&lt;br&gt;One element of this kind of environment you didn&#039;t mention is the reporting aspect. When you have all these actions happening automatically it is much easier to know what builds are where, what the difference are between each build, etc.&lt;br&gt;&lt;br&gt;Other than that I think your description fits very well with what Eric and I were describing as &quot;Enterprise Continuous Integration&quot;. Just today in IM I&#039;d said that at the limit our Elements of ECI (&lt;a href=&quot;http://www.anthillpro.com/html/resources/elements-enterprise-ci.html&quot; rel=&quot;nofollow&quot;&gt;http://www.anthillpro.com/html/resources/elemen...&lt;/a&gt;) would become Continuous Building, Continuous Deploying, Continuous Testing and Continuous Reporting, which is an idea I plan to develop further.</description>
		<content:encoded><![CDATA[<p>I&#39;ve you mourn the loss of JUnitMax you should check out Infinitest: <a href="http://infinitest.org" rel="nofollow">http://infinitest.org</a></p>
<p>I don&#39;t think your vision of the future sounds far fetched at all. A few years ago I was on a project where we used David Saff&#39;s experimental continuous test runner and I thought that it was fantastic. We also had very small checkins form the policy of competitive commits: each pair tried to checkin more frequently to make merging the other pair&#39;s problem!</p>
<p>However I do think the idea of abundant automated tests will be the last element to go mainstream in practice, even later that distributed source control. Most of the teams I see actually do far less automated testing than you&#39;d think, and often even less than they think (they assume someone else is writing more tests than they are).</p>
<p>One element of this kind of environment you didn&#39;t mention is the reporting aspect. When you have all these actions happening automatically it is much easier to know what builds are where, what the difference are between each build, etc.</p>
<p>Other than that I think your description fits very well with what Eric and I were describing as &#8220;Enterprise Continuous Integration&#8221;. Just today in IM I&#39;d said that at the limit our Elements of ECI (<a href="http://www.anthillpro.com/html/resources/elements-enterprise-ci.html" rel="nofollow"></a><a href="http://www.anthillpro.com/html/resources/elemen.." rel="nofollow">http://www.anthillpro.com/html/resources/elemen..</a>.) would become Continuous Building, Continuous Deploying, Continuous Testing and Continuous Reporting, which is an idea I plan to develop further.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: News and Stuff, August 14 &#124; The Build Doctor</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126669</link>
		<dc:creator>News and Stuff, August 14 &#124; The Build Doctor</dc:creator>
		<pubDate>Fri, 14 Aug 2009 16:22:48 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126669</guid>
		<description>[...] Extreme Integration - not sure I like the term, but it possible has more pizazz (as a term) than continuous deployment. [...]</description>
		<content:encoded><![CDATA[<p>[...] Extreme Integration &#8211; not sure I like the term, but it possible has more pizazz (as a term) than continuous deployment. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jhannes</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126668</link>
		<dc:creator>jhannes</dc:creator>
		<pubDate>Wed, 12 Aug 2009 12:25:43 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126668</guid>
		<description>Thanks for your comments and insights, Bjørn. I should examine TeamCity more. Probably not to use it, but to see what it feels like.</description>
		<content:encoded><![CDATA[<p>Thanks for your comments and insights, Bjørn. I should examine TeamCity more. Probably not to use it, but to see what it feels like.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jhannes</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126667</link>
		<dc:creator>jhannes</dc:creator>
		<pubDate>Wed, 12 Aug 2009 12:23:33 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126667</guid>
		<description>No sweat! We can fix the above description with very little hardware. At least if you seize control of the app server.</description>
		<content:encoded><![CDATA[<p>No sweat! We can fix the above description with very little hardware. At least if you seize control of the app server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thommyb</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126664</link>
		<dc:creator>thommyb</dc:creator>
		<pubDate>Tue, 11 Aug 2009 18:42:36 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126664</guid>
		<description>Its kind of ironic that the people that demand quality also often deny to pay the bill of the extra hardware needed to support the wish..</description>
		<content:encoded><![CDATA[<p>Its kind of ironic that the people that demand quality also often deny to pay the bill of the extra hardware needed to support the wish..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bjerkeli</title>
		<link>http://johannesbrodwall.com/2009/08/11/extreme-integration-the-future-of-software-development/comment-page-1/#comment-126663</link>
		<dc:creator>bjerkeli</dc:creator>
		<pubDate>Tue, 11 Aug 2009 16:41:01 +0000</pubDate>
		<guid isPermaLink="false">http://johannesbrodwall.com/?p=421#comment-126663</guid>
		<description>Some interesting views here as always Johannes.&lt;br&gt;&lt;br&gt;Funny that you are pointing out that we are really heading back to where we came from. In 1996 the deployment step to production was to do cvs up in the source-directory where the perl-scripts accessed by mod_perl or mod_cgi was placed. Immediate upgrade and deployment in seconds. &lt;br&gt;&lt;br&gt;There were a lot of things that could go wrong, continuous staging and testing was a different story back then. What I think we could learn from these practices is that you can build and deploy systems avoiding all those tedious package-deploy-restart cycles that both complicates the process and increases lead-time to production. Add the staging and testing that you describe in your article to a system where immediate deployment is possible with minimum orchestration is needed; I hope that will be the direction of the future.&lt;br&gt;&lt;br&gt;The stepwise integration that you are talking about has been provided in products like TeamCity for quite a few years, although I am not familiar with widespread deployment of this product. I fully support your viewpoint on distributed source control being the key here. The functionality need to be intrinsic in the SCM, not in a product put on top. &lt;br&gt;&lt;br&gt;Often I find IT-departments standing in the way when opting for staging/test and acceptance infrastructure that are in the hands of the developers. Getting that problem out of the way, and in addition going for open-sourcing of code that you normally store in closed in-house repos, you don&#039;t even need to have a repository internally. Some of the answers to our problems with getting the equipment we need to facilitate the steps might be found in the cloud, both as a service and a platform; configuring and provisioning a new staging environment might be done in minutes.</description>
		<content:encoded><![CDATA[<p>Some interesting views here as always Johannes.</p>
<p>Funny that you are pointing out that we are really heading back to where we came from. In 1996 the deployment step to production was to do cvs up in the source-directory where the perl-scripts accessed by mod_perl or mod_cgi was placed. Immediate upgrade and deployment in seconds. </p>
<p>There were a lot of things that could go wrong, continuous staging and testing was a different story back then. What I think we could learn from these practices is that you can build and deploy systems avoiding all those tedious package-deploy-restart cycles that both complicates the process and increases lead-time to production. Add the staging and testing that you describe in your article to a system where immediate deployment is possible with minimum orchestration is needed; I hope that will be the direction of the future.</p>
<p>The stepwise integration that you are talking about has been provided in products like TeamCity for quite a few years, although I am not familiar with widespread deployment of this product. I fully support your viewpoint on distributed source control being the key here. The functionality need to be intrinsic in the SCM, not in a product put on top. </p>
<p>Often I find IT-departments standing in the way when opting for staging/test and acceptance infrastructure that are in the hands of the developers. Getting that problem out of the way, and in addition going for open-sourcing of code that you normally store in closed in-house repos, you don&#39;t even need to have a repository internally. Some of the answers to our problems with getting the equipment we need to facilitate the steps might be found in the cloud, both as a service and a platform; configuring and provisioning a new staging environment might be done in minutes.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
