<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Cato&#039;s Place</title>
	<atom:link href="http://www.catosplace.net/blogs/personal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.catosplace.net/blogs/personal</link>
	<description>Pete Sellars&#039; Blogsphere Presence</description>
	<lastBuildDate>Thu, 12 Jan 2012 11:43:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Embedded Tweets</title>
		<link>http://www.catosplace.net/blogs/personal/2011/12/23/embedded-tweets/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=embedded-tweets</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/12/23/embedded-tweets/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 07:34:34 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=1156</guid>
		<description><![CDATA[Twitter released a new version last week and included the capabilities to deliver embedded tweets. WordPress founder Matt Mullenwegs blogged about this addition and WordPress supports embedded tweets on its hosted blogs in a couple of ways. The Twitter Blackbird &#8230; <a href="http://www.catosplace.net/blogs/personal/2011/12/23/embedded-tweets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Twitter" href="http://www.twitter.com" target="_blank">Twitter</a> released a new version last week and included the capabilities to deliver <a title="Twitter Dev Blog - Tweets and Buttons" href="https://dev.twitter.com/blog/tweets-and-buttons" target="_blank">embedded tweets</a>.</p>
<p><a title="WordPress" href="http://www.wordpress.com" target="_blank">WordPress</a> founder <a title="The Long and Short of It" href="http://en.blog.wordpress.com/2011/12/08/the-long-and-short-of-it/" target="_blank">Matt Mullenwegs blogged about this addition</a> and WordPress supports embedded tweets on its hosted blogs in a couple of ways. The <a title="Twitter Blackbird Pie" href="http://en.support.wordpress.com/twitter-blackbird-pie/#using-twitter-blackbird-pie" target="_blank">Twitter Blackbird Pie</a> or the <a title="Twitter Embed Shortcode" href="http://en.support.wordpress.com/twitter-embeds/" target="_blank">Twitter Embed shortcode</a></p>
<p>As this is a standalone WordPress blog I had two options:</p>
<ul>
<li><a title="Twitter Blackbird Pie Plugin" href="http://wordpress.org/extend/plugins/twitter-blackbird-pie/" target="_blank">Use the Twitter Blackbird Pie Plugin</a></li>
<li><a title="Embde Tweets using the Twitter generated HTML" href="https://support.twitter.com/groups/31-twitter-basics/topics/112-linking-to-your-blog-or-website/articles/20169559-how-to-embed-a-tweet-on-your-website-or-blog" target="_blank">Embed Tweets using the Twitter generated HTML</a></li>
</ul>
<p>So without further ado, here are the two options in action:</p>
<h2><a title="Twitter Blackbird Pie Plugin" href="http://wordpress.org/extend/plugins/twitter-blackbird-pie/" target="_blank">Twitter Blackbird Pie Plugin</a></h2>
<!-- tweet id : 150036987951329280 --><style type='text/css'>#bbpBox_150036987951329280 a { text-decoration:none; color:#824932; }#bbpBox_150036987951329280 a:hover { text-decoration:underline; }</style><div id='bbpBox_150036987951329280' class='bbpBox' style='padding:20px; margin:5px 0; background-color:#cbb18c; background-image:url(http://a0.twimg.com/profile_background_images/387237131/shore_78_122321.jpg); background-repeat:no-repeat'><div style='background:#fff; padding:10px; margin:0; min-height:48px; color:#64d3fc; -moz-border-radius:5px; -webkit-border-radius:5px;'><span style='width:100%; font-size:18px; line-height:22px;'>Just applied a new Twitter theme called "Sandy Shore" to my profile, take a look! Got it from <a href="http://t.co/GEZnqiGb" rel="nofollow">http://t.co/GEZnqiGb</a></span><div class='bbp-actions' style='font-size:12px; width:100%; padding:5px 0; margin:0 0 10px 0; border-bottom:1px solid #e6e6e6;'><img align='middle' src='http://www.catosplace.net/blogs/personal/wp-content/plugins/twitter-blackbird-pie//images/bird.png' /><a title='tweeted on December 23, 2011 3:16 pm' href='http://twitter.com/#!/PeterSellars/status/150036987951329280' target='_blank'>December 23, 2011 3:16 pm</a> via <a href="http://tweetygotback.com" rel="nofollow" target="blank">Tweety Got Back</a><a href='https://twitter.com/intent/tweet?in_reply_to=150036987951329280' class='bbp-action bbp-reply-action' title='Reply'><span><em style='margin-left: 1em;'></em><strong>Reply</strong></span></a><a href='https://twitter.com/intent/retweet?tweet_id=150036987951329280' class='bbp-action bbp-retweet-action' title='Retweet'><span><em style='margin-left: 1em;'></em><strong>Retweet</strong></span></a><a href='https://twitter.com/intent/favorite?tweet_id=150036987951329280' class='bbp-action bbp-favorite-action' title='Favorite'><span><em style='margin-left: 1em;'></em><strong>Favorite</strong></span></a></div><div style='float:left; padding:0; margin:0'><a href='http://twitter.com/intent/user?screen_name=PeterSellars'><img style='width:48px; height:48px; padding-right:7px; border:none; background:none; margin:0' src='http://a0.twimg.com/profile_images/422070325/stan_avatar_normal.jpeg' /></a></div><div style='float:left; padding:0; margin:0'><a style='font-weight:bold' href='http://twitter.com/intent/user?screen_name=PeterSellars'>@PeterSellars</a><div style='margin:0; padding-top:2px'>Peter Sellars</div></div><div style='clear:both'></div></div></div><!-- end of tweet -->
<h2><a title="Embed Tweet using Twitter generated HTML" href="https://support.twitter.com/groups/31-twitter-basics/topics/112-linking-to-your-blog-or-website/articles/20169559-how-to-embed-a-tweet-on-your-website-or-blog" target="_blank">Twitter generated HTML</a></h2>
<blockquote class="twitter-tweet tw-align-center"><p>Just applied a new Twitter theme called &#8220;Sandy Shore&#8221; to my profile, take a look! Got it from <a title="http://TweetyGotBack.com" href="http://t.co/GEZnqiGb">TweetyGotBack.com</a></p>
<p>— Peter Sellars (@PeterSellars) <a href="https://twitter.com/PeterSellars/status/150036987951329280" data-datetime="2011-12-23T02:16:20+00:00">December 23, 2011</a></p></blockquote>
<p><script charset="utf-8" type="text/javascript" src="//platform.twitter.com/widgets.js"></script></p>
<p>I feel the Twitter generated HTML currently meets my expectations better than the Twitter Blackbird Pie Plugin.</p>
<p>The Twitter Blackbird Pie Plugin does not have a &#8216;follow&#8217; button and has inserted the shortened url rather than the link alias. I would also like some of the capabilities offered by WordPress&#8217; shortcode options included in the Plugin. I shall have to do a bit more digging I think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/12/23/embedded-tweets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YOW! 2011 Brisbane Conference &#8211; Day 1 Attendance Summary</title>
		<link>http://www.catosplace.net/blogs/personal/2011/12/13/yow-2011-brisbane-conference-day-1-attendance-summary/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yow-2011-brisbane-conference-day-1-attendance-summary</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/12/13/yow-2011-brisbane-conference-day-1-attendance-summary/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 13:49:09 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Continuous Improvement]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Yow!]]></category>
		<category><![CDATA[Chef]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Lean Startup]]></category>
		<category><![CDATA[Puppet]]></category>
		<category><![CDATA[QuickCheck]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[YOW!]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=985</guid>
		<description><![CDATA[Day 1 of the YOW! 2011 Brisbane Conference was full of fantastic talks, book recommendations and great giveaways as usual. As well as the YOW! 2011 Conference t-shirt I picked up an Atlassian t-shirt and enjoyed some micro dots for &#8230; <a href="http://www.catosplace.net/blogs/personal/2011/12/13/yow-2011-brisbane-conference-day-1-attendance-summary/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://yowaustralia.com.au/index.html"><img class="aligncenter size-full wp-image-975" style="border: 0pt none;" title="yow_2011_banner" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/yow_2011_banner.gif" alt="YOW! 2011 Australia" width="900" height="137" /></a></p>
<p>Day 1 of the <a href="http://yowaustralia.com.au/YOW2011/general/programBrisbane.html" title="YOW! 2011 Brisbane Conference" target="_blank">YOW! 2011 Brisbane Conference</a> was full of fantastic talks, book recommendations and great giveaways as usual. As well as the YOW! 2011 Conference t-shirt I picked up an <a href="http://www.atlassian.com/" title="Atlassian" target="_blank">Atlassian</a> t-shirt and enjoyed some micro dots for afternoon tea thanks to <a href="http://www.thoughtworks.com/" title="ThoughtWorks" target="_blank">ThoughtWorks</a>.</p>
<p>I had been really looking forward to the <a href="http://en.wikipedia.org/wiki/DevOps" title="DevOps" target="_blank">DevOps</a> stream in the morning featuring <a href="https://twitter.com/jezhumble" title="Jez Humble" target="_blank">Jez Humble </a>of <a href="http://continuousdelivery.com/" title="Continuous Delivery" target="_blank">Continuous Delivery</a> fame and <a href="http://www.build-doctor.com/" title="The Build Doctor" target="_blank">&#8216;The Build Doctor&#8217;</a> himself <a href="http://www.build-doctor.com/about/" title="Julian Simpson" target="_blank">Julian Simpson</a> and had an enjoyable morning session. After lunch things begun to hit another level with two presentations by <a href="https://twitter.com/#!/JoshuaKerievsky" title="Joshua Kerievsky" target="_blank">Joshua Kerievsky</a> author of <a href="http://industriallogic.com/xp/refactoring/" title="Refactoring To Patterns" target="_blank">Refactoring To Patterns</a> on <a href="http://theleanstartup.com/" title="Lean Startup" target="_blank">Lean Startup</a> and <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3554" title="The Limited Red Society" target="_blank">The Limited Red Society</a>. I also enjoyed learning about <a href="http://en.wikipedia.org/wiki/QuickCheck" title="QuickCheck" target="_blank">QuickCheck</a> testing capabilities from <a href="http://www.cse.chalmers.se/~rjmh/" title="John Hughes" target="_blank">John Hughes</a>, and <a href="http://haskell.org/haskellwiki/Haskell" title="Haskell" target="_blank">Haskell</a> from one of its founding fathers <a href="http://research.microsoft.com/en-us/people/simonpj/" title="Simon Peyton-Jones" target="_blank">Simon Peyton-Jone</a>s. The JVM keynote from <a href="http://www.oracle.com" title="Oracle" target="_blank">Oracle</a> Vice President of Development <a href="https://twitter.com/#!/cpurdy" title="Cameron Purdy" target="_blank">Camron Purdy</a>, which opened the conference, was interesting but not really worthy of its keynote status. I also failed to heed the lessons of conference pasts and went to another labourious <a href="http://www.ibm.com" title="IBM" target="_blank">IBM</a> SOA presentation this time provide by <a href="http://www.linkedin.com/pub/rachel-reinitz/0/752/383" title="Rachel Reinitz" target="_blank">Rachel Reinitz</a>.</p>
<p>In this blog entry I will provide a brief synopsis of each of the sessions I attended. Comprehensive notes and details of the presentations I attended will hopefully follow over the coming weeks.</p>
<p><span id="more-985"></span></p>
<h2><b><a href="http://yowaustralia.com.au/YOW2011/general/details.html?speakerId=2312" title="Top 10 JVM Erroneous Zones" target="_blank">Top 10 JVM Erroneous Errors</a></b> &#8211; <em>Cameron Purdy</em></h2>
<p><a href="https://twitter.com/#!/cpurdy" title="Cameron Purdy" target="_blank">Cameron Purdy</a>, Vice President of Development at <a href="http://www.oracle.com/" title="Oracle" target="_blank">Oracle</a> started the conference off presenting his list of 10 <a href="http://java.sun.com/docs/books/jvms/" title="JVM Specification" target="_blank">JVM</a> issues he would like to see addressed. His top 10 list ended up actually being 15 though as he continued to rattle off the issues after presenting his top 10! He got plenty of traction from past Java design decisions limiting its ability to adapt to modern developer whims.</p>
<div id="attachment_1087" class="wp-caption alignright" style="width: 131px"><a href="http://java.sun.com/docs/books/jvms/" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/java.jpg" alt="Java JVM" title="java" width="121" height="161" class="size-full wp-image-1087" /></a><p class="wp-caption-text">The Java Virtual Machine Specification</p></div>
<p>He stated his opinion that <a href="http://en.wikipedia.org/wiki/Sun_Microsystems" title="Sun Microsystems" target="_blank">Sun</a> had not done as good a job of Java as he thought the case should be, imploring that Oracle would endevaour to do a better job. He presented his list with some humour but seemed to be met with mixed emotions from the crowd. The overall feel from the talk was that Java needed to become more dynamic, along the lines of <a href="http://groovy.codehaus.org/" title="Groovy" target="_blank">Groovy</a> and other current popular <a href="http://en.wikipedia.org/wiki/Dynamic_programming_language" title="Dynamic Languages" target="_blank">dynamic languages</a> if it was to meet changing development needs.</p>
<p>Personally I found it quite interesting and although I will take interested looks in the direction Oracle takes Java and the JVM and how/when Cameron&#8217;s list is addressed by the team &#8211; I myself will be utilising Groovy to have access to the capabilities now.</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>Cameron Purdy&#8230;we can do all this. Just use #groovy! &#8211; @spidie</p></blockquote>
<blockquote><p>Cameron Purdy squeezing a few laughs out of the #yow_oz keynote audience at the expense of past #java design decisions &#8211; @aspinall</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/Cameron-Purdy-Keynote.pdf" title="Cameron Purdy Keynote Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3612" title="Continuous Delivery" target="_blank">Continuous Delivery</a></b> &#8211; <em>Jez Humble and Martin Fowler</em></h2>
<div id="attachment_1105" class="wp-caption alignleft" style="width: 131px"><a href="http://www.amazon.com/gp/product/0321601912?tag=contindelive-20" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/continuous-delivery-cover.jpg" alt="Continuous Delivery" title="continuous-delivery-cover" width="121" height="160" class="size-full wp-image-1105" /></a><p class="wp-caption-text">Continuous Delivery Book @Amazon</p></div>
<p>Having read and digested all the information in <a href="http://continuousdelivery.com/" title="Continuous Delivery" target="_blank">Continuous Delivery</a> already I was expecting big things from this presentation. The loud mouth of Software Development <a href="http://martinfowler.com/" title="Martin Fowler" target="_blank">Martin Fowler</a> lived up to his billing with a fantastic bellow towering over poor <a href="http://twitter.com/jezhumble" title="Jez Humble" target="_blank">Jez</a> half way through representation. In truth I was a little dissapointed with the content &#8211; having read the book I wanted the &#8216;extra mile&#8217; but the talk was aimed more at those who had not yet read the highly recommended book.</p>
<p>The talk outlined <a href="http://en.wikipedia.org/wiki/Continuous_Delivery" title="Continuous Delivery" target="_blank">Continuous Delivery</a> experiences and real-world examples of successful implementations, including the obligatory reference to <a href="http://www.flickr.com/" title="Flickr" target="_blank">Flickr</a> whenever this topic is discussed. The main body of the presentation revolved around the observation that <a href="http://marcbless.blogspot.com/2011/03/agile-principle-3-frequent-delivery.html" title="frequent delivery" target="_blank">frequent delivery</a> reduces risk rather than increasing it and that metrics provided by fast feedback are vital to succesful Continuous Delivery. It also aimed to debunk the myth that Continuous Delivery can&#8217;t work in Enterprise deployments.</p>
<p>Overall it was a good introduction to the topic (which no doubt was expanded on in the <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3570" title="workshop" target="_blank">workshop</a> scheduled later in the conference), providing an outline of practices that contribute to Continuous Delivery such as <a href="http://www.informit.com/articles/article.aspx?p=1621865" title="deployment pipeline" target="_blank">deployment pipelines</a>, automation etc, but left me wanting more. If you had already read the <a href="http://continuousdelivery.com/" title="Continuous Delivery Book" target="_blank">book</a> the presentation had little new to offer.</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>&#8220;It should be called BizTestDevOps&#8221; &#8220;Isn&#8217;t that called Agile?&#8221; Martin and Jez at #yow_oz &#8211; @pandamonial</p></blockquote>
<blockquote><p>Continuous Delivery &#8211; you&#8217;d be crazy not too #yow_oz #continuousdelivery &#8211; @twitscottbrady</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/SlidesMelbourneRed/continuous_delivery.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3613" title="We're All Developers Now - Adventures in Infrastructure as Code" target="_blank">We&#8217;re All Developers Now &#8211; Adventures in Infrastructure as Code</a></b> &#8211; <em>Julian Simpson</em></h2>
<p>Unfortunaly for <a href="http://www.build-doctor.com/about/" title="Julian Simpson" target="_blank">Julian</a> this presentation was beset by technical issues from the start and I felt it affected his performance and the session never lived up to expectations for me. At one point Julian ran a demonstration which seemed painfully slow and was compounded by the fact it was a video from a live session using the venues really poor wifi!</p>
<p>The crux of the presentation was really a comparison of <a href="http://puppetlabs.com/" title="Puppet" target="_blank">Puppet</a> and <a href="http://www.opscode.com/chef/" title="Chef" target="_blank">Chef</a>, two competing <a href="http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_management_software" title="configuration management" target="_blank">configuration management tools</a>. Julian discussed why these tools are useful before proceeding to detail the differences between them from an implementation viewpoint. He also spent time discussing the need for collaboration between developers and administrators in the <a href="http://en.wikipedia.org/wiki/DevOps" title="DevOps" target="_blank">DevOps</a> movement.</p>
<div id="attachment_1108" class="wp-caption alignright" style="width: 320px"><a href="http://www.build-doctor.com/" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/build-doctor.png" alt="The Build Doctor" title="build-doctor" width="310" height="47" class="size-full wp-image-1108" /></a><p class="wp-caption-text">The Build Doctor - Julian Simpson</p></div>
<p>Overall I felt the presentation showed the differences between the two tools nicely and was a good introduction to their capabilities. Once again though I felt this introductory nature left me wanting more. I was hoping to hear more about <a href="http://ostatic.com/blog/cloudy-saturday-puppet-for-automating-virtual-machines" title="Use of Puppet with Server Farms" target="_blank">server farm</a> updating and management capabilites with examples and stories from the trenches.</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>#yow_oz having a devops team is an anti-pattern &#8211; @andrewfnewman</p></blockquote>
<blockquote><p>#yow_oz puppet vs chef? But all I can think of is syd(sic) admins at big banks saying &#8216;that&#8217;s not how we do things here&#8217; <img src='http://www.catosplace.net/blogs/personal/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  &#8211; @lachlangartside</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/SlidesMelbourneRed/jsimpson-infrastructure-as-code.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3695" title="Lean Startup - Why It Rocks Far More Than Agile Development" target="_blank">Lean Startup</a></b> &#8211; <em>Joshua Kerievsky</em></h2>
<div id="attachment_1111" class="wp-caption alignleft" style="width: 203px"><a href="http://theleanstartup.com" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/lean-startup-book.jpg" alt="Lean Startup - Eric Ries" title="lean-startup-book" width="193" height="126" class="size-full wp-image-1111" /></a><p class="wp-caption-text">The Lean Startup - Eric Ries</p></div>
<p>This session was the stand out presentation of the conference for me, although some others didn&#8217;t seem to share my opinion &#8211; no surprise there considering the development focused audience. From a business/entrepreneureal viewpoint I like the principles and process behind <a href="http://theleanstartup.com/" title="Lean Startup" target="_blank">Lean Startup</a>. In this talk Joshua outlined differences between Lean Startup and <a href="http://en.wikipedia.org/wiki/Agile_software_development" title="Agile" target="_blank">Agile</a> supported by some real-world implementation experience.</p>
<p><a href="https://twitter.com/#!/joshuakerievsky" title="Joshua Kerievsky" target="_blank">Joshua</a> acknowledged <a href="https://twitter.com/#!/ericries" title="Eric Ries" target="_blank">Eric Ries</a> and extracts from the <a href="http://www.amazon.com/Lean-Startup-Entrepreneurs-Continuous-Innovation/dp/0307887898" title="The Lean Startup" target="_blank">The Lean Starup</a> at several points in this talk, even though he tended to disagree and correct Ries views at times. His real focus was on the process Lean Startup utilises to see/eliminate waste in a capital efficient manner. The constant validation of <a href="http://thesquigglyline.com/blog/uncategorized/lean-start-up-a-hypothesis-approach/" title="Hypothesis - Lean Startup" target="_blank">hypothesis</a> (scientific and measured goals) is at the centre of successful Lean Startup. The section on <a href="http://steveblank.com/2010/08/26/the-non-dummies-guide-to-customer-discovery/" title="Customer Discovery" target="_blank">Customer Discovery</a> resonated well with myself, and I have put some of it into practice already.
<p>This presentation was presented in a really professional manner, in front of some legends of the <a href="http://en.wikipedia.org/wiki/Lean_software_development" title="Lean Software Development" target="_blank">Lean</a> world (<a href="http://www.poppendieck.com/" title="The Poppendiecks" target="_blank">Mary and Tom Poppendieck</a>) who appeared to endorse its content, which I think added to the validity of what Joshua had to say. It was great to hear about some real-world implementations of techniques discussed too. I tend to feel Lean and Agile are complimentary rather than competing techniques &#8211; although view both as labels for doing things more effectively!</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>#yow_oz Joshua Kerievsky don&#8217;t write code unless you have a hypothesis &#8211; lean startup &#8211; @andrewfnewman</p></blockquote>
<blockquote><p>This talk on #LeanStartup is feeling like a church sermon. Not sure it&#8217;s for me&#8230;#Yow_Oz &#8211; @fatal_2</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/LeanStartupYOW11.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3554" title="The Limited Red Society">The Limited Red Society</a></b> &#8211; <em>Joshua Kerievsky</em></h2>
<p>This was another inspiring talk from <a href="https://twitter.com/#!/joshuakerievsky" title="Joshua Kerievsky" target="_blank">Joshua</a>. This time his focus was on how to keep your code out of the red, and thus in a releaseable state at all times. Through the use of baseball statistics Joshua introduced and highlighted the value of <a href="http://en.wikipedia.org/wiki/Statistics" title="Statistics" target="_blank">statistics</a> and <a href="http://en.wikipedia.org/wiki/Data_visualization" title="Data Visualization" target="_blank">data visualization</a>. He then went on to show how tools his team are working on can assist in providing statistics for developer sessions that aim to improve their capabilities to keep code in the green.</p>
<div id="attachment_1115" class="wp-caption alignright" style="width: 406px"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/Limited-Red.jpg" alt="Limited Red" title="Limited-Red" width="396" height="290" class="size-full wp-image-1115" /><p class="wp-caption-text">The Limited Red Society</p></div>
<p>Joshua challenged the audience to consider how we measure the value/productivty of code checked out and being worked on. He invited us to look inside this black box of development using a tool his team are working with. The tool provides information on code status and activities during a recorded session. At the end of the session a visualization helps to assess if the session was productive and can be reviewed to look at ways developers can become more effective. A very interesting insight into development practices.</p>
<p>Having heard that <a href="http://www.jbrains.ca/" title="J.B. Rainsberger" target="_blank">J.B. Rainsberger</a> had learnt he probably <a href="http://en.wikipedia.org/wiki/Code_refactoring" title="Refactoring" target="_blank">refactors</a> at the wrong time too often by using the tool, Joshua had some real clout to back up the tools intended value. With the goal being to keep your code is in a releasable state more of the time &#8211; a worthy goal in my opinion. I feel every developer should strive to become a member of The Limited Red Society.</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>@JoshuaKerievsky giving a great talk about keeping your code out of the red (or pink) at #yow_oz &#8211; @aspinall</p></blockquote>
<blockquote><p>Two awesome talks back to back&#8230; Joshua Kerievsky and Mike Lee. Inspiring. #yow_oz &#8211; @jimmcslim</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/TheLimitedRedSocietyYOW11.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3564" title="SOA Connectivity and Integration...Real World Examples" target="_blank">SOA Connectivity and Integration&#8230;Real World Examples</a></b> &#8211; <em>Rachel Reinitz</em></h2>
<p>Where should I start? I should have learnt my lesson from previous conferences and avoided the <a href="http://www.ibm.com" title="IBM" target="_blank">IBM</a> <a href="http://en.wikipedia.org/wiki/Service-oriented_architecture" title="SOA" target="_blank">SOA</a> presentation at all costs! Something in my brain told me this would be different, it mentioned real world examples in the title for a start. I left the presentation reminding myself at any future conferences <strong>DO NOT</strong> attend an IBM SOA presentation.</p>
<p><div id="attachment_1083" class="wp-caption alignleft" style="width: 114px"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/red-card-ibm.jpg" alt="Red Card IBM" title="red-card-ibm" width="104" height="188" class="size-full wp-image-1083" /><p class="wp-caption-text">IBM SOA - Gets The Red Card!!</p></div>
<p>There were real world examples discussed, cloaked in customer anonymity (what a surprise from IBM!). Often IBM were being portrayed as solutions saviours after smaller integration companies had apparently failed. Several references were made to teams that didn&#8217;t listen to IBM making mistakes in their solutions (reading between the lines &#8211; not implementing IBM software or heavy solutions as they should). It felt more and more like IBM beating up on the smaller players. More focus on how IBM overcame issues in &#8216;collaboration&#8217; and learnt rather than dictated may have been more crowd friendly.</p>
<p>I was surprised that there were almost no tweets made about the presentation. Maybe those who enjoyed it were to afraid to say so and those who didn&#8217;t just could not be bothered to share their experience or were embarrassed to have been lured here in the first place! Little meaningful content, IBM are great, everyone else is doing it wrong delivered by an IBM zealot. Didn&#8217;t belong at such a great developer conference and got the red card from me.</p>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/SOA-customer-stories.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3598" title="Better Testing with Less Work: QuickCheck Testing in Practice" target="_blank">Better Testing with Less Work: QuickCheck Testing in Practice</a></b> &#8211; <em>John Hughes</em></h2>
<p><div id="attachment_1085" class="wp-caption alignright" style="width: 269px"><a href="http://www.cse.chalmers.se/~rjmh/" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/john-hughes.jpg" alt="John Hughes" title="john-hughes" width="259" height="194" class="size-full wp-image-1085" /></a><p class="wp-caption-text">John Hughes - Energetic &#038; Informative QuickCheck Presenter</p></div>
<p><a href="http://www.cse.chalmers.se/~rjmh/" title="John Hughes" target="_blank">John Hughes</a> grabbed both myself and the audiences attention from the outset with his energetic and passionate presentation technique. His demonstration of array reversal was met with audible laughter in the room, such a simple, visual and energetic demonstration of concepts woke up the late-afternoon crowd. This was certainly a talk people enjoyed judging by feedback too.</p>
<p>John was here to pitch the use of <a href="http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html" title="QuickCheck" target="_blank">QuickCheck</a> for property-based testing in the development process. QuickCheck&#8217;s <a href="http://book.realworldhaskell.org/read/testing-and-quality-assurance.html" title="Property Based Testing using QuickCheck" target="_blank">property-based testing</a> may not seem intuative immediatly but with some practice it has real benefits. John demonstrated the QuickCheck capabilites that enable users to test more, with better tests and more tests than other libraries provide.</p>
<p>At its heart is the minimum failing case that QuickCheck reports when tests fail, without which the tool would be nothing more than a test generator &#8211; it is far more than that. John provided some real-world implementation examples and how QuickCheck even helped solve a complex Parallel Execution/<a href="http://en.wikipedia.org/wiki/Race_condition" title="Race Condition" target="_blank">Race Condition</a> issue in a legacy codebase.</p>
<p>This was a well received presentation and there is no doubt QuickCheck is worthy of closer investigation. I would like to investigate the control of data used by the tool to create tests etc, and if the minimum failing test case meets my concerns over the failing of more than one test case based on a single property change. Also where does the tool fit in, should it be used to identify missing unit tests or as a replacement for them? Great tool though&#8230;off to investigate it now!</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>John Hughes&#8217; quickcheck talk grabs people right away. #yow_oz &#8211; @Xavier_Ho</p></blockquote>
<blockquote><p>&#8220;The devs end up saying &#8216;can you please stop testing so we can fix the bugs you&#8217;ve found.&#8217;&#8221; @rjmh in property-based testing talk at #YOW_OZ &#8211; @codemiller</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/jaoo-melbourne-2011/slides/Better-Testing-With-Less-Work.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<h2><b><a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3586" title="Escape from the Ivory Tower: The Haskell Journey From 1990 to 2011" target="_blank">Escape from the Ivory Tower: The Haskell Journey From 1990 to 2011</a></b> &#8211; <em>Simon Peyton Jones</em></h2>
<p>This was a fabulous keynote presented with passion, enthusiasm and ultimate Geek appeal by <a href="http://research.microsoft.com/en-us/people/simonpj/" title="Simon Peyton Jones" target="_blank">Simon Peyton Jones</a>. His energy, facial expressions, body language and amusing deliver had the majority of the audience captivated by this talk. <a href="http://haskell.org/haskellwiki/Haskell" title="Haskell" target="_blank">Haskell</a> may be the realm of <a href="http://en.wikipedia.org/wiki/Functional_programming" title="Functional Programming" target="_blank">functional programming</a> devotees but this presentation appealed to the massed ranks of YOW! Brisbane.</p>
<div id="attachment_1081" class="wp-caption alignleft" style="width: 202px"><a href="http://haskell.org/haskellwiki/Haskell" target="_blank"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/haskell-logo.jpg" alt="Haskell Logo" title="haskell-logo" width="192" height="135" class="size-full wp-image-1081" /></a><p class="wp-caption-text">Haskell - Think Like A Computer Scientist</p></div>
<p>Simon took the audience along on his Haskell journey from its founding principles, its principle driven evolution over the past 21 years, and its continued attempts to avoid success at all costs! With humours self-deprecation Simon showed how Haskell is &#8216;a language everyone talks about but no one uses..&#8217; and outlined the languages key features, and how some design decisons have been reached and implemented as the language continues to evolve. He waxed lyrical about <a href="http://en.wikipedia.org/wiki/Monad_%28functional_programming%29" title="Monads" target="_blank">Monads</a> &#038; <a href="http://www.haskell.org/haskellwiki/OOP_vs_type_classes" title="Type Classes" target="_blank">Type Classes</a> as the foundation for Haskell usefulness.</p>
<p>A fabulous way to end the first day of YOW! Brisbane 2011 this was truly an inspiring story. Simon showed that with enough passion and faith in your principles whilst sticking to your guns you may just be able to infect others. We may not all jump in and start using Haskell, but there is no doubt understanding the ideas behind it could make us better programmers in whatever language we choose to use.</p>
<div style="background-color: #faebd7;color: #008b8b;">
<blockquote><p>&#8220;Don&#8217;t be scared by the term Monad, instead think warm, fuzzy thing&#8221; Simon Peyton Jones&#8217; most excellent talk on Haskell at #yow_oz &#8211; @nabeelahali</p></blockquote>
<blockquote><p>SPJ delivering another entertaining talk on world domination using Haskell #YOW_OZ &#8211; @lambda_foo</p></blockquote>
</div>
<p><a href="http://gotocon.com/dl/SPJ-%20keynote.pdf" title="Download Presentation Slides" target="_blank">Download Presentation Slides</a></p>
<p>Overall day 1 got better as it progressed with a slight blip on the radar when I made the mistake of attending the IBM SOA talk. The two talks from Joshua Kerievsky were inspiring, John Huges was stimulating and energetic whilst Simon Peyton Jones provided great entertainment and plenty pf food for thought. I was definetly feeling invigorated and day 2 was eagerly anticipated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/12/13/yow-2011-brisbane-conference-day-1-attendance-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gradle &#8211; Get Excited Vimeo Presentation</title>
		<link>http://www.catosplace.net/blogs/personal/2011/12/11/gradle-excited-vimeo-presentation/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gradle-excited-vimeo-presentation</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/12/11/gradle-excited-vimeo-presentation/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 11:59:41 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Automation]]></category>
		<category><![CDATA[Build Process]]></category>
		<category><![CDATA[Gradle]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Build]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=1030</guid>
		<description><![CDATA[Hans Dockter introduces Gradle. Quite an old presentation, but does highlight why you may want to start considering Gradle as your next build tool. Take back control of your build and and model your automation domain better. Hans demonstrates some &#8230; <a href="http://www.catosplace.net/blogs/personal/2011/12/11/gradle-excited-vimeo-presentation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hans Dockter introduces <a href="http://www.gradle.org" title="Gradle" target="_blank">Gradle</a>.</p>
<p>Quite an old presentation, but does highlight why you may want to start considering Gradle as your next build tool. Take back control of your build and and model your automation domain better. Hans demonstrates some neat features such as finer forking control and parallel builds, as well as demonstrating a number of benefits gained by the declarative nature of Gradle builds &#8211; the use of describing the &#8216;what&#8217; rather than the &#8216;how&#8217; as he refers to it. It is slightly annoying when he talks and you can&#8217;t see the screen but you can get the gist of it.</p>
<p><iframe src="http://player.vimeo.com/video/13546071?title=0&amp;byline=0&amp;portrait=0" width="400" height="320" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/13546071">JFrog Seminar &#8211; Gradle, Hans Dockter &#8211; HiRes</a> from <a href="http://vimeo.com/jfrog">JFrog Ltd</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/12/11/gradle-excited-vimeo-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YOW! 2011 Brisbane Conference &#8211; Planned Attendance</title>
		<link>http://www.catosplace.net/blogs/personal/2011/12/05/yow-2011-brisbane-conference-planned-attendance/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=yow-2011-brisbane-conference-planned-attendance</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/12/05/yow-2011-brisbane-conference-planned-attendance/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 21:51:15 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Continuous Improvement]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Yow!]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[Lean]]></category>
		<category><![CDATA[Legacy Code]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Parallel Programming]]></category>
		<category><![CDATA[Quantum Physics]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=968</guid>
		<description><![CDATA[The YOW! 2011 Brisbane Conference starts today and I am lucky enough to be attending. My plan over the next few days is to attend the following sessions and I will write up my notes over the next few days. &#8230; <a href="http://www.catosplace.net/blogs/personal/2011/12/05/yow-2011-brisbane-conference-planned-attendance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://yowaustralia.com.au/index.html"><img class="aligncenter size-full wp-image-975" style="border: 0pt none;" title="yow_2011_banner" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/12/yow_2011_banner.gif" alt="YOW! 2011 Australia" width="900" height="137" /></a></p>
<p>The <a href="http://yowaustralia.com.au/YOW2011/general/programBrisbane.html" title="YOW! 2011 Brisbane Conference" target="_blank">YOW! 2011 Brisbane Conference</a> starts today and I am lucky enough to be attending.</p>
<p>My plan over the next few days is to attend the following sessions and I will write up my notes over the next few days.</p>
<p><strong>Monday 5th December</strong><br />
<em><strong>9.00-10.00</strong></em> <a title="Top 10 JVM Erroneous Zones" href="http://yowaustralia.com.au/YOW2011/general/details.html?speakerId=2312" target="_blank">Top 10 JVM Erroneous Zones</a> &#8211; <em>Cameron Purdy</em><br />
<em><strong>10.30-11.25</strong></em> <a title="Continuous Delivery" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3612" target="_blank">Continous Delivery</a> &#8211; <em>Jez Humble and Martin Fowler</em><br />
<em><strong>11.30-12.30</strong></em> <a title="We're All Developers Now - Adventures in Infrastructure as Code" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3613" target="_blank">We&#8217;re All Developers Now &#8211; Adventures in Infrastruture as Code</a> &#8211; <em>Julian Simpson</em><br />
<em><strong>1.15-2.15</strong></em> <a title="Lean Startip" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3695" target="_blank">Lean Startup</a> &#8211; <em>Joshua Kerievsky</em><br />
<em><strong>2.15-3.15</strong></em> <a title="The Limited Red Society" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3554" target="_blank">The Limited Red Society</a> &#8211; <em>Joshua Kerievsky</em><br />
<em><strong>3.30-4.30</strong></em> <a title="SOA Connectivity and Integration...Real World Examples" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3564" target="_blank">SOA Connectivity and Integration&#8230;Real World Examples</a> &#8211; <em>Rachel Reinitz</em><br />
<em><strong>4.30-5.30</strong></em> <a title="Better Testing with Less Work: QuickCheck Testing in Practice" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3598" target="_blank">Better Testing with Less Work: QuickCheck Testing in Practice</a> &#8211; <em>John Hughes</em><br />
<em><strong>6.15-7.30</strong></em> <a title="Escape from the Ivory Tower: The Haskell Journey From 1990 to 2011" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3586" target="_blank">Escape from the Ivory Tower: The Haskell Journey From 1990 to 2011</a> &#8211; <em>Simon Peyton Jones</em></p>
<p><strong>Tuesday 6th December</strong><br />
<em><strong>9.00-10.00</strong></em> <a title="Temporally Quaquaversal Virtual Nanomachine Programming In Multiple Topographically Connected Quantum-Relavistic Parallel Timespaces...Made Easy!" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3496" target="_blank">Temporally Quaquaversal Virtual Nanomachine Programming In Multiple Topographically Connected Quantum-Relavistic Parallel Timespaces&#8230;Made Easy!</a> &#8211; Damian Conway<br />
<em><strong>10.30-11.30</strong></em> <a title="Problem-solving and Decision-making in Software Development" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3316" target="_blank">Problem-solving and Decision-making in Software Development</a> &#8211; <em>Linda Rising</em><br />
<em><strong>11.30-12.30</strong></em> <a title="Domain-Driven Design for RESTful Systems" href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3568" target="_blank">Domain-Driven Design for RESTful Systems</a> &#8211; <em>Jim Webber</em><br />
<em><strong>1.15-2.15</strong></em> <del datetime="2011-12-06T11:23:12+00:00">Product Engineering</del> <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3696" title="Innovation in Legacy Code" target="_blank">Innovation in Legacy Code</a> &#8211; <em>Dave Thomas</em><br />
<em><strong>2.15-3.15</strong></em> <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3649" title="Three 'Tall' Tales" target="_blank">Three &#8216;Tall&#8217; Tales</a> &#8211; <em>Kevin O&#8217;Neill</em><br />
<em><strong>3.30-4.30</strong></em> <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3587" title="The Future is Parallel, and the Future of Parallel is Declarative" target="_blank">The Future is Parallel, and the Future of Parallel is Declarative</a> &#8211; <em>Simon Peyton Jones</em><br />
<em><strong>4.30-5.30</strong></em> <a href="http://www.yowconference.com.au/YOW2011/general/workshopDetails.html?eventId=3607" title="Feedback Makes Everything Better: Understanding the Software Engineering Process" target="_blank">Feedback Makes Everything Better: Understanding the Software Engineering Process</a> &#8211; <em>Bjorn Freeman-Benson</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/12/05/yow-2011-brisbane-conference-planned-attendance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Evolution of Test Driven Developers</title>
		<link>http://www.catosplace.net/blogs/personal/2011/04/27/evolution-test-driven-developer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=evolution-test-driven-developer</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/04/27/evolution-test-driven-developer/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 09:29:32 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=854</guid>
		<description><![CDATA[A light hearted look, with some serious undertones, at the evolution of Test Driven Developers since the rediscovery of Test Driven Development by Kent Beck <a href="http://www.catosplace.net/blogs/personal/2011/04/27/evolution-test-driven-developer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_861" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/evolution.jpg"><img class="size-medium wp-image-861" title="evolution" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/evolution-300x87.jpg" alt="Evolution" width="300" height="87" /></a><p class="wp-caption-text">Evolution</p></div>
<p style="text-align: left;">Test Driven Development (TDD) since its rediscovery by <a title="Kent Beck" href="http://en.wikipedia.org/wiki/Kent_Beck" target="_blank">Kent Beck</a> in the early noughties has led to an evolution in the information technology developers of our species. So where on the test driven developer evolutionary tree do you or your developer kind sit?</p>
<p style="text-align: left;">This is a light hearted look, with some serious undertones, at the evolutionary state of Test Driven Developers. I hope you enjoy your journey of discovery&#8230;</p>
<p style="text-align: left;"><span id="more-854"></span></p>
<h2 style="text-align: left;"><a title="Homo Habilis" href="http://en.wikipedia.org/wiki/Homo_habilis"></p>
<div id="attachment_865" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-865" title="220px-Homo_habilis" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/220px-Homo_habilis-150x150.jpg" alt="Homo Habilis" width="150" height="150" /><p class="wp-caption-text">Homo Habilis</p></div>
<p></a><a title="Homo Habilis" href="http://en.wikipedia.org/wiki/Homo_habilis">Homo Habilis</a></h2>
<p style="text-align: left;">Sitting at the bottom of the Test Driven Developer evolutionary tree this member of the species is not really a Test Driven Developer at all!</p>
<p style="text-align: left;">This member sees no need to write any tests, holding the belief that they write defect free code first time all the time. He makes extensive use of copy and paste techniques, deeply nested conditional statements and has no understanding of design patterns. They add to the technical debt of the project constantly as a result.</p>
<p style="text-align: left;">They can often be seen up to their necks in a debugging session trying to fix production issues. Issues introduced by other members of the species according to the Homo Habilis team member!</p>
<p style="text-align: left;">Some members of the tribe known as &#8216;management&#8217; are impressed by this members code output blindly ignoring the number of defects and regression issues introduced by his work. They have been the cause of revenue losses totally millions of dollars. Far from being extinct, this species is a menace to the development society.</p>
<p style="text-align: left;">If you encounter one of his kind please remove their head from their ass and teach them to read before getting them to read this blog post <a title="TDD for Dummies" href="http://sirmike.org/2008/11/24/tdd-for-dummies/">&#8216;TDD for Dummies&#8217;</a></p>
<h2 style="text-align: right;">
<div id="attachment_881" class="wp-caption alignright" style="width: 160px"><a href="http://en.wikipedia.org/wiki/Neanderthal"><img class="size-thumbnail wp-image-881 " title="Neanderthal" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/220px-Neanderthaler_Fund-150x150.png" alt="Neanderthal" width="150" height="150" /></a><p class="wp-caption-text">Neanderthal</p></div>
<p><a title="Neanderthal" href="http://en.wikipedia.org/wiki/Neanderthal">Neanderthal</a></h2>
<p style="text-align: left;">The lowest member of the evolutionary tree that attempts to writes tests.</p>
<p style="text-align: left;">They do not really understand why they are writing these tests and do not understand the benefits testing provides. They had seen a member of the Tester species write something called a test and due to their nature of imitation tried to do the same.</p>
<p style="text-align: left;">Their tests are written after the code and  follow only happy paths through the code (the Tester they had witnessed was low in the Tester species evolutionary tree).</p>
<p style="text-align: left;">This member copies others and has limited capacity for improvement. There poor development practices and inability to understand design patterns adds to project technical debt, even though some of the tests they add do help manage a little of this debt.</p>
<p style="text-align: left;">This member is usually covered in debugger fall out due to the limited tests they have been able to construct. The minimal coverage and paths their tests cover do lead to hours of howling and teeth-baring production debugging sessions. Often code added or fixed by this member leads to regressive defects.</p>
<p style="text-align: left;">They are unable to comprehend how these defects get into the codebase, as there limited brain capacity leads them to believe that their tests provide enough coverage to minimize risks. Time and time again this has proven not to be the case, but this member struggles to understand how!</p>
<p style="text-align: left;">Tribe &#8216;management&#8217; see this member carrying out testing and consider testing to be a waste of time &#8211; due to the large number of defects still occuring. These &#8216;management&#8217; members of the tribe do not see the quality of their testing as the issue, not the testing itself. This makes it extremely hard for more advanced members of the species to push for an increased testing focus.</p>
<p style="text-align: left;">This legacy of testing being a time-wasting exercise delayed the evolution of the Test Drviven Developer for some time. Thankfully some forward thinking members of the tribe &#8216;management&#8217; team realised the errors of their way and led the acceptance of more evolved Test Driven Developers.</p>
<p style="text-align: left;">If you encounter one these members help them slowly comprehend development best practices, and point them in the direction of introductions to Test Driven Development such as Kent Beck&#8217;s <a title="Test Driven Development: By Example" href="http://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530">Test Driven Development: By Example</a> to assist them on their evolutionary journey. Then hope for the best, based on their limited learning capacity.</p>
<h2 style="text-align: left;">
<div id="attachment_903" class="wp-caption alignleft" style="width: 160px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/human.jpg"><img class="size-thumbnail wp-image-903" title="human" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/human-150x150.jpg" alt="Human" width="150" height="150" /></a><p class="wp-caption-text">Human</p></div>
<p>Human</h2>
<p style="text-align: left;">This member of the species is the earliest evolution of the modern test driven devloper.</p>
<p style="text-align: left;">This member sees tests as a way to exercise the code they have written. They write tests to check there code works as they intended it, a major shift in the evolutionary chain.</p>
<p style="text-align: left;">They write tests after the code and understand that testing their code, even if it is pure genius, will lead to less defects reaching production. They are capable of recognizing the need to test more than just happy cases too, including alternative cases to improve code coverage. Technical debt is more than just two words to this member, there focus on coverage helping add confidence in the technical quality of their code.</p>
<p>Whilst they lack understanding of development practices that could lead to more testable code, this member has also not connected the use of testing to drive design yet.</p>
<p>The test-after approach employed by this member does provide limited support for refactoring. Refactoring to this member involves changing code, not improving the code design. As a result refactoring often leads to numerous test cases being updated. This limits the value this member sees and gains from their refactoring methods.</p>
<p>The testing this member carries out does tend to result in less defects released into the wild. Many defects are found during local development supported by their tests and less regressions occur due to a vision of automating tests much like they had been doing with their builds for many years. This member rarely ventures into debugger territory prefering the safety of their test cases.</p>
<p>This member of the species is the leading member of the species population wise. For all their evolutionary advances such as test coverage, defect minimisation and understanding of technical debt, this member has missed the attention to business value that more evolved members have grasped. Their technical focus often leads to over-engineered solutions and unneccessary frameworks.</p>
<p style="text-align: left;">Tribe &#8216;management&#8217; appreciate the reduced number of defects this member releases to production. A number of visionary managers are searching for more. These visionaries challenge members to visualize the business value they provide.</p>
<p style="text-align: left;">This members days as the most populous member of the species are numbered with the introduction and encouragement of more agile testing practices.</p>
<p style="text-align: left;">If you encounter any of the most populous members of the Test Driven Developer species inform him that TDD is more than a testing exercise, it has just as much to do with emergent design and get them to start reading about Test-Driven Design  in Neal Ford&#8217;s developerworks article from the <a title="Evolutionary Architecture and emergent design: Test-Driven Design, Part 1" href="http://www.ibm.com/developerworks/java/library/j-eaed2/index.html">Evolutionary Architecture and emergent design: Test-Driven Design, Part 1</a>.</p>
<h2 style="text-align: right;">
<div id="attachment_915" class="wp-caption alignright" style="width: 160px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/developers.jpg"><img class="size-thumbnail wp-image-915" title="developers" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/developers-150x150.jpg" alt="Developers" width="150" height="150" /></a><p class="wp-caption-text">Developers</p></div>
<p>Developer</h2>
<p style="text-align: left;">This member of the species is the first to exhibit an understanding of the design aspect of Test Driven Development (TDD).</p>
<p style="text-align: left;">Using test first development this member has come to understand that writing the tests first helps drive the design of their code.</p>
<p style="text-align: left;">They were the first members of the species to benefit from the leaner code base and improved business focus test-first provided. Technical debt is well understood by this evolutionary advanced member of the species, and coverage is just one of the many code inspections undertaken during development.</p>
<p style="text-align: left;">Refactoring to these members is more about improving design than changing code. They benefit from the capability to make more aggressive refactorings as a result of this understanding of refactoring. Code produced also tends to exhibit better design concepts and patterns as well as being more focused and leaner in format. Understanding of automated test techniques such as regression testing enables them to support purer design refactoring.</p>
<p style="text-align: left;">Another evolutionary shift achieved by this member is the behavioural nature of their testing. Behaviour Driven Development focuses on a Given-When-Then structure for test cases that this member has mastered. Behaviour testing focuses on what happens rather than technical mechanics enabling improved business focus. BDD enables teams to measure how much of the business functionality has been met.</p>
<p style="text-align: left;">These members rarely need to enter the evil lair of the debugger when fixing defects. They add tests that exhibit the defect failure and then fix the defect. They believe in the power of regression tests to prevent defects reoccurring and are very succesful in this area.</p>
<p style="text-align: left;">Tribe &#8216;management&#8217; are impressed by the ability to measure the business functionality coverage, and the business customers appreciate the added value and  confidence tested behaviour provides them. This member of the species is highly sought after. Their numbers are increasing in the wild and the development family is all the better for that.</p>
<p style="text-align: left;">If you meet one of their increasing number out in the wild let them know that ATDD (Acceptance Test Driven Development) adds even more business value. Get them to order and digest the currently MEAP <a title="Specification By Example" href="http://specificationbyexample.com/">Specification By Example</a> by Gojko Adzic.</p>
<h2 style="text-align: right;">
<div id="attachment_919" class="wp-caption alignleft" style="width: 160px"><img class="size-thumbnail wp-image-919 " title="guru" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/guru-150x150.jpg" alt="Guru" width="150" height="150" /><p class="wp-caption-text">Guru</p></div>
<p style="text-align: left;">TDD Guru</p>
</h2>
<p style="text-align: left;">This member of the species has only recently been discovered. There numbers are minimal at the present time, and these members will be at a premium real soon.</p>
<p style="text-align: left;">Not only do these members use TDD as a design discipline and test exercise they have also quite amazingly been able to attach it to ongoing business value. They have been able to show the business value provided throughout the development cycle. This member uses the ultimate weapon in Test Driven Development, the latest evolution in TDD tools, the living document.</p>
<p style="text-align: left;">This living document uses specifications by example to exercise business facing tests with realistic scenarios provided collaboratively by the customer and development team. These bussiness tests build on the fundamental foundation of unit tests, these members recognise that test typers are not effective in isolation.</p>
<p style="text-align: left;">Adding new business value for these members  involves writing business facing tests, backed by technical unit tests. This methodology they have evolved encourages greater focus on providing business value as well as resulting in leaner code creation. These members are close to genius in capability.</p>
<p style="text-align: left;">This living document forms part of an Acceptance Test Driven Development (ATDD) methodology evolution this member promotes and encourages. The ATDD  methodology builds on the foundations of Test Driven Development (TDD)  to deliver code testing business specifications. These specifications exist in the living document recreated each time a build occurs, which means that this document is constantly relevant.</p>
<p style="text-align: left;">The living document is a live requirements document. Each version of the application has its own version of the requirements. Each version can be tested against it relevant requirements. This giant step in the evolution of TDD should not be underestimated.</p>
<p style="text-align: left;">These members almost always pick up defect prior to release, through the use of specifications by example, showcases and user tests. They recognise the value of collaboration during all aspects of the development process.</p>
<p style="text-align: left;">Defects that do slip through are quickly fixed and released through the use of continuous integration, regression tests and customer confidence. This member has mastered the skills that minimise the time from concept to release of features or defect fixes.</p>
<p style="text-align: left;">Debug is a dirty word to this member of the species. They feel violated when they need to use a debugger to fix issues &#8211; prefering the cleaner environment of the test case creation. They also utilise code inspection, coverage and regression tests to help them fix defects and maintain a managable level of technical debt.</p>
<p style="text-align: left;">If you come across this member, hire them quickly and monitor their evolution &#8211; what will be the next evolution in Test Driven Development?</p>
<h2 style="text-align: left;">Where do you sit on the evolutionary tree?</h2>
<p style="text-align: left;">So where in the evolutionary tree do you or your developers sit? I have included a poll below to create a census of the current state of Test Driven Developers in the industry.</p>
<p style="text-align: left;">It would be great if you could spare 2 seconds to vote, and even better if you could take the time to comment on my interpretation of  Test Driven Developers evolution and add your thoughts and experiences of Test Driven Developers.</p>
<h2>Test Driven Developer Evolutionary Tree Poll:</h2>
Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/04/27/evolution-test-driven-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Improve Developer Quality Tip #2</title>
		<link>http://www.catosplace.net/blogs/personal/2011/04/08/improve-developer-quality-tip-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=improve-developer-quality-tip-2</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/04/08/improve-developer-quality-tip-2/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 07:45:53 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Continuous Improvement]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[JQuery Tips]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=795</guid>
		<description><![CDATA[This developer quality tip is about keeping abreast with leading thinkers/players in your field. For me one of the leading thinkers in the developer field is Neal Ford from Thoughtworks. This tip relates to a topic Neal has been advocating since late 2010 - 'Evolutionary Architecture &#038; Emergent Design'. <a href="http://www.catosplace.net/blogs/personal/2011/04/08/improve-developer-quality-tip-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/geeks2.jpg"><img src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/04/geeks2-300x214.jpg" alt="" title="Intelligent Design" width="300" height="214" class="aligncenter size-medium wp-image-841" /></a></p>
<p align="left">This developer quality tip is about keeping abreast with leading thinkers/players in your field. For me one of the leading thinkers in the software development field is <a href="http://www.nealford.com/" target="_blank">Neal Ford</a> from <a href="http://www.thoughtworks.com/" target="_blank">Thoughtworks</a>. This tip relates to a topic Neal has been advocating since early 2009 &#8211; <strong>&#8216;Evolutionary Architecture &#038; Emergent Design&#8217;</strong>.</p>
<p align="left">Neal didn&#8217;t invent either concept, but is responsible for bringing them to my attention.</p>
<p><span id="more-795"></span></p>
<p align="left"><strong>Evolutionary Architecture</strong> encourages the removal of big architecutural design up front, replacing it with architecture that evolves alongside application developement. <a href="http://martinfowler.com/" target="_blank">Martin Fowler</a> had argued this as part of this <a href="http://en.wikipedia.org/wiki/Extreme_Programming" target="_blank">XP</a> inspired 2004 paper &#8211; <a href="http://martinfowler.com/articles/designDead.html" target="_blank">Is Design Dead?</a>.</p>
<p align="left">
<blockquote style="text-align:left;"><p>The philosophy of deferring commitment for dealing with the unknown has successfully enabled the most difficult journeys</p></blockquote>
<p>- <a href="http://runningagile.com/2008/01/05/emergent-architecture/" target="_blank">Emergent Architecture, Running Agile &#8211; A Practicioner&#8217;s View to Lean &#038; Agile (Jan 2008)</a>
</p>
<p align="left"><strong>Emergent Design</strong> relates to the use of TDD (Test Driven Development) as a design exercise in order to create more maintainable code. Patterns that emerge lead to refactoring exercises providing a leaner codebase.</p>
<p align="left">
<blockquote style="text-align:left;"><p>One of the difficulties for emergent design lies in finding idiomatic patterns and other design elements hidden in code</p></blockquote>
<p>- <a href="http://www.ibm.com/developerworks/java/library/j-eaed6/index.html" target="_blank">Neal Ford: Emergent design through metrics (Mar 2010)</a>
</p>
<p align="left">Neal Ford&#8217;s developerworks articles are listed and linked to below. Searching for all of the articles on developerworks and the link provided by Neal himself in his presentation (link below) fails to list all the articles &#8211; so I have included them here for your convenience.</p>
<p align="left">
<em>Evolutionary Architecture &#038; Emergent Design</em><br/><em>Neal Ford &#8211; Developerworks Series</em></p>
<ul>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed1/index.html" target="_blank">Investigating architecure and design</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed2/index.html" target="_blank">Test-driven design, Part 1</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed3/index.html" target="_blank">Test-driven design, Part 2</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed4/index.html" target="_blank">Composed method and SLAP</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed5/index.html" target="_blank">Refactoring towards design</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed7/index.html" target="_blank">Language, expressiveness and design, Part 1</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed8/index.html" target="_blank">Language, expressiveness and design, Part 2</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed9/index.html" target="_blank">Harvesting idiomatic patterns</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed10/index.html" target="_blank">Evolutionary architecture</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed6/index.html" target="_blank">Emergent design through metrics</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed11/index.html" target="_blank">Leveraging reusable code, Part 1</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed12/index.html" target="_blank">Leveraging reusable code, Part 2</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed13/index.html" target="_blank">Using DSLs</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed14/index.html" target="_blank">Fluent interfaces</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed15/index.html" target="_blank">Building DSLs in Groovy</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed16/index.html" target="_blank">Building DSLs in JRuby</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed17/index.html" target="_blank">Environmental considerations for design, Part 1</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed18/index.html" target="_blank">Environmental considerations for design, Part 2</a></li>
<li><a href="http://www.ibm.com/developerworks/java/library/j-eaed19/index.html" target="_blank">Emergent design in the wild</a></li>
</ul>
<p align="left"><em>Neal Ford has presented his &#8216;Evolutionary Architecture &#038; Evolutionary Design&#8217; several times. Below is a link to one of these presentations on Vimeo:</em><br/><a href="http://vimeo.com/16955608">Emergent Design &#8211; Neal Ford</a> from <a href="http://vimeo.com/user4280938">Michael Tiberg</a> on <a href="http://vimeo.com">Vimeo</a>. I would have liked to have embedded this video here, but was unable to do so due to permission issues.</p>
<p align="left">The are numerous other resources I could add to this list, but why re-invent the wheel when <a href="http://bradapp.blogspot.com/">Brad Appleton’s ACME Blog</a>: <a href="http://bradapp.blogspot.com/2009/07/emergent-design-and-evolutionary.html" target="_blank">Emergent Design &#038; Evolutionary Architecture resources</a> entry has many of the best listed already. I urge you look through his list and read those that you find relevant.</p>
<p align="left">I would also appreciate anyone aware of recent discussions on <strong>&#8216;Evolutionary Architecture &#038; Emergent Design&#8217;</strong> to list them in the comments below &#8211; and I will endevour to add them to the list on this page.</p>
<p align="left">Finally, once more, I encourage you to keep abreast of the leading thinkers/players in your field.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/04/08/improve-developer-quality-tip-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Constant Strive To Improve Productivity</title>
		<link>http://www.catosplace.net/blogs/personal/2011/01/23/kanban/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kanban</link>
		<comments>http://www.catosplace.net/blogs/personal/2011/01/23/kanban/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 09:40:03 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Kanban]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Agile Kanban]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=761</guid>
		<description><![CDATA[I have an almost unhealthy infatuation with productivity and ways to improve it! It begun many moons ago with a to-do list written on a scrap of paper. I started writing to-do lists for all kinds of things. What I &#8230; <a href="http://www.catosplace.net/blogs/personal/2011/01/23/kanban/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_772" class="wp-caption aligncenter" style="width: 269px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/01/todo-list.jpg"><img class="size-full wp-image-772" title="To-Do List" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/01/todo-list.jpg" alt="To-Do List" width="259" height="195" /></a><p class="wp-caption-text">Doing it wrong!!</p></div>
<p style="text-align: left;">I have an almost unhealthy infatuation with productivity and ways to improve it!</p>
<p style="text-align: left;">It begun many moons ago with a to-do list written on a scrap of paper. I started writing to-do lists for all kinds of things. What I planned to do at work each day became a to-do list. Things I planned to do around the house became a to-do list. As many others before me, I learned that having a to-do list itself doesn&#8217;t result in improved productivity.</p>
<p style="text-align: left;">Sure, I got things done and felt a sense of achievement, but I constantly felt frustrated by the number of incomplete lists. My infatuation with improving my personal productivity had begun.</p>
<p><span id="more-761"></span></p>
<p style="text-align: left;">My first improvement was to introduce prioritization. I was now getting the most important things done all the time. Unfinished things now seemed to find their way to the top of the next list!</p>
<p style="text-align: left;">My prioritization criteria needed some improvement. I begun to notice a trend too, many things on the lists were getting started but not finished. There seemed to be a lot of opportunities for improvement at this time.</p>
<p style="text-align: left;">I then discovered <a title="Remember The Milk" href="http://www.rememberthemilk.com/" target="_blank">Remember The Milk</a> an on-line to do list. Now I was able to categorize as well as prioritize tasks (my new terminology for things). It felt like an improvement, but I was never totally convinced!</p>
<p style="text-align: left;">I no longer lost unfinished tasks, I could view completed tasks and visualize task history. The number and types of task completed within time-frames gave me new data to analyse. I begun tracking task velocity based on type and availability in a crude manner.</p>
<p style="text-align: left;">For a while the online, categorized, prioritized to-do list became my tool of choice. Tweaks were made to the process, dependencies on other tasks, time-boxed tasks, shared tasks amongst them. There still seemed plenty of opportunity to improve.</p>
<p style="text-align: left;">Recently it has been replaced. Prior to Christmas a work colleague introduced me to <a title="Personal Kanban" href="http://www.personalkanban.com/pk/" target="_blank">Personal Kanban</a>.</p>
<div id="attachment_767" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/01/house_kanban.jpg"><img class="size-medium wp-image-767" title="House Kanban" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2011/01/house_kanban-300x225.jpg" alt="House Kanban" width="300" height="225" /></a><p class="wp-caption-text">Kanban Wall - &#39;Home&#39;</p></div>
<p style="text-align: left;">After the introduction I spent time discovering what Kanban was. I read about the techniques people used and now have  a number of Kanban walls &#8211; at work, in the garage, and on my mobile phone! I feel I have moved to the next level of productivity as a result.</p>
<p style="text-align: left;">Who would have thought such a simple concept could have such an impact on productivity. The concept -<em> limiting the work in progress</em>.  Improved focus on a limited amount of tasks results in more getting done. How had I not considered this before? No idea &#8211; but I am glad someone else had.</p>
<p style="text-align: left;">I soon desired mobile Kanban walls. <a title="KanDroid by miloObjects" href="http://www.milobjects.com/" target="_blank">KanDroid</a> for Android seemed to fit the bill. I could add tasks, limit my WIP (Work in Progress), and mark tasks as done. It has one fatal flow. There is no way to prioritize items in the backlog!  Prioritization was a vital part of my productivity, which means I am seeking a more suitable implementation at this time.</p>
<p style="text-align: left;">Now that I have Kanban in my toolkit I do feel more productive. The constant strive for improved productivity doesn&#8217;t end though.</p>
<p style="text-align: left;">Most items in my backlog seem to be stories. Each story requires a number of tasks to be completed. I initially tried managing these tasks using online to-do lists. Currently I manage tasks using a mobile task management application. It does not feel ideal, so I am looking for ways to improve here. (Experimenting with post-it tasks on one wall &#8211; see image above).</p>
<p style="text-align: left;">My constant strive to improve productivity continues. I am always interested in hearing about ways other people strive to do this too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2011/01/23/kanban/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s not ALWAYS the testers fault&#8230;</title>
		<link>http://www.catosplace.net/blogs/personal/2010/12/13/testers-fault/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=testers-fault</link>
		<comments>http://www.catosplace.net/blogs/personal/2010/12/13/testers-fault/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 09:34:47 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Quality]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=685</guid>
		<description><![CDATA[&#8230;that your software doesn&#8217;t work! I&#8217;m not saying it&#8217;s never the testers fault. What I am saying is this. It is not just the testers who contribute to the success or failure of your software. How can this be the &#8230; <a href="http://www.catosplace.net/blogs/personal/2010/12/13/testers-fault/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_687" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/10/blame2.jpg"><img class="size-medium wp-image-687" title="blame2" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/10/blame2-300x232.jpg" alt="It's not Always the testers fault..." width="300" height="232" /></a><p class="wp-caption-text">It&#39;s not &#39;ALWAYS&#39; the testers fault...</p></div>
<p>&#8230;that <em>your</em> software doesn&#8217;t work!</p>
<p style="text-align: left;">I&#8217;m not  saying it&#8217;s never the testers fault. What I am saying is this. It is  not just the testers who contribute to the success or failure of <em>your</em> software.</p>
<ul>
<li style="text-align: left;">How can this be the case?</li>
<li style="text-align: left;">Who contributes to the success or failure of <em>your</em> software?</li>
<li style="text-align: left;">What can be done to improve the chances that <em>your</em> software will be a success?</li>
</ul>
<p>Product/Business owners&#8230;.Lets discuss it!</p>
<p style="text-align: left;"><span style="color: #999999;"><em>This  is the 2nd of 3 discussions around the roles and responsibilities of  the Product/Business owner in the agile software development life-cycle.  In this 2nd discussion I will look at the roles and responsibilities of  the team members at the iteration level. In a previous discussions I looked at their roles and responsibilities at the project level (<a title="It's not ALWAYS the developers fault" href="http://www.catosplace.net/blogs/personal/?p=580" target="_blank">It&#8217;s not ALWAYS the developers fault&#8230;</a>). In the final discussion I will look at their roles and responsibilities in the story delivery life-cycle.</em></span></p>
<p style="text-align: left;"><span style="color: #ff99cc;"><em><span id="more-685"></span><strong><span style="color: #000000;">How can this be the case?</span></strong></em></span></p>
<p style="text-align: left;"><span style="color: #ff99cc;"><em><span style="color: #000000;">The testers are responsible for making sure things work as expected. It is there job to find all of the things that are wrong with the software. How can it not be there fault?</span></em></span></p>
<p style="text-align: left;">During iteration &#8216;zero&#8217; test script frameworks related to identified stories will be decided upon by the testing team. Testing spikes may be identified and addressed if the need exists. Collaboration between the developers and testers will be required to ensure spikes are identified and suitable test frameworks selected.</p>
<p style="text-align: left;">Along with the team a definition of done will be decided on during Iteration &#8216;Zero&#8217;, so although the testers decide on the tools/frameworks they will use, the team decide as a whole when something is considered done.</p>
<p style="text-align: left;">Prior to the iterations some story elaboration may take place. Early story elaboration (1 or 2 iterations in advance), can help to minimize time spent elaborating on stories during iteration kick off. Involve the appropriate team members in early elaborations.</p>
<p style="text-align: left;">Other forms of testing such as performance, load and exploratory testing may also be included in the test strategy. Scenario testing is usually developed in collaboration with the BA &amp; SME based on available features &#8211; again collaborative in nature.</p>
<p style="text-align: left;">During iteration kick off the stories planned for the iteration should be workshopped with the whole team present. The whole team should have an understanding of the stories being delivered. Testers get to understand the other team members view of the stories and provide their own views too.</p>
<p style="text-align: left;">Test plans for the iteration may be updated/prepared based on the planned stories. Test plans may be no more than testing all the planned stories, but performance and other specialised forms of testing may be included in the plans.</p>
<p style="text-align: left;">As can be seen, what is tested during an iteration by testers is largely dependent on what the whole team has planned and elaborated on.</p>
<p style="text-align: left;">The iterative implementation stage is where most effort is targeted. Testers are responsible for creating and implementing functional test cases at this stage. Testers are also responsible for testing the cards as functionality is delivered &#8211; as per the test plan agreed on by the whole team.</p>
<p style="text-align: left;">Testers are not responsible for unit tests, or for writing the functionality being tested. Throwing untested code to testers does not make them responsible for testing at a lower level. Developers have to take on responsibility for quality, shared with testers, as part of a team wide effort to provide good quality.</p>
<p style="text-align: left;">During close out testers take part in the retrospective along with the rest of the team, as well as attending the iteration showcase. The testers also provide test reports and measurements for use in metrics during close out.</p>
<p style="text-align: left;">Testers are not the only contributors at the retrospective, they also sit back and absorb information from stakeholders at the showcase &#8211; rather than make decisions/comments. So although the testers are responsible for checking that the software meets customer expectations, they are not the only people to ensure this is the case.</p>
<p style="text-align: left;"><em><strong>Who contributes to the success or failure of your software?</strong></em></p>
<p style="text-align: left;"><em>If the testers are not the only ones responsible, then who else  is? Who else contributes to the success or failure of your software?</em></p>
<p style="text-align: left;">The project management has an important role to play during iteration &#8216;zero&#8217;, that of team set up and structure based on the project plans. The whole team is responsible for agreeing to the definition of done and beginning the elaboration of stories for the initial iterations.</p>
<p style="text-align: left;">Developers are responsible for sharing technical spike information, naming conventions and low level design decisions with tester. This will help testers make informed tools/framework decisions. Collaboration is also essential across the team in setting up tools and environments like defect trackers, build environments and other tools.</p>
<p style="text-align: left;">The whole team have a role to play in iteration planning, the tester being just one of them. You as the product owner/sponsor, the BA, SME, developers and the infrastructure team all have a role to play during iteration planning. The team should participate in deciding on what will be included in the iteration and plans for deployment.</p>
<p style="text-align: left;">Each member of the team brings their own skill set to the table in planning and elaboration meetings which is important. Each also has a responsibility to contribute and ensure their voice is heard at this stage of the iteration.</p>
<p style="text-align: left;">At the iteration kick off all team members elaborate the stories planned in order to get a shared understanding within the team. Collectively the team have shared responsibility to agree on acceptance criteria for each story being delivered. The whole team are responsible for delivery of each story.</p>
<p style="text-align: left;">The whole team play a role in planning what they hope to accompolish during the iteration at kick off. Walls and BVCs should be updated by those responsible for them, ready for implementation.</p>
<p style="text-align: left;">Developers and the use of TDD &#8211; from a design and confidence to refactor the codebase, play a significant role during implementation. Unit level testing provided by the developers builds a foundation for the functional tests written by the testers. Without this base, functional testing is likely to be compromised at a lower level.</p>
<p style="text-align: left;">The whole team has a role to play in ensuring quality practices are undertaken. Unit and functional tests need to be run regularly. Deployments should be done as agreed during iteration planning, providing enough time to test and fix issues. In addition UAT needs to take place to enable invaluable user feedback.</p>
<p style="text-align: left;">During close out all team members have a responsibility to be open and honest at the retrospective, sharing both the worst and the best of the iteration. Stakeholders have a responsibility to attend the showcase, provide valuable feedback and confirm the software meets customer needs.</p>
<p style="text-align: left;"><em><strong>What can be done to improve the chances that your software will be a success?</strong></em></p>
<p style="text-align: left;"><em>So if there are so many people contributing to the softwares success, what can be done to improve the chances of success?</em></p>
<p style="text-align: left;">Don&#8217;t underestimate the importance of iteration &#8216;zero&#8217;, use it to eliminate as much risk as possible. Utilizing this iteration to set up the team (co-location preferred), to perform technical spikes and initiate planning and story elaboration will set your project up for success.</p>
<p style="text-align: left;">Iteration planning involves many people in many roles with many responsibilities. To get the most from each iteration try to plan story elaboration 1 or 2 iterations in advance. Review those present in the current iteration at the planning meeting.</p>
<p style="text-align: left;">Prior to the iteration start re-emphasize the definition of done, so that the team are all on the same page. Planning of long lead tasks such as deployment tasks can prevent delays during the iteration if included in the planning. Iteration planning deserves to be given the respect it deserves, so don&#8217;t try to rush this phase.</p>
<p style="text-align: left;">At the iteration kick off, ensure the whole team are present and understand the scope of work to be delivered. Use the kick off to make sure all members of the team have a shared understanding of the in scope stories.</p>
<p style="text-align: left;">Ensuring TDD occurs, utilisation of pair-programming and code-reviews can help improve coding standards during implementation. Unit and functional tests should be integrated into a continous build cycle, triggered by code check-in to source control. These practices will provide quick feedback time for quality issues.</p>
<p style="text-align: left;">Deployments to integrated environments enable testers to work in stable environments. Regular deployments can help to minimise environmental issues that only show themselves in more production like environments. UAT helps identify user issues prior to release, and helps improve the user experience based on feedback.</p>
<p style="text-align: left;">During the close out ensure the whole team participate in the retrospective. Ensure that actions that come out of the retrospective are assigned, and make sure these actions are followed through.</p>
<p style="text-align: left;">Ensure all stakeholders are present at the showcase, so that they all have the chance to contribute in the provision of feedback early in the process. These showcases can prevent potential pitfalls late in the project schedule.</p>
<p><em><strong>Build Quality In</strong></em></p>
<p style="text-align: left;">As we have seen quality is the  responsibility of every team member in an agile team, not just the testers. Every team member has a role to play in building quality in.</p>
<p style="text-align: left;"><em>Are you ready yet to admit…it’s not <strong>ALWAYS</strong> the testers fault?</em></p>
<p><img title="More..." src="../wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2010/12/13/testers-fault/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve Developer Quality Tip #1</title>
		<link>http://www.catosplace.net/blogs/personal/2010/10/22/improve-developer-quality-tip-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=improve-developer-quality-tip-1</link>
		<comments>http://www.catosplace.net/blogs/personal/2010/10/22/improve-developer-quality-tip-1/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 12:44:34 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=697</guid>
		<description><![CDATA[#1 Transaction Models &#038; Strategies

This is the first of an ongoing series of tips for improving developer quality. Each tip will highlight development skills that I believe help improve code quality. <a href="http://www.catosplace.net/blogs/personal/2010/10/22/improve-developer-quality-tip-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_698" class="wp-caption aligncenter" style="width: 259px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/10/ComputerCodeWriter.jpg"><img class="size-medium wp-image-698" title="Writing Computer Code" src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/10/ComputerCodeWriter-249x300.jpg" alt="Writing Computer Code" width="249" height="300" /></a><p class="wp-caption-text">Writing Computer Code</p></div>
<p style="text-align: left;">This is the first in an ongoing series of tips for improving developer quality. Each tip will highlight development skills that I believe help improve code quality. Skills developers can learn via the resources linked to in the tip. Skills that once mastered will lead to better quality solutions.</p>
<h2 style="text-align: left;"><strong><strong>#1 Transaction Models &amp; Strategies</strong></strong></h2>
<p style="text-align: left;">This first tip looks at transactions. Good developers can tell you that transactions need to have ACID (atomic, consistent, isolated and durable) properties. They will also be able to tell you that transactions help recover from failures and help to keep the data in a consistent state.</p>
<p style="text-align: left;"><span id="more-697"></span></p>
<p style="text-align: left;">How many developers in your team can explain commonly used transactional models and strategies?</p>
<p style="text-align: left;">Lets start with the transactional models. If your developers have never heard of the <em>Local Transaction model</em>, the <em>Programmatic Transaction model</em> or the <em>Declarative Transaction model</em> then a good starting place is the <a title="Java Transaction Design Strategies Free PDF Book" href="http://www.infoq.com/minibooks/JTDS" target="_blank">free PDF book &#8216;Java Transaction Design Strategies&#8217; by Mark Richards available on InfoQ</a>.</p>
<p style="text-align: left;">Moving on to transaction strategies Mark Richards has written a series of article on <a title="developerWorks" href="http://www.ibm.com/developerworks" target="_blank">developerworks</a>. So if your developers have not heard of the <em>Client Orchestration</em>, <em>API Layer</em>, <em>High Concurrency</em> or <em>High Speed Processing</em> transaction strategies then this series will help them get a heads up:</p>
<ul>
<li><a title=" Transaction strategies: Understanding transaction pitfalls " href="http://www.ibm.com/developerworks/java/library/j-ts1.html" target="_blank"> <strong>Transaction strategies: Understanding transaction pitfalls</strong></a></li>
<li><a title=" Transaction strategies: Models and strategies overview " href="http://www.ibm.com/developerworks/java/library/j-ts2.html" target="_blank"> <strong>Transaction strategies: Models and strategies overview</strong></a></li>
<li><a title=" Transaction strategies: The API Layer strategy" href="http://www.ibm.com/developerworks/java/library/j-ts3/index.html" target="_blank"> <strong>Transaction strategies: The API Layer strategy</strong></a></li>
<li><a title=" Transaction strategies: The Client Orchestration strategy" href="http://www.ibm.com/developerworks/java/library/j-ts4/index.html" target="_blank"> <strong>Transaction strategies: The Client Orchestration strategy</strong></a></li>
<li><a title=" Transaction strategies: The High Concurrency strategy" href="http://www.ibm.com/developerworks/java/library/j-ts5/index.html" target="_blank"> <strong>Transaction strategies: The High Concurrency strategy</strong></a></li>
<li><a title=" Transaction strategies: The High Performance strategy" href="http://www.ibm.com/developerworks/java/library/j-ts6/index.html" target="_blank"> <strong>Transaction strategies: The High Performance strategy</strong></a></li>
</ul>
<p style="text-align: left;">Spring is used in many of the examples throughout the PDF book and <a title="developerWorks" href="http://www.ibm.com/developerworks" target="_blank">developerWorks</a> articles. As Spring is so widely used it is also worth reading the <a title="Spring Transaction Management" href="http://static.springsource.org/spring/docs/current/spring-framework-reference/html/transaction.html" target="_blank">Transaction Management section of the Spring Reference Guide</a>.</p>
<p style="text-align: left;">For those still wanting more &#8211; <a title="Java Transaction Processing: Design and Implementation" href="http://www.amazon.com/Java-Transaction-Processing-Implementation-Professional/dp/013035290X" target="_blank">Java Transaction Processing: Design and Implementation</a> seems to be the recommended book on this topic (I had not read this at the time of writing &#8211; but it is on my list of books to read).</p>
<p style="text-align: left;">Hopefully, this tip and these resources will encourage more developers to think about the transaction model and transaction strategy they are using on their current/next project.</p>
<p style="text-align: left;">This information should help developers pick the best model and strategy based on their project requirements. They will be able to explain the reasons for their choices and describe the advantages of the chosen solution over others.</p>
<p style="text-align: left;">If you have any other useful resources related to this tip please add them in the comments.</p>
<p style="text-align: left;">
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2010/10/22/improve-developer-quality-tip-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s not ALWAYS the developers fault&#8230;</title>
		<link>http://www.catosplace.net/blogs/personal/2010/10/11/always-developers-fault/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=always-developers-fault</link>
		<comments>http://www.catosplace.net/blogs/personal/2010/10/11/always-developers-fault/#comments</comments>
		<pubDate>Sun, 10 Oct 2010 11:32:36 +0000</pubDate>
		<dc:creator>Peter Sellars</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Quality]]></category>

		<guid isPermaLink="false">http://www.catosplace.net/blogs/personal/?p=580</guid>
		<description><![CDATA[It's not ALWAYS the developers fault......that your software doesn't work! I'm not saying it's never the developers fault. What I am saying is this. ... <a href="http://www.catosplace.net/blogs/personal/2010/10/11/always-developers-fault/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">
<p style="text-align: left;">
<div id="attachment_582" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/09/blame.jpg"><img class="size-medium wp-image-582" title="It is not 'ALWAYS' the developers fault....." src="http://www.catosplace.net/blogs/personal/wp-content/uploads/2010/09/blame-300x269.jpg" alt="It is not 'ALWAYS' the developers fault....." width="300" height="269" /></a><p class="wp-caption-text">It is not &#39;ALWAYS&#39; the developers fault.....</p></div>
<p style="text-align: left;">&#8230;that <em>your</em> software doesn&#8217;t work!</p>
<p style="text-align: left;">I&#8217;m not saying it&#8217;s never the developers fault. What I am saying is this. It is not just the developers who contribute to the success or failure of <em>your</em> software.</p>
<ul style="text-align: left;">
<li>How can this be the case?</li>
<li>Who contributes to the success or failure of <em>your</em> software?</li>
<li>What can be done to improve the chances that <em>your</em> software will be a success?</li>
</ul>
<p style="text-align: left;">Product/Business owners&#8230;.Lets discuss it!</p>
<p style="text-align: left;"><span style="color: #999999;"><em>This is the 1st of 3 discussions around the roles and responsibilities of the Product/Business owner in the agile software development life-cycle. In this 1st discussion I will look at the roles and responsibilities of the team members at the project level. In subsequent discussions I will look at their roles and responsibilities in the iteration and the story delivery life-cycle.</em></span></p>
<p style="text-align: left;"><span id="more-580"></span></p>
<p style="text-align: left;"><em><strong>How can this be the case?</strong></em></p>
<p style="text-align: left;"><em>The developers are responsible for engineering and writing the software that you ask for. How can it not be their fault?</em></p>
<p style="text-align: left;">During the project concept phase developers have no roles or responsibilities at all. It is not the developers who decide if your project is feasible. A technical lead/architect will be involved in the high-level design, but the decision on proceeding with the project does not rest on them.</p>
<p style="text-align: left;">The initiate phase sees the granulation of concept level work. Developers along with other team members participate in workshops at this phase. The developers play a role in helping to break down features into stories and refining the solution design among other things. Their role in these workshops is the same as every other team member present &#8211; to  refine the concept.</p>
<p style="text-align: left;">Developers may carry out technical &#8216;spikes&#8217; around technical risks to help determine estimates and time frames, but for the most part they are merely members of a team identifying, prioritizing, estimating and planning at this stage.</p>
<p style="text-align: left;">Development is carried out by developers at the develop phase of the project. No prizes for getting that one right. Is this when it becomes their fault?</p>
<p style="text-align: left;">Well, once again they are not the only members of the team involved in this phase. They are part of a team charged with building functionality that adds business value, and they need support from other team members to do this. The whole team should be involved in planning sessions, stand-ups, retrospectives and showcases during short iterative periods of development.</p>
<p style="text-align: left;">Developers play a large role in engineering functionality at this stage. It is there responsibility to develop code that meets acceptance criteria established by the whole team. This same code is tested manually by test analysts and demonstrated to you before being considered complete. That means everyone in the team has agreed what the developer should build, it has been tested and has been accepted by yourself.</p>
<p style="text-align: left;">Development is not carried out in isolation, the whole team is responsible for ensuring its quality, not just the developers.</p>
<p style="text-align: left;">Finally there is the deploy phase. Here the developers have a role to play in handover to the production support team. They will also be involved during creation of the back out strategy, data recovery and stress testing.</p>
<p style="text-align: left;">The developers role at this phase is largely supportive. Once more, this phase relies on team efforts &#8211; not just the developers.</p>
<p style="text-align: left;"><em><strong>Who contributes to the success or failure of <em>your</em> software?</strong></em></p>
<p style="text-align: left;"><em>If the developers are not the only ones responsible, then who else is? Who else contributes to the success or failure of your software?</em></p>
<p style="text-align: left;">Typically the BA (Business Analyst), SME (Subject Matter Expert) and a technical lead/architect will take part in workshops during the concept phase of your project. These team members are responsible for formulating the desired outcomes, identifying features as well as preparing some high-level design and estimates. Their role is to determine if the initiative is worth doing.</p>
<p style="text-align: left;">As well as the BA, SME and a technical lead/architect, the developers and test analysts will all be involved at the project initiation phase. Every one of these team members has a role to play in adding detail to and refining the conceptual phase outcomes. Each team member is responsible for utilizing their unique expertise to elicit stories, prioritize, design, estimate and plan during a series of workshops.</p>
<p style="text-align: left;">So who else contributes during the develop phase? Strange as it may sound the BA, SME, test analysts and a technical lead/architect have just as much to contribute during this phase as previous phases. Infrastructure also become involved at this phase &#8211; as a focus starts to be put on deployment and production support.</p>
<p style="text-align: left;">Each team member attends planning and story elaboration sessions, stand-ups, retrospectives and showcases. Each has a responsibility to contribute their skills, even during the feature development cycle (which we will discuss further at a later date).</p>
<p style="text-align: left;">Test Analysts have a responsibility to test features as they are developed. You are responsible for agreeing that the acceptance criteria is met during a demonstration/showcase. You have a role to play in the quality of your software during the development phase.</p>
<p style="text-align: left;">During the deploy phase the SME, Test Analysts and production support teams all have roles to play. The main objectives of this phase are to move to a production environment, whilst ensuring a good handover to the production support team.</p>
<p style="text-align: left;">Handover to the production support team occurs with support from developers. Final user acceptance testing occurs at this time. Data Recovery, stress and load testing will be carried out by Test Analysts during this phase.</p>
<p style="text-align: left;"><em><strong>What can be done to improve the chances that <em>your</em> software will be a success?</strong></em></p>
<p style="text-align: left;"><em>So if there are so many people contributing to the softwares success, what can be done to improve the chances of success?<br />
</em></p>
<p style="text-align: left;">Use the project concept phase to determine if it makes business sense. Ensure the business benefits exist to make the project worthwhile. Establishing SMART (Specific, Measurable, Attainable, Relevant, Time-Bound) goals and completing value sliders at this stage will enable you to measure project success. Tying features to business benefits helps prioritize implementation. Ensure diligent risk analysis is carried out too.</p>
<p style="text-align: left;">Even at this conceptual stage there is a serious chance of impacting project success. Don&#8217;t take it for granted. Use it to your advantage.</p>
<p style="text-align: left;">At the initiate phase of the project involve the whole development team. Ensure identified features are broken down in to stories. Map the stories to the business processes to ensure nothing is missing. At this stage prioritize the stories based on MOSCOW (Must have, Should have, Could have, Wont have). Prioritize on business value not effort or complexity. Also carry out risk analysis on the stories and plan to deal with high risk ones in early iterations.</p>
<p style="text-align: left;">During the initiate phase prepare the test strategy &#8211; the what, when and how of testing. Estimation plays a big role at this phase. Estimation workshops carried out now help you produce effective plans. The estimates, plans, risk analysis and prioritizing all have an impact on the projects chances of success. Utilizing the teams combined skills improves your chances of success &#8211; even before development has begun.</p>
<p style="text-align: left;">At the development phase, ensure developers use ATDD (Acceptance Test Driven Development)/TDD (Test Driven Development) methodologies. The ATDD/TDD methodologies combined lead to leaner code, written when needed, that meets acceptance criteria. Developers doing this, will improve your chances of success.</p>
<p style="text-align: left;">Around the development cycle in this phase ensure iteration planning and story elaboration involving the whole team take place. Create a shared level of understanding about goals and stories throughout the whole team. Don&#8217;t neglect the retrospective, and the chance it provides to review, action and implement changes to help the team succeed.</p>
<p style="text-align: left;">The aim of the develop phase is to produce working software at the end of each short iteration. Hold a showcase, highlighting the new features. The showcase also enables your team to get early feedback on developed features prior to release.</p>
<p style="text-align: left;">The deploy phase needs to be started well in advance to be successful. Engage the production support team early. This will help to make the handover smoother. Carry out data recovery and stress testing during the deliver phase, providing the team time to identify problems and fix any issues.</p>
<p style="text-align: left;">As this phase often involves tasks that take a lot of time, plan to do as many of the tasks as possible during the deliver phase. Addressing these tasks early offers the best chance of a successful deploy phase.</p>
<p style="text-align: left;"><em><strong>Build Quality In</strong></em></p>
<p style="text-align: left;">As we have seen quality is the responsibility of every team member in an agile team, not just the developers. Every team member has a role to play in building quality in.</p>
<p><em>Are you ready yet to admit&#8230;it&#8217;s not <strong>ALWAYS</strong> the developers fault?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.catosplace.net/blogs/personal/2010/10/11/always-developers-fault/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 7.902 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-23 10:34:04 -->

