<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>mikkeman.nl</title>
	
	<link>http://www.mikkeman.nl/blog</link>
	<description>better is worse than good enough - thoughts on lean and agile project management</description>
	<lastBuildDate>Mon, 08 Mar 2010 21:24:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mikkeman" /><feedburner:info uri="mikkeman" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>The Balance Between Prevention and Inspection</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/X5Oto4feoA8/</link>
		<comments>http://www.mikkeman.nl/blog/2010/03/the-balance-between-prevention-and-inspection/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:16:17 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[deming]]></category>
		<category><![CDATA[inspection]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[prevention]]></category>
		<category><![CDATA[reinertsen]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=174</guid>
		<description><![CDATA[One of Deming&#8217;s 14 principles states that we should cease dependency on inspection. Does this mean that we should try to eliminate testing in favor of prevention?
Machiel Groeneveld tweeted about (automated) testing, he argued that tests fit Deming&#8217;s definition of inspection.
I replied that, when tests are being developed and executed at the same time as [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/' rel='bookmark' title='Permanent Link: My week on Twitter (2010-03-08)'>My week on Twitter (2010-03-08)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>One of Deming&#8217;s 14 principles states that we should cease dependency on inspection. Does this mean that we should try to eliminate testing in favor of prevention?</p>
<p><a href="http://machielgroeneveld.nl/" target="_blank">Machiel Groeneveld</a> <a href="http://twitter.com/machielg/status/9971085337" target="_blank">tweeted</a> about (automated) testing, he argued that tests fit Deming&#8217;s definition of inspection.</p>
<p><a href="http://twitter.com/schapendonk/status/9971587972" target="_blank">I replied that</a>, when tests are being developed and executed at the same time as the software, you could see that as a form of &#8220;build quality in&#8221; instead of inspection. That leaves room for interpretation, as Machiel instantly noted. For instance, does that only include developer tests? Or do tests from a separate tester (in the same team) also qualify as built-in quality?</p>
<p><a href="http://twitter.com/larsvonk/status/9972752673" target="_blank">Lars Vonk</a> chipped in that software tests should not be primarily aimed at quality, but as a tool to prevent bugs and as a process improvement tool.</p>
<p>Donald Reinertsen <a href="http://twitter.com/DReinertsen/status/9982517832" target="_blank">then introduced</a> an economic perspective on the situation. His argument is that there is an economic tradeoff between prevention and inspection. If inspection (and the associated rework) is economically more feasible than prevention, than you may have a legitimate case for inspection, despite Deming&#8217;s principle.</p>
<p>Deming&#8217;s underlying assumption is that prevention is always cheaper, because to prevent an error from happening again is a one-time investment, while inspection and rework is a recurring cost. An interesting observation is that automated tests may violate this assumption. An automated test lowers test execution cost significantly, maybe even more than the cost of preventing bugs. Reinertsen uses the example of the spelling checker: experience tells us that inspection with a spell checker is cheaper than preventing spelling errors in the first place.</p>
<p>If you or your team are moving more towards prevention instead of inspection, that&#8217;s a good thing. But keep in mind that one day, the cost of more prevention might outweigh the cost of inspection and rework. As soon as you hit that point, look for more valuable alternatives to improve your process.</p>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/' rel='bookmark' title='Permanent Link: My week on Twitter (2010-03-08)'>My week on Twitter (2010-03-08)</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/X5Oto4feoA8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2010/03/the-balance-between-prevention-and-inspection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2010/03/the-balance-between-prevention-and-inspection/</feedburner:origLink></item>
		<item>
		<title>My week on Twitter (2010-03-08)</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/Ne1ACW5QYFg/</link>
		<comments>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 09:17:00 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[tweets]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/</guid>
		<description><![CDATA[
What did the acceptance test say?   RT @mvzoest: *lol* http://tinyurl.com/ylpoh7e How recognizable   #
I&#39;m looking for reviews/tests of the Magnat Interior 501A home cinema speaker system. Google is not very helpful   Anyone? Thnx! #
@larsvonk maybe interference with neighbours? With some tool like Network Stumbler you could check channels in use. [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/' rel='bookmark' title='Permanent Link: My week on Twitter'>My week on Twitter</a></li>
<li><a href='http://www.mikkeman.nl/blog/2010/03/the-balance-between-prevention-and-inspection/' rel='bookmark' title='Permanent Link: The Balance Between Prevention and Inspection'>The Balance Between Prevention and Inspection</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>What did the acceptance test say? <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  RT @<a href="http://twitter.com/mvzoest" class="aktt_username">mvzoest</a>: *lol* <a href="http://tinyurl.com/ylpoh7e" rel="nofollow">http://tinyurl.com/ylpoh7e</a> How recognizable <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://twitter.com/schapendonk/statuses/9821481729" class="aktt_tweet_time">#</a></li>
<li>I&#39;m looking for reviews/tests of the Magnat Interior 501A home cinema speaker system. Google is not very helpful <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Anyone? Thnx! <a href="http://twitter.com/schapendonk/statuses/9834693592" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/larsvonk" class="aktt_username">larsvonk</a> maybe interference with neighbours? With some tool like Network Stumbler you could check channels in use. #<a href="http://search.twitter.com/search?q=%23applecare" class="aktt_hashtag">applecare</a> <a href="http://twitter.com/larsvonk/statuses/9826322273" class="aktt_tweet_reply">in reply to larsvonk</a> <a href="http://twitter.com/schapendonk/statuses/9834979163" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/luus" class="aktt_username">luus</a> is that arrow pointing at the street light? <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  #<a href="http://search.twitter.com/search?q=%23newHuusOfLuus" class="aktt_hashtag">newHuusOfLuus</a> <a href="http://twitter.com/luus/statuses/9826447310" class="aktt_tweet_reply">in reply to luus</a> <a href="http://twitter.com/schapendonk/statuses/9835027838" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/laurensbonnema" class="aktt_username">laurensbonnema</a> that would give a completely different perspective on &quot;collocation&quot; <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  <a href="http://twitter.com/laurensbonnema/statuses/9839042255" class="aktt_tweet_reply">in reply to laurensbonnema</a> <a href="http://twitter.com/schapendonk/statuses/9839276164" class="aktt_tweet_time">#</a></li>
<li>I just joined Management 3.0! <a href="http://bit.ly/dwLuuQ" rel="nofollow">http://bit.ly/dwLuuQ</a> <a href="http://twitter.com/schapendonk/statuses/9840363852" class="aktt_tweet_time">#</a></li>
<li>Quote van de dag: &quot;Ik heb je nu al 3 keer gezegd dat wat ik zeg compleet helder is.&quot; Ummmm? <a href="http://twitter.com/schapendonk/statuses/9840536590" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/frank_dorst" class="aktt_username">frank_dorst</a> mmmm teams pick their own infrastructure, hosted APEX 4.0 is no problem imho #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/frank_dorst/statuses/9920127456" class="aktt_tweet_reply">in reply to frank_dorst</a> <a href="http://twitter.com/schapendonk/statuses/9939258874" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/rtolido" class="aktt_username">rtolido</a> hmmm, pretty bold statement. Red pencil can be more easily audited? <a href="http://twitter.com/rtolido/statuses/9924982413" class="aktt_tweet_reply">in reply to rtolido</a> <a href="http://twitter.com/schapendonk/statuses/9939610434" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/biemond" class="aktt_username">biemond</a> I&#39;m just organizing it, there&#39;s no need for me to give up <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Good luck with the entire FMW stack! #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/biemond/statuses/9939511246" class="aktt_tweet_reply">in reply to biemond</a> <a href="http://twitter.com/schapendonk/statuses/9939690208" class="aktt_tweet_time">#</a></li>
<li>Amazing! Made me think of Honda &#8211; The Cog <a href="http://bit.ly/d2GUJ5" rel="nofollow">http://bit.ly/d2GUJ5</a> RT @<a href="http://twitter.com/OlavMaassen" class="aktt_username">OlavMaassen</a>: Video by OK Go on youtube <a href="http://bit.ly/9SmJI5" rel="nofollow">http://bit.ly/9SmJI5</a> <a href="http://twitter.com/schapendonk/statuses/9964293545" class="aktt_tweet_time">#</a></li>
<li>#<a href="http://search.twitter.com/search?q=%23Oracle" class="aktt_hashtag">Oracle</a> #iAS completely ditched RT @<a href="http://twitter.com/whitehorsesnl" class="aktt_username">whitehorsesnl</a>: SOA Suite 11g ONLY runs on WebLogic&#8230; and other application servers&#8230;. but NOT iAS. <a href="http://twitter.com/schapendonk/statuses/9967032900" class="aktt_tweet_time">#</a></li>
<li>Nieuwe WOZ-waarde ligt 22% hoger. #<a href="http://search.twitter.com/search?q=%23Gemeente" class="aktt_hashtag">Gemeente</a> #Utrecht kent geen #<a href="http://search.twitter.com/search?q=%23crisis" class="aktt_hashtag">crisis</a> ??? #<a href="http://search.twitter.com/search?q=%23fail" class="aktt_hashtag">fail</a> <a href="http://twitter.com/schapendonk/statuses/9967244801" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/frank_dorst" class="aktt_username">frank_dorst</a> Gelukkig zat ik in een goeie stoel, maar de 22% is geen grapje. Bezwaar is in de maak. <a href="http://twitter.com/frank_dorst/statuses/9967571720" class="aktt_tweet_reply">in reply to frank_dorst</a> <a href="http://twitter.com/schapendonk/statuses/9968310577" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> Automated tests are an example of &quot;build quality in&quot; (Poppendieck).  Deming refers to inspection afterwards. Apples and oranges. <a href="http://twitter.com/machielg/statuses/9971085337" class="aktt_tweet_reply">in reply to machielg</a> <a href="http://twitter.com/schapendonk/statuses/9971587972" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> thinking a but further, I guess it matters who creates the test at what time and with what purpose <a href="http://twitter.com/machielg/statuses/9971748882" class="aktt_tweet_reply">in reply to machielg</a> <a href="http://twitter.com/schapendonk/statuses/9971852144" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> developer creates test while creating software to validate correct operation seems OK to me <a href="http://twitter.com/machielg/statuses/9971748882" class="aktt_tweet_reply">in reply to machielg</a> <a href="http://twitter.com/schapendonk/statuses/9971888849" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> (other) developer creates test after software is created sounds questionable to me <a href="http://twitter.com/machielg/statuses/9971748882" class="aktt_tweet_reply">in reply to machielg</a> <a href="http://twitter.com/schapendonk/statuses/9971921355" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> Yes, I guess. Automated tests blur the distinction between developer and tester anyway. <a href="http://twitter.com/schapendonk/statuses/9972388434" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> I think it is hard to map Deming&#39;s principles to a creative process. E.g. what is common and special cause variation in sw dev? <a href="http://twitter.com/schapendonk/statuses/9972492089" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/machielg" class="aktt_username">machielg</a> Agreed. Imho a test, executed by a team member, before a feature is delivered, does not fit Deming&#39;s definition of inspection. <a href="http://twitter.com/machielg/statuses/9972804769" class="aktt_tweet_reply">in reply to machielg</a> <a href="http://twitter.com/schapendonk/statuses/9973555556" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/whitehorsesnl" class="aktt_username">whitehorsesnl</a> &quot;Unsupported&quot; Next question please <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  #<a href="http://search.twitter.com/search?q=%23wow" class="aktt_hashtag">wow</a> #talkaboutproventechnology <a href="http://twitter.com/whitehorsesnl/statuses/9973475519" class="aktt_tweet_reply">in reply to whitehorsesnl</a> <a href="http://twitter.com/schapendonk/statuses/9973976063" class="aktt_tweet_time">#</a></li>
<li>Just finalized the assignment for tomorrow, the #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a>  Exciting! <a href="http://twitter.com/schapendonk/statuses/9978940597" class="aktt_tweet_time">#</a></li>
<li>Readay, set, go! #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10015627218" class="aktt_tweet_time">#</a></li>
<li>Readay = ready #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10015821309" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/DReinertsen" class="aktt_username">DReinertsen</a> thanks, I didn&#39;t think of the economic side of prevention vs. inspection. <a href="http://twitter.com/DReinertsen/statuses/9982517832" class="aktt_tweet_reply">in reply to DReinertsen</a> <a href="http://twitter.com/schapendonk/statuses/10016754820" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/luus" class="aktt_username">luus</a> what made you switch from iphone to nexus? I still can&#39;t choose <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  <a href="http://twitter.com/luus/statuses/9995418231" class="aktt_tweet_reply">in reply to luus</a> <a href="http://twitter.com/schapendonk/statuses/10016989726" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/blackbutts" class="aktt_username">blackbutts</a>: <a href="http://twitpic.com/16psyg" rel="nofollow">http://twitpic.com/16psyg</a> &#8211; Team Frank is Twitpiccing&#8230; #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10019031824" class="aktt_tweet_time">#</a></li>
<li>Lunch! #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10019425483" class="aktt_tweet_time">#</a></li>
<li>Pizza is being ordered&#8230; standby for dinner. #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10030030220" class="aktt_tweet_time">#</a></li>
<li>The first team already stopped developing because they&#39;re done (at least they say so) #<a href="http://search.twitter.com/search?q=%23developerderby" class="aktt_hashtag">developerderby</a> <a href="http://twitter.com/schapendonk/statuses/10068871848" class="aktt_tweet_time">#</a></li>
</ul>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/' rel='bookmark' title='Permanent Link: My week on Twitter'>My week on Twitter</a></li>
<li><a href='http://www.mikkeman.nl/blog/2010/03/the-balance-between-prevention-and-inspection/' rel='bookmark' title='Permanent Link: The Balance Between Prevention and Inspection'>The Balance Between Prevention and Inspection</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/Ne1ACW5QYFg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/</feedburner:origLink></item>
		<item>
		<title>My week on Twitter</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/aYwkQiy8BWw/</link>
		<comments>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 09:17:00 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[tweets]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/</guid>
		<description><![CDATA[
@basvg and what did all those evaluations tell you? in reply to basvg #
@basvg I didn&#39;t realize your project had THAT kind of sensitive information   in reply to basvg #
1 #
test 1 2 3 ttytter #
@RobbertFrank thanks for the response. Trying out cli Twitter with TTYtter, works nice. Should hook it up to [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/' rel='bookmark' title='Permanent Link: My week on Twitter (2010-03-08)'>My week on Twitter (2010-03-08)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<ul class="aktt_tweet_digest">
<li>@<a href="http://twitter.com/basvg" class="aktt_username">basvg</a> and what did all those evaluations tell you? <a href="http://twitter.com/basvg/statuses/9524126689" class="aktt_tweet_reply">in reply to basvg</a> <a href="http://twitter.com/schapendonk/statuses/9524464483" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/basvg" class="aktt_username">basvg</a> I didn&#39;t realize your project had THAT kind of sensitive information <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  <a href="http://twitter.com/basvg/statuses/9526137132" class="aktt_tweet_reply">in reply to basvg</a> <a href="http://twitter.com/schapendonk/statuses/9526289949" class="aktt_tweet_time">#</a></li>
<li>1 <a href="http://twitter.com/schapendonk/statuses/9526334674" class="aktt_tweet_time">#</a></li>
<li>test 1 2 3 ttytter <a href="http://twitter.com/schapendonk/statuses/9527119210" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/RobbertFrank" class="aktt_username">RobbertFrank</a> thanks for the response. Trying out cli Twitter with TTYtter, works nice. Should hook it up to cron for scheduled tweets. <a href="http://twitter.com/RobbertFrank/statuses/9527164290" class="aktt_tweet_reply">in reply to RobbertFrank</a> <a href="http://twitter.com/schapendonk/statuses/9527392635" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/agileholland" class="aktt_username">agileholland</a> thanks for the nice meetup! I hope the next meetings will be just as nice. #<a href="http://search.twitter.com/search?q=%23agileholland" class="aktt_hashtag">agileholland</a> <a href="http://twitter.com/schapendonk/statuses/9570062034" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/frank_dorst" class="aktt_username">frank_dorst</a> Hmmm, breakfast! <a href="http://twitter.com/frank_dorst/statuses/9571741058" class="aktt_tweet_reply">in reply to frank_dorst</a> <a href="http://twitter.com/schapendonk/statuses/9573586612" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/larsvonk" class="aktt_username">larsvonk</a> het verschil is denk ik dat de politiek niet inspect en toch adapt <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  <a href="http://twitter.com/larsvonk/statuses/9574552370" class="aktt_tweet_reply">in reply to larsvonk</a> <a href="http://twitter.com/schapendonk/statuses/9579466461" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/frank_dorst" class="aktt_username">frank_dorst</a> what&#39;s that saying again? Ah, &quot;Life starts at 40&quot;. Congratulations! <a href="http://twitter.com/schapendonk/statuses/9616018616" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/jurgenappelo" class="aktt_username">jurgenappelo</a> missing url? <a href="http://twitter.com/jurgenappelo/statuses/9617816904" class="aktt_tweet_reply">in reply to jurgenappelo</a> <a href="http://twitter.com/schapendonk/statuses/9617857636" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/mcottmeyer" class="aktt_username">mcottmeyer</a> the report is already from 2008&#8230; I&#39;d be careful citing that in Feb 2010 <a href="http://twitter.com/mcottmeyer/statuses/9626472211" class="aktt_tweet_reply">in reply to mcottmeyer</a> <a href="http://twitter.com/schapendonk/statuses/9628045848" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/mcottmeyer" class="aktt_username">mcottmeyer</a> No, you mentioned a Gartner agile adoption report. It&#39;s from 2008. A lot can happen in a year. <a href="http://twitter.com/mcottmeyer/statuses/9634353451" class="aktt_tweet_reply">in reply to mcottmeyer</a> <a href="http://twitter.com/schapendonk/statuses/9668745465" class="aktt_tweet_time">#</a></li>
<li>What future does Oracle have in mind for Solaris? Especially since they invested heavily on Enterprise Linux. Can&#39;t find it on their site. <a href="http://twitter.com/schapendonk/statuses/9669052872" class="aktt_tweet_time">#</a></li>
<li>RT @<a href="http://twitter.com/mr_alan_cooper" class="aktt_username">mr_alan_cooper</a>: RT @<a href="http://twitter.com/chriswebb" class="aktt_username">chriswebb</a>: They Don’t Make Computer Manuals Like They Used To: <a href="http://bit.ly/cj2Q8i" rel="nofollow">http://bit.ly/cj2Q8i</a> <a href="http://twitter.com/schapendonk/statuses/9669239365" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/luus" class="aktt_username">luus</a> Is that an orange in there? Recipe please! <a href="http://twitter.com/luus/statuses/9638248036" class="aktt_tweet_reply">in reply to luus</a> <a href="http://twitter.com/schapendonk/statuses/9669595186" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/Ladybeetle" class="aktt_username">Ladybeetle</a> Fijne vakantie! <a href="http://twitter.com/Ladybeetle/statuses/9665754663" class="aktt_tweet_reply">in reply to Ladybeetle</a> <a href="http://twitter.com/schapendonk/statuses/9669794000" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/jurgenappelo" class="aktt_username">jurgenappelo</a> What does it sound like? Joe Cocker? <a href="http://twitter.com/jurgenappelo/statuses/9669374991" class="aktt_tweet_reply">in reply to jurgenappelo</a> <a href="http://twitter.com/schapendonk/statuses/9669857529" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/gregyoung" class="aktt_username">gregyoung</a> and could you please share the rest of the recipe also? <a href="http://twitter.com/gregyoung/statuses/9670700483" class="aktt_tweet_reply">in reply to gregyoung</a> <a href="http://twitter.com/schapendonk/statuses/9671498624" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/whitehorsesnl" class="aktt_username">whitehorsesnl</a> ah, didn&#39;t look for webcasts <a href="http://twitter.com/whitehorsesnl/statuses/9670297691" class="aktt_tweet_reply">in reply to whitehorsesnl</a> <a href="http://twitter.com/schapendonk/statuses/9672147721" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/gregyoung" class="aktt_username">gregyoung</a> martin AT schapendonk.org Thanks in advance! <a href="http://twitter.com/gregyoung/statuses/9673408924" class="aktt_tweet_reply">in reply to gregyoung</a> <a href="http://twitter.com/schapendonk/statuses/9675348441" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/OlavMaassen" class="aktt_username">OlavMaassen</a> &quot;Unable to connect to database server&quot; Site seems to have a hard time #<a href="http://search.twitter.com/search?q=%23agile2010" class="aktt_hashtag">agile2010</a> <a href="http://twitter.com/OlavMaassen/statuses/9673473172" class="aktt_tweet_reply">in reply to OlavMaassen</a> <a href="http://twitter.com/schapendonk/statuses/9675736339" class="aktt_tweet_time">#</a></li>
<li>Woord van de dag: &quot;ontdooiproduct&quot;. Zeg dan gewoon &quot;diepvriesvis&quot;. Slimme marketing. <a href="http://bit.ly/cAdAJx" rel="nofollow">http://bit.ly/cAdAJx</a> rond 13m21s <a href="http://twitter.com/schapendonk/statuses/9676971069" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/gregyoung" class="aktt_username">gregyoung</a> thanks! <a href="http://twitter.com/schapendonk/statuses/9677052309" class="aktt_tweet_time">#</a></li>
<li>TKA: twee kozijnen ivm verbouwing (hardhout, hr++ glas). Ken/ben je iemand die interesse heeft? <a href="http://bit.ly/9jpJa2" rel="nofollow">http://bit.ly/9jpJa2</a> <a href="http://bit.ly/bANp7Q" rel="nofollow">http://bit.ly/bANp7Q</a> <a href="http://twitter.com/schapendonk/statuses/9680054079" class="aktt_tweet_time">#</a></li>
<li>Tonight: pancakes! 3yo already said: &quot;Hurry up dad, I&#39;m starving&quot; <a href="http://twitter.com/schapendonk/statuses/9736976190" class="aktt_tweet_time">#</a></li>
<li>@<a href="http://twitter.com/DianaOfPortland" class="aktt_username">DianaOfPortland</a> sometimes even a few floors in the same building is enough to create a geog distributed team. <a href="http://twitter.com/DianaOfPortland/statuses/9734536722" class="aktt_tweet_reply">in reply to DianaOfPortland</a> <a href="http://twitter.com/schapendonk/statuses/9737141049" class="aktt_tweet_time">#</a></li>
<li>Damn, one pancake burnt. I can&#39;t twitter and cook at the same time. Should listen better to my own advice: do not multitask. <a href="http://twitter.com/schapendonk/statuses/9737244069" class="aktt_tweet_time">#</a></li>
<li>Just finished reviewing and editing a 110 page M$ Word document. %$#%^$! but it&#39;s done, done, done now. <a href="http://twitter.com/schapendonk/statuses/9750228530" class="aktt_tweet_time">#</a></li>
</ul>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter-2010-03-08/' rel='bookmark' title='Permanent Link: My week on Twitter (2010-03-08)'>My week on Twitter (2010-03-08)</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/aYwkQiy8BWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2010/03/my-week-on-twitter/</feedburner:origLink></item>
		<item>
		<title>I Don’t Care What The User Story Says</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/k8CMA-4B9S4/</link>
		<comments>http://www.mikkeman.nl/blog/2010/02/i-dont-care-what-the-user-story-says/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 10:33:13 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[analysis]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[user story]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=165</guid>
		<description><![CDATA[User Stories are a nifty concept to convey &#8220;what needs to be done&#8221; in an agile environment, where not all analysis and design activities have been done before coding has started.
User stories need to be clear and concise, and everybody (Product Owner and Team) should have a basic understanding of the story during the Sprint [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2009/11/final-sprint-looks-like-kanban/' rel='bookmark' title='Permanent Link: Final Sprint Looks Like Kanban'>Final Sprint Looks Like Kanban</a></li>
<li><a href='http://www.mikkeman.nl/blog/2009/09/calculating-capacity-of-an-agile-team/' rel='bookmark' title='Permanent Link: Calculating Capacity of an Agile Team'>Calculating Capacity of an Agile Team</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/koalazymonkey/3342173345/"><img class="alignright" title="Index Card" src="http://farm4.static.flickr.com/3604/3342173345_d24e7b255d_m.jpg" alt="" width="207" height="240" /></a><a href="http://en.wikipedia.org/wiki/User_story" target="_blank">User Stories</a> are a nifty concept to convey &#8220;what needs to be done&#8221; in an agile environment, where not all analysis and design activities have been done before coding has started.</p>
<p>User stories need to be clear and concise, and everybody (Product Owner and Team) should have a <em>basic </em>understanding of the story during the Sprint Planning. Just enough info to determine the approximate size of the beast.</p>
<p>After the Sprint Planning, there will be (<em>should<strong> </strong></em>be) LOTS of <a href="http://xprogramming.com/xpmag/expCardConversationConfirmation" target="_blank">conversation and confirmation</a>. By definition. Because the requirement is still only briefly analyzed, it is a false expectation to be able to understand and code a user story right after Sprint Planning (of course, it happens, but it shouldn&#8217;t be the standard).</p>
<p>I sometimes come across teams that look back and conclude that they didn&#8217;t deliver what was expected and propose to be &#8220;more clear in the wording and details of the user stories&#8221;. Don&#8217;t try to go that path. It&#8217;s a slippery slope, and before you know it, you&#8217;ll be back reviewing detailed designs. You might say it&#8217;s an <a href="http://en.wikipedia.org/wiki/Anti_pattern" target="_blank">anti-pattern</a> of agile.</p>
<p><em>I don&#8217;t care what the user story says.</em></p>
<p>Make sure everybody has a basic understanding at first and work <em>together </em>to deliver what&#8217;s expected. That&#8217;s my preferred strategy if you adhere to agile principles.</p>
<p><em>Photo taken from <a href="http://www.flickr.com/photos/koalazymonkey/" target="_blank">koalazymonkey&#8217;s photostream</a> under Creative Commons license.</em></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 240px; width: 1px; height: 1px;">
<h3 id="contextTitle_stream9544998@N04" class="contextTitleOpen"><a id="contextLink_stream9544998@N04" class="currentContextLink" href="http://www.flickr.com/photos/koalazymonkey/">koalazymonkey&#8217;s photostream</a></h3>
</div>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2009/11/final-sprint-looks-like-kanban/' rel='bookmark' title='Permanent Link: Final Sprint Looks Like Kanban'>Final Sprint Looks Like Kanban</a></li>
<li><a href='http://www.mikkeman.nl/blog/2009/09/calculating-capacity-of-an-agile-team/' rel='bookmark' title='Permanent Link: Calculating Capacity of an Agile Team'>Calculating Capacity of an Agile Team</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/k8CMA-4B9S4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2010/02/i-dont-care-what-the-user-story-says/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2010/02/i-dont-care-what-the-user-story-says/</feedburner:origLink></item>
		<item>
		<title>Technical debt, or the elegant solution?</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/I3n2asJaLvY/</link>
		<comments>http://www.mikkeman.nl/blog/2010/02/technical-debt-or-the-elegant-solution/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 09:13:17 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=159</guid>
		<description><![CDATA[Recently I wrote an article (in Dutch) for Whitehorses that discusses technical debt. What is it, when (not) to use it and how to deal with it in environments that have lots of it.
Read it here: &#8220;Kort-door-de-bocht of elegant?&#8220;
]]></description>
			<content:encoded><![CDATA[<p>Recently I wrote an article (in Dutch) for <a href="http://www.whitehorses.nl/" target="_blank">Whitehorses</a> that discusses technical debt. What is it, when (not) to use it and how to deal with it in environments that have lots of it.</p>
<p>Read it here: &#8220;<a href="http://bit.ly/9iPoy0" target="_blank">Kort-door-de-bocht of elegant?</a>&#8220;</p>
<img src="http://feeds.feedburner.com/~r/mikkeman/~4/I3n2asJaLvY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2010/02/technical-debt-or-the-elegant-solution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2010/02/technical-debt-or-the-elegant-solution/</feedburner:origLink></item>
		<item>
		<title>Starting With Scrum: The Minimum Viable Product Backlog</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/UXaLEeVIPe4/</link>
		<comments>http://www.mikkeman.nl/blog/2009/12/starting-with-scrum-the-minimum-viable-product-backlog/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:48:58 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[preparation]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprint zero]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=146</guid>
		<description><![CDATA[
Are you starting with Scrum? That&#8217;s good news!

You have a Team: check.
You have a Product Owner: double check.
You have a Product Backlog:  &#8230;. right?

Product Backlog? Yeah, we have a list with things we could work on, and when (if?) we finish it, we&#8217;re done. But is that a Product Backlog?
The minimum viable product backlog (yes, [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/spilt-milk/3784629351/sizes/l/"><img class=" alignleft" title="Sprint" src="http://farm4.static.flickr.com/3529/3784629351_62e6002be2_m.jpg" alt="Sprint" width="240" height="159" /></a></p>
<p>Are you starting with Scrum? That&#8217;s good news!</p>
<ul>
<li>You have a Team: check.</li>
<li>You have a Product Owner: double check.</li>
<li>You have a Product Backlog:  &#8230;. right?</li>
</ul>
<p>Product Backlog? Yeah, we have a list with things we could work on, and when (if?) we finish it, we&#8217;re done. But is that a Product Backlog?</p>
<p>The minimum viable product backlog (yes, <a href="http://venturehacks.com/articles/minimum-viable-product" target="_blank">I got inspired</a>) is not just &#8220;all items we came up with that we could work on&#8221;. It is a filled, estimated and prioritized list of work items. There are three key points in this statement.</p>
<h3>The backlog is filled</h3>
<p>This means it should <em>at least</em> contain enough work items to fill the first sprint and include an extra work item to expand the product backlog. Most projects start out with a backlog with high level items for the entire system (that may be a dozen to a hundred or more).</p>
<h3>The backlog is estimated</h3>
<p>The team must have enough information to estimate the items on the backlog. The Product Owner should be able to explain the items, the team should be able to give them a relative size (using planning poker, for example).</p>
<h3>The backlog is prioritized</h3>
<p>The Product Owner should have a clear vision on the entire product (think big), but also on what to build first (act small). Not always easy. The book says &#8220;pick the story with the most business value&#8221; but that doesn&#8217;t make it easier for most Product Owners.</p>
<p>A useful technique in this respect is a <a href="http://www.agileproductdesign.com/blog/the_new_backlog.html">story map</a>. The story map works top-down from the high level work items. These high level work items are typically things a system MUST support in some way or another. It&#8217;s just the <a href="http://www.polyvore.com/sophisticatedness...is_that_word/set?id=5085499" target="_blank">sophisticatedness</a> of the solution that determines the size of a work item. When Product Owner and Team together work out the least sophisticated solution to all high level items, we have what we call the <a href="http://alistair.cockburn.us/Walking+Skeleton" target="_blank">walking skeleton</a>, or <a href="http://venturehacks.com/articles/minimum-viable-product" target="_blank">minimum viable product</a>.</p>
<p>Building the walking skeleton is a very useful prioritization, because it proves the (functional and technical) feasibility of the product.</p>
<h3>Why this post?</h3>
<p>Too often teams &#8220;rush&#8221; into Scrum to find out after a few sprints that the product backlog requires major maintenance. This might cost more capacity than one would like, possibly affecting velocity and the sustainable pace of the team. To prevent it, make sure you have a minimum viable product backlog from the start, and make sure it remains viable throughout all development activities.</p>
<p>Some people like to compress these activities in a few days, other like it to extend it to an entire sprint (to get used to the rhythm). Some people like to call this preparation &#8220;sprint zero&#8221;, others argue that it might as well be the first sprint. I don&#8217;t care how you call it, just make sure you do the activities associated with a controlled start.</p>
<p><em>Image taken from <a href="http://www.flickr.com/photos/spilt-milk/" target="_blank">yoppy&#8217;s Flickr stream</a> under Creative Commons license.</em></p>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/UXaLEeVIPe4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2009/12/starting-with-scrum-the-minimum-viable-product-backlog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2009/12/starting-with-scrum-the-minimum-viable-product-backlog/</feedburner:origLink></item>
		<item>
		<title>Better Is Worse Than Good Enough</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/A75iz3NDIPA/</link>
		<comments>http://www.mikkeman.nl/blog/2009/11/better-is-worse-than-good-enough/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:16:29 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[pragmatism]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[simplicity]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=140</guid>
		<description><![CDATA[&#8220;Better is worse than good enough&#8221; (or the Dutch equivalent &#8220;Beter is slechter dan goed genoeg&#8221;) has been my tagline for quite some time. I put it below emails, use it on this blog and anywhere else where it seems applicable. BTW, I don&#8217;t deserve the credits, I first heard this quote from professor emeritus [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2009/09/agile-design-is-not-generic/' rel='bookmark' title='Permanent Link: Agile Design Is Not Generic'>Agile Design Is Not Generic</a></li>
<li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-142" title="einstein" src="http://www.mikkeman.nl/blog/wp-content/uploads/2009/11/einstein-199x300.jpg" alt="einstein" width="199" height="300" />&#8220;Better is worse than good enough&#8221; (or the Dutch equivalent &#8220;Beter is slechter dan goed genoeg&#8221;) has been my tagline for quite some time. I put it below emails, use it on this blog and anywhere else where it seems applicable. BTW, I don&#8217;t deserve the credits, I first heard this quote from <a href="http://www.tiasnimbas.edu/index.aspx?objectName=FacultyPersonDetails&amp;psn=2318&amp;type=emeriti">professor emeritus Nielen</a> (not sure if he is the authentic source either).</p>
<p>Many people are confused when they read it and ask me what it means. How can better be worse? Better is better, right? And certainly better than good enough, right? Wrong.</p>
<p>The statement reflects pragmatism. Simplicity. Or, as Einstein put it: &#8220;Any fool can make things bigger, more complex, and more violent. It takes a touch of genius -and a lot of courage- to move in the opposite direction.&#8221;</p>
<p>It feels counter intuitive. We always want to make things better. But think of this: a better solution might be, uhm&#8230;, better, but it has at least three major disadvantages:</p>
<ol>
<li>It takes more time to make things better &#8211; we don&#8217;t have this time</li>
<li>It costs more money to make things better &#8211; we don&#8217;t have the money</li>
<li>It has a higher probability on errors &#8211; which cost time and money to fix</li>
</ol>
<p>In software development, we tend to &#8220;gold plate&#8221; solutions and include all kinds of bells and whistles that will &#8220;certainly blow away our customer&#8221;. Will this customer really be delighted by those bells and whistles if it means that his project is over budget and too late?</p>
<p>The trick is to hit the sweet spot between &#8220;too little&#8221; and &#8220;too much&#8221;. The only way to know that spot is to get frequent feedback -early and often- from your customer. This is one of the core principles of agile software development: close collaboration between development and customers. Scrum implements this principle with the Product Owner role, collaborating closely with the team, delivering software in short Sprints, ending with a Sprint Review of working software.</p>
<p>Now you know what I mean with &#8220;better is worse than good enough&#8221;. Try it for yourself!</p>
<p><em>Photo taken from <a href="http://www.flickr.com/photos/wallyg/">wallyg</a> under Creative Commons license.</em></p>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2009/09/agile-design-is-not-generic/' rel='bookmark' title='Permanent Link: Agile Design Is Not Generic'>Agile Design Is Not Generic</a></li>
<li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/A75iz3NDIPA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2009/11/better-is-worse-than-good-enough/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2009/11/better-is-worse-than-good-enough/</feedburner:origLink></item>
		<item>
		<title>Secure Internet Access To Samba With SSH And PuTTY</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/2_kD5aywDLw/</link>
		<comments>http://www.mikkeman.nl/blog/2009/11/secure-internet-access-to-samba-with-ssh-and-putty/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 13:27:16 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Tech stuff]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[loopback]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunnel]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=126</guid>
		<description><![CDATA[
This post is for people running a private Samba server, wishing it was securely accessible over the Internet. Stop reading if you don&#8217;t know what Samba or SSH means.

Imagine the following situation: at work, school or a client site, you insert your USB stick, check your local hard drive and search your Gmail account to [...]]]></description>
			<content:encoded><![CDATA[<p><em><img class="size-medium wp-image-131 alignleft" title="Chains" src="http://www.mikkeman.nl/blog/wp-content/uploads/2009/11/chains-210x300.jpg" alt="Chains" width="210" height="300" /></em></p>
<p><em>This post is for people running a private Samba server, wishing it was securely accessible over the Internet. Stop reading if you don&#8217;t know what Samba or SSH means.<br />
</em></p>
<p>Imagine the following situation: at work, school or a client site, you insert your USB stick, check your local hard drive and search your Gmail account to find out that the one file you were looking for is not there. You probably left it at home. Damn!</p>
<p>Sounds familiar? It does happen to me frequently.</p>
<p>A solution is to have access over the Internet to your private Samba server. No more worrying that you didn&#8217;t take a particular file with you, just access it from anywhere you like. But you also want that access to be secure. Can it be done? Yes.</p>
<h3>What do you need?</h3>
<ul>
<li>A server running Samba that also provides SSH access from the internet</li>
<li>Windows XP on the client</li>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a> on the client</li>
</ul>
<p><span id="more-126"></span></p>
<h3>How does it work?</h3>
<p>In short, you have to install a loopback adapter and configure a SSH tunnel with PuTTY that uses the loopback adapter. If this says it all to you, you can stop reading. If not, please continue <img src='http://www.mikkeman.nl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>Step 1: Install a Microsoft Loopback Adapter</h3>
<ul>
<li>Go to Start -&gt; Settings -&gt; Control Panel -&gt; Add Hardware.</li>
<li>Select &#8220;Yes, I have already connected the hardware&#8221;</li>
<li>Select &#8220;Add a new hardware device&#8221;</li>
<li>Select &#8220;Install the hardware that I manually select from a list (Advanced)&#8221;</li>
<li>Select &#8220;Network adapters&#8221;</li>
<li>Select Microsoft -&gt; Microsoft Loopback Adapter</li>
<li>Click Next, Next, Finish and done with step 1!</li>
</ul>
<h3>Step 2: Configure the Microsoft Loopback Adapter</h3>
<ul>
<li>Go to Start -&gt; Settings -&gt; Network Connections and look for the network connection associated with your newly installed loopback adapter (hint: it should say something like &#8220;Microsoft Loopback Adapter&#8221; under device name).</li>
<li>The network connection is probably called &#8220;Local Area Connection #-something&#8221;, you can change that to something more meaningful. &#8220;Loopback For Samba&#8221; is great if you don&#8217;t feel creative.</li>
<li>Right-click the network connection, click Properties.</li>
<li><strong>Uncheck</strong> &#8220;Client for Microsoft Networks&#8221; and &#8220;File and Printer Sharing for Microsoft Networks&#8221;.</li>
<li>Change the properties of &#8220;Internet Protocol (TCP/IP)&#8221;:
<ul>
<li>Use the following IP address: <em>192.168.100.100</em> (any private address that does not interfere with address ranges on your other network cards is fine)</li>
<li>Subnet mask: <em>255.255.255.0</em></li>
<li>Default gateway and DNS can be left empty</li>
<li>Click Advanced, tab WINS: check &#8220;Enable LMHOSTS lookup&#8221; and &#8220;Disable NetBIOS over TCP/IP&#8221;.</li>
</ul>
</li>
<li>Click OK, OK, and you&#8217;re done with step 2!</li>
</ul>
<h3>Step 3: Create an LMHOSTS file</h3>
<ul>
<li>Open an Explorer window and browse to C:\WINDOWS\system32\drivers\etc (or wherever your Windows installation resides).</li>
<li>Create a new, empty text file called &#8220;lmhosts&#8221; (without the quotes and <strong>without an extension!</strong>)</li>
<li>Put the following line in there:
<pre>192.168.100.100 name_of_samba_server</pre>
</li>
</ul>
<p>Be sure to use the IP address you picked in Step 2! It is handy to use the same name_of_samba_server as you use on your local network. That way you can always refer to your Samba server with the same name, regardless of your location (at home, or work, or school, or &#8230;).</p>
<h3>Step 4: Configure PuTTY</h3>
<ul>
<li>I assume you already have PuTTY configured with a saved session to make an SSH connection to your Samba server.</li>
<li>Fire up PuTTY, load your saved session and navigate to Connection -&gt; SSH -&gt; Tunnels.</li>
<li>Type &#8220;192.168.100.100:139&#8243; in the Source port textbox (the textbox is a bit small, but that doesn&#8217;t matter) (be sure to use the IP address from step 2) (use the IP address, i.e. do <em>NOT</em> use the name of the samba server!).</li>
<li>Type &#8220;localhost:139&#8243; in the Destination textbox.</li>
<li>Click Add and re-save your saved session, and you&#8217;re done with Step 4</li>
</ul>
<h3>Step 5: Use it!</h3>
<p>Fire up PuTTY and make an SSH connection to your Samba server. You&#8217;re now able to access your server, map drives, etcetera.</p>
<p>For example, try Start -&gt; Run and type &#8220;\\name_of_samba_server&#8221;. You&#8217;re presented with a login box and/or an explorer window with all shares on your server.</p>
<p>Or type &#8220;net use h: \\name_of_samba_server\share&#8221; to make a network drive mapping.</p>
<p>Basically, you can use your server like you would as if it were on your local network.</p>
<h3>Step 6</h3>
<p>There is no step 6.</p>
<h3>FAQ</h3>
<ul>
<li><em>Why the loopback adapter, can&#8217;t I simply use my regular network adapter?</em><br />
Yes you could, but with a severe limitation: while PuTTY is running you would have access to your Samba server, but at the same time, <strong>not </strong>to your work/school/client network drives (and vice versa).</li>
<li><em>Why the LMHOSTS, can it be done without?<br />
</em>Sure, but then, I would have to access my Samba server with &#8220;\\192.168.100.100\share&#8221; while on the road and with &#8220;\\name_of_samba_server\share&#8221; while at home. The use of an LMHOSTS file abstracts that for me. It&#8217;s also quite handy for batch files that create mappings (they work, regardless whether you&#8217;re at home or on the road).</li>
</ul>
<p>Well, that&#8217;s all there is to know about secure access to a private Samba server. Good luck!</p>
<p><em>This post is largely based on an <a href="http://lists.samba.org/archive/samba/2004-May/085358.html">old message</a> on the Samba mailing list.</em></p>
<p><em>The image above was taken from <a href="http://www.flickr.com/photos/ellasdad/">Ella&#8217;s Dad flickr stream</a> under a Creative Commons license.</em></p>
<img src="http://feeds.feedburner.com/~r/mikkeman/~4/2_kD5aywDLw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2009/11/secure-internet-access-to-samba-with-ssh-and-putty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2009/11/secure-internet-access-to-samba-with-ssh-and-putty/</feedburner:origLink></item>
		<item>
		<title>Final Sprint Looks Like Kanban</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/x1fD8CuXA9U/</link>
		<comments>http://www.mikkeman.nl/blog/2009/11/final-sprint-looks-like-kanban/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 07:29:23 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=106</guid>
		<description><![CDATA[Last Thursday we had the last planning meeting of this year. In three weeks time, we will deliver the last release of 2009, ready to be put in production on January 1st, 2010 (this 6 week gap is something for another blog).
It feels kind of awkward, to be planning the final set of user stories. [...]


Possibly related posts (automatically generated):<ol><li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
<li><a href='http://www.mikkeman.nl/blog/2010/02/i-dont-care-what-the-user-story-says/' rel='bookmark' title='Permanent Link: I Don&#8217;t Care What The User Story Says'>I Don&#8217;t Care What The User Story Says</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-110 alignleft" title="kanban" src="http://www.mikkeman.nl/blog/wp-content/uploads/2009/10/kanban.jpg" alt="kanban" width="240" height="180" />Last Thursday we had the last planning meeting of this year. In three weeks time, we will deliver the last release of 2009, ready to be put in production on January 1st, 2010 (this 6 week gap is something for another blog).</p>
<p>It feels kind of awkward, to be planning the final set of user stories. Is this really everything? Can we really miss all that other stuff on the product backlog? Everybody is quite confident that we produced good results.</p>
<p>Nonetheless there are some oddities. While things are being tested continuously, any issues uncovered normally entered the product backlog. In this last iteration, if an issue turns out to be more important than stories already planned, we (team + product owner) agreed to reprioritize during the sprint.</p>
<p>This also means that the team is now even more disciplined about how many user stories to develop concurrently, because we don&#8217;t want the PO to drop a user story we&#8217;ve just started working on.</p>
<p>But&#8230; as the number of user stories decreases and the PO is allowed to reprioritize all work that hasn&#8217;t started yet, we might as well say that we&#8217;re doing Kanban!</p>
<p>As I said in my previous post, <a href="http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/">&#8220;Kanban, Lean and Scrum Are Not Religions&#8230;&#8221;</a>, it depends on your situation what tool suits you best. For almost a year, we used Scrum. For the end game, Kanban seems like a better tool. Just do what works.</p>


<p>Possibly related posts (automatically generated):</p><ol><li><a href='http://www.mikkeman.nl/blog/2009/10/kanban-lean-and-scrum-are-not-religions/' rel='bookmark' title='Permanent Link: Kanban, Lean and Scrum Are Not Religions&#8230;'>Kanban, Lean and Scrum Are Not Religions&#8230;</a></li>
<li><a href='http://www.mikkeman.nl/blog/2010/02/i-dont-care-what-the-user-story-says/' rel='bookmark' title='Permanent Link: I Don&#8217;t Care What The User Story Says'>I Don&#8217;t Care What The User Story Says</a></li>
</ol></p><img src="http://feeds.feedburner.com/~r/mikkeman/~4/x1fD8CuXA9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2009/11/final-sprint-looks-like-kanban/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2009/11/final-sprint-looks-like-kanban/</feedburner:origLink></item>
		<item>
		<title>Prioritizing Requirements For Dummies</title>
		<link>http://feedproxy.google.com/~r/mikkeman/~3/htCHZVPqgVk/</link>
		<comments>http://www.mikkeman.nl/blog/2009/10/prioritizing-requirements-for-dummies/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:53:51 +0000</pubDate>
		<dc:creator>Martin Schapendonk</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[priority]]></category>
		<category><![CDATA[product backlog]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[release planning]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://www.mikkeman.nl/blog/?p=92</guid>
		<description><![CDATA[Being a Product Owner (PO) is not the most easy role on a (Scrum) project. In fact, it might be the hardest role. POs are easily faced with months and months of requirements in the backlog. They are supposed to prioritize this huge list (&#8220;is requirement XYZ more or less important than requirement ABC?&#8221;), making [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-101" title="Priority" src="http://www.mikkeman.nl/blog/wp-content/uploads/2009/10/priority-300x137.jpg" alt="Priority" width="300" height="137" />Being a Product Owner (PO) is not the most easy role on a (Scrum) project. In fact, it might be the hardest role. POs are easily faced with months and months of requirements in the backlog. They are supposed to prioritize this huge list (&#8220;is requirement XYZ more or less important than requirement ABC?&#8221;), making sure that the needs of stakeholders are met.</p>
<p>And please make sure there is enough ROI, dear Product Owner!</p>
<p>And attend the daily scrum to clarify any issues the development team has within the current iteration!</p>
<p>And prepare the next set of requirements for planning.</p>
<p>And&#8230; And&#8230; And so on.</p>
<p>Jeff Patton wrote an excellent article about the assumption that the Product Owner must possess super powers: <a href="http://www.agileproductdesign.com/blog/2009/product_owner_and_problem_shaped_hole.html">The product owner and the product-shaped hole</a>. Unfortunately, most Product Owners do not possess super powers. I might even say that not a single PO has them (since they are still exclusively used in <a href="http://en.wikipedia.org/wiki/Comics">comics</a> and the like).</p>
<p>This post deals with one of the challenges a PO has: how to prioritize my backlog?</p>
<p>When asked to prioritize every requirement on a scale of 1 to 3, the following usually happens:</p>
<ul>
<li>80% will end up as priority 1</li>
<li>10-15% as a priority 2</li>
<li>the rest (if any) is priority 3.</li>
</ul>
<p>That is not very helpful to determine what requirement(s) to work on next.</p>
<p>A useful approach in this situation is to limit the number of requirements that are allowed in priority 1 and 2. For example:</p>
<ul>
<li>10 requirements are allowed priority 1</li>
<li>20 requirements are allowed priority 2</li>
<li>the rest is priority 3</li>
</ul>
<p>All priority 1 requirements must be ready for immediate scheduling in the next planning meeting. Suppose that 8 requirements fit for the next iteration, then all you have to do is:</p>
<ul>
<li> promote 8 requirements from priority 2 to 1 and;</li>
<li>promote another 8 requirements from priority 3 to 2.</li>
</ul>
<p>That is just a minor task compared to the task &#8220;rank every requirement against all others&#8221;. When you put the priority 1/2/3 boards on the wall with brown paper and postits, it provides visual focus as to what to work on next as well as a transparent overview of &#8220;what&#8217;s next&#8221; and &#8220;what&#8217;s almost next&#8221;.</p>
<p>Try it, you might like it!</p>
<img src="http://feeds.feedburner.com/~r/mikkeman/~4/htCHZVPqgVk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.mikkeman.nl/blog/2009/10/prioritizing-requirements-for-dummies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.mikkeman.nl/blog/2009/10/prioritizing-requirements-for-dummies/</feedburner:origLink></item>
	</channel>
</rss>
