<?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 on: Impersonators: Using them in showcases</title>
	<atom:link href="http://www.markhneedham.com/blog/2009/09/10/impersonators-using-them-in-showcases/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markhneedham.com/blog/2009/09/10/impersonators-using-them-in-showcases/</link>
	<description>Thoughts on Software Development</description>
	<lastBuildDate>Sat, 11 Feb 2012 23:17:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: JoshG</title>
		<link>http://www.markhneedham.com/blog/2009/09/10/impersonators-using-them-in-showcases/comment-page-1/#comment-22379</link>
		<dc:creator>JoshG</dc:creator>
		<pubDate>Wed, 09 Sep 2009 16:05:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1625#comment-22379</guid>
		<description>Impersonators, while a useful architectural pattern to aid in making early build pipeline feedback faster, are more suitably dubbed an anti-pattern from the viewpoint of showing and delivering working software.

If the backends are slow or flaky, an impersonator may help some aspects of immediate feedback to the developers - but the underlying problem must be addressed! More effort is expended working around crappy backend services than what it takes to fix them.

Using an impersonator during a showcase feels like duping the sponsor. You are not showing working software. You are showing the working facade over some smoke and mirrors.

BESIDES, if the development team has to deal with the crappy backends, then it should be HIGHLY VISIBLE to the sponsor. When the showcase is a shambles and maybe the sponsor will have enough impetus to do something about it for the good of all.

In terms of feedback, the danger is the impersonator is not doing a good job and the feedback contains false positives. Martin relayed the technique Josh Price mentioned about to have the SelfInitializingFake check against thru to the real service within selected contexts.

Mocks, stubs and fakes are useful at progressive points in the build pipeline to substitute for the real things they are masquerading. But, just like you wouldn&#039;t use a mock in a showcase environment (let along production), nor should you use a fake for showcases, nor rely on them as proofs in integration or functional tests.

Remember, the automated build, test and deploy facilities are there for us to show why the candidate build should NOT be released to production. Tests passing in a non-representative context do not reach that goal.

Likewise, showcases are there for us to give the customer a view of the software that they can release to production NOW. Demonstrations in a non-representative context do not reach that goal.

As with any &quot;pattern&quot;, use with caution, and appropriately.</description>
		<content:encoded><![CDATA[<p>Impersonators, while a useful architectural pattern to aid in making early build pipeline feedback faster, are more suitably dubbed an anti-pattern from the viewpoint of showing and delivering working software.</p>
<p>If the backends are slow or flaky, an impersonator may help some aspects of immediate feedback to the developers &#8211; but the underlying problem must be addressed! More effort is expended working around crappy backend services than what it takes to fix them.</p>
<p>Using an impersonator during a showcase feels like duping the sponsor. You are not showing working software. You are showing the working facade over some smoke and mirrors.</p>
<p>BESIDES, if the development team has to deal with the crappy backends, then it should be HIGHLY VISIBLE to the sponsor. When the showcase is a shambles and maybe the sponsor will have enough impetus to do something about it for the good of all.</p>
<p>In terms of feedback, the danger is the impersonator is not doing a good job and the feedback contains false positives. Martin relayed the technique Josh Price mentioned about to have the SelfInitializingFake check against thru to the real service within selected contexts.</p>
<p>Mocks, stubs and fakes are useful at progressive points in the build pipeline to substitute for the real things they are masquerading. But, just like you wouldn&#8217;t use a mock in a showcase environment (let along production), nor should you use a fake for showcases, nor rely on them as proofs in integration or functional tests.</p>
<p>Remember, the automated build, test and deploy facilities are there for us to show why the candidate build should NOT be released to production. Tests passing in a non-representative context do not reach that goal.</p>
<p>Likewise, showcases are there for us to give the customer a view of the software that they can release to production NOW. Demonstrations in a non-representative context do not reach that goal.</p>
<p>As with any &#8220;pattern&#8221;, use with caution, and appropriately.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

