<?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>Gojko Adzic &#187; agile</title>
	<atom:link href="http://gojko.net/tag/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net</link>
	<description>Building software that matters</description>
	<lastBuildDate>Tue, 22 May 2012 19:12:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Sleeping with the enemy: video</title>
		<link>http://gojko.net/2012/02/17/sleeping-with-the-enemy-video/</link>
		<comments>http://gojko.net/2012/02/17/sleeping-with-the-enemy-video/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 13:27:25 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[presentations]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=2726</guid>
		<description><![CDATA[Here is a video of my talk &#8220;Sleeping with the enemy&#8221; from Oredev 2011 (also the keynote at Stareast 2011).]]></description>
			<content:encoded><![CDATA[<p>Here is a video of my talk &#8220;Sleeping with the enemy&#8221; from Oredev 2011 (also the keynote at Stareast 2011).</p>
<p><object width="550" height="310"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=36283624&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=00ADEF&#038;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=36283624&#038;server=vimeo.com&#038;show_title=1&#038;show_byline=1&#038;show_portrait=0&#038;color=00ADEF&#038;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="310"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2012/02/17/sleeping-with-the-enemy-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splitting user stories: the hamburger method</title>
		<link>http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/</link>
		<comments>http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 17:04:16 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[splitting]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=2699</guid>
		<description><![CDATA[Problems: Story is too big to split and estimate; business users don&#8217;t accept any breakdown proposed by the delivery team; team is inexperienced and thinks about technical splitting only;new project starts and no simple starting stories can be foundSolution: User Story Hamburger I&#8217;ve evolved a new technique for splitting user...]]></description>
			<content:encoded><![CDATA[<p><img src="http://gojko.net/wp-content/uploads/2012/01/hamdp-300x225.jpg" alt="" title="hamdp" width="300" height="225" class="alignleft size-medium wp-image-2701" /><i>Problems</i>: Story is too big to split and estimate; business users don&#8217;t accept any breakdown proposed by the delivery team; team is inexperienced and thinks about technical splitting only;new project starts and no simple starting stories can be found<br /><i>Solution</i>: User Story Hamburger<br clear="all" /><span id="more-2699"></span></p>
<p>I&#8217;ve evolved a new technique for splitting user stories over the last few months <del>shamelessly stealing</del> repurposing <a href="http://www.agileproductdesign.com/presentations/user_story_mapping/index.html" target="_blank">Jeff Patton&#8217;s User Story Mapping</a> and ideas described by Craig Larman and Bas Vodde in <a href="http://www.amazon.com/gp/product/0321636406/ref=as_li_ss_tl?ie=UTF8&#038;tag=swingwiki-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0321636406" target="_blank">Practices for Scaling Lean &#038; Agile Development</a>. I think it works particularly well in situations where a team cannot find a good way to break things down and is insisting on technical divisions. It has the visual playful aspect similar to innovation games and it&#8217;s easy to remember. I call it the User Story Hamburger. </p>
<p>Inexperienced teams often can&#8217;t get their heads around splitting stories into smaller stories that still deliver business value. But they will happily break a story down into technical workflow or component tasks. I like the idea of User Story Maps which show the big picture under a breakdown of a business workflow. We can do the same on a much lower level, for tasks making up a user story, keeping the team in their comfort zone. Then we use this breakdown to identify different levels of quality for each step, and create vertical slices to identify smaller deliverables. Here is how to create the hamburger:</p>
<h2>Step 1: Identify tasks</h2>
<p><img src="http://gojko.net/wp-content/uploads/2012/01/hamburger_step_1-282x300.png" alt="" title="hamburger_step_1" width="282" height="300" class="alignright size-medium wp-image-2706" />  As a group, identify technical steps that would be involved in implementing a story on a high level. Breaking it down into technical/component workflow is OK. The tasks become layers in a hamburger bun &#8211; meat, lettuce, tomato, cheese &#8211; throw in some bacon for fun as well. </p>
<p>For example, if we&#8217;re working on a story to contact dormant customers by e-mail, the steps might be: query db for dormant customers; send e-mail to customers; retrieve delivery report; remove bounced addresses from the system; mark non-bounced as &#8216;recently contacted&#8217;. </p>
<h2>Step 2: Identify options for tasks</h2>
<p>Split the team into several small groups and ask them to define quality for each task, or what would make a particular task good. Then they should write down several options on different levels of quality on post-it notes. </p>
<p>For example, speed of execution and accuracy of results might be a measure of quality for database query for dormant customers. Two possible options could be to make a slow and relatively inaccurate query on all customers compared with overnight transaction reports, which won&#8217;t pick up intraday changes. Another option to increase accuracy would be to have a nightly job making customers dormant and remove the dormant mark on every transaction, which would enable us to be 100% accurate and faster. The first option would work only if we send e-mails once a month, the second would work at any time.</p>
<p>Another example might be the volume we can send,  the content personalisation and spam-regulation compliance for sending e-mail. We have an option of sending things manually, slow and low-volume. Second option is to use an automated process and send generic e-mails, with a manual unsubscribe process. A third option would be to use an automated process and send personalised e-mails, with manual unsubscribing. The fourth option would be to send personalised e-mail automatically and enable people to unsubscribe automatically. Yet another option would be integrating with a third party service that does all that.</p>
<h2>Step 3: Combine results</h2>
<p>Create a single hamburger on a big board. Ask representatives from each team to bring post-it notes and fill in the layers of your hamburger, briefly introducing what each note it. Identify duplicates and throw them away. Align task options from left to right based on the level of quality.</p>
<p><img src="http://gojko.net/wp-content/uploads/2012/01/hamburger_step_2.png" alt="" title="hamburger_step_2" width="500" class="aligncenter size-medium wp-image-2711" /></p>
<h2>Step 4: Trim the hamburger</h2>
<p>As a group, go through tasks and compare the lowest quality options with things next to them, based on how difficult it would roughly be to implement each option. Mark that information on the post-its. It might be worth breaking things down into relatively same-size technical tasks to do some simple comparisons. Think about throwing away lower quality items that would take more or less the same to implement as a higher quality option.</p>
<p>Also decide what is the maximum needed level of quality for each task. For example, intra-day bounced e-mail removal won&#8217;t really bring much more value than overnight bounced e-mail removal. Take items over the line out &#8211; that&#8217;s what will be left in the box after you eat the hamburger.</p>
<p><img src="http://gojko.net/wp-content/uploads/2012/01/hamburger_step_3.png" alt="" title="hamburger_step_3" width="500" class="aligncenter size-full wp-image-2714" /></p>
<h2>Step 5: Take the first bite</h2>
<p>Now that you have a hamburger, decide how deep you&#8217;ll take the first bite. Discuss what is the minimum acceptable level of quality for each step. For example, manual sending might not be acceptable at all, because of the low volume. But sending e-mail once a month might be acceptable. If the lowest quality option is more-less the same size as the higher quality one, you might go deeper straight away. For example, sending generic e-mail with manual unsubscribing might be more or less the same effort as integrating with Mailchimp. On the other hand, a fast realtime update of customer activity might be much more difficult than  a on-demand slow database query. For some steps, eg removing bounced addresses, doing nothing might be a valid level of quality initially.</p>
<p><img src="http://gojko.net/wp-content/uploads/2012/01/hamburger_step_4.png" alt="" title="hamburger_step_4" width="500"  class="aligncenter size-full wp-image-2715" /></p>
<h2>Step 6: Take another bite&#8230; and continue</h2>
<p>From there on, any further bite should provide more quality, regardless of what you add. Eg implementing initial bounced e-mail removal enhances the quality. So does more frequent e-mail sending. Use complexity comparisons between tasks to decide how deep you want to take further bites.</p>
<p>This method works very nicely because it is visual, and it gets people thinking about alternatives while still staying in their comfort zone. It also works nicely with &#8216;bite-size chunks&#8217; analogies. And you can easily explain why releasing just a technical task doesn&#8217;t make sense because no sane person would eat only the lettuce. On a final note, make sure not to do this while people are hungry.</p>
<p>If this sounds interesting, you can practice many other collaborative techniques for delivering the right software iteratively at <a href="http://sbelondon-hamburger.eventbrite.com"> my upcoming two day workshop in London in mid-March</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2012/01/23/splitting-user-stories-the-hamburger-method/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Feature Injection article is online</title>
		<link>http://gojko.net/2011/12/14/feature-injection-article-is-online/</link>
		<comments>http://gojko.net/2011/12/14/feature-injection-article-is-online/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 18:20:24 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[feature injection]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=2688</guid>
		<description><![CDATA[InfoQ just published an article on Feature Injection by Chris Matts that I&#8217;ve also contributed to. This article is a high level introduction of Feature Injection and related techniques. We explain the key elements of the framework and support them with a realistic example. For more info, see click here.]]></description>
			<content:encoded><![CDATA[<p>InfoQ just published an article on Feature Injection by Chris Matts that I&#8217;ve also contributed to. This article is a high level introduction of Feature Injection and related techniques. We explain the key elements of the framework and support them with a realistic example. </p>
<p>For more info, see <a href="http://www.infoq.com/articles/feature-injection-success">click here</a>.  </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2011/12/14/feature-injection-article-is-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 key challenges for agile testers tomorrow &#8211; slides</title>
		<link>http://gojko.net/2011/11/28/5-key-challenges-for-agile-testers-tomorrow-slides/</link>
		<comments>http://gojko.net/2011/11/28/5-key-challenges-for-agile-testers-tomorrow-slides/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 22:20:21 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[presentations]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[visualising quality]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=2671</guid>
		<description><![CDATA[Here are my slides from the agile testing days 2011 keynote &#8220;5 key challenges for agile testers tomorrow&#8221; And by popular demand, here is the agile testing donut separately:]]></description>
			<content:encoded><![CDATA[<p>Here are my slides from the agile testing days 2011 keynote &#8220;5 key challenges for agile testers tomorrow&#8221; </p>
<p><object id="__sse10373681" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=5keychallenges-111128161118-phpapp02&#038;stripped_title=5-key-challenges&#038;userName=gojkoadzic" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"/><embed name="__sse10373681" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=5keychallenges-111128161118-phpapp02&#038;stripped_title=5-key-challenges&#038;userName=gojkoadzic" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object></p>
<p>And by popular demand, here is the agile testing donut separately:</p>
<p><img src="http://gojko.net/wp-content/uploads/2011/11/agile_testing_dohnut.png" alt="" title="agile_testing_dohnut" width="389" height="348" class="alignleft size-full wp-image-2690" /></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2011/11/28/5-key-challenges-for-agile-testers-tomorrow-slides/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Is prioritisation based on business value right?</title>
		<link>http://gojko.net/2011/04/04/is-prioritisation-based-on-business-value-right/</link>
		<comments>http://gojko.net/2011/04/04/is-prioritisation-based-on-business-value-right/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 09:49:33 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[deliberate discovery]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[prioritisation]]></category>
		<category><![CDATA[scandev]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=2337</guid>
		<description><![CDATA[At the Scandinavian Developer Conference today in G&#246;teborg, Alistair Cockburn spoke about &#8220;beyond agile: the new face of software engineering&#8221;. The main topic of his talk were five &#8220;chapters&#8221; that will according to Cocburn be a &#8220;broad base of software engineering in the next 20-50 years&#8221;, although I recognised most...]]></description>
			<content:encoded><![CDATA[<p>At the <a href="http://www.scandevconf.se/"  target="_blank">Scandinavian Developer Conference</a> today in G&ouml;teborg, <a href="http://alistair.cockburn.us/" target="_blank">Alistair Cockburn</a> spoke about &#8220;beyond agile: the new face of software engineering&#8221;. The main topic of his talk were five &#8220;chapters&#8221; that will according to Cocburn be a &#8220;broad base of software engineering in the next 20-50 years&#8221;, although I recognised most of the content from the books he published years ago. But there was a relatively innovative and controversial idea as well. Cockburn challenged the typical agile advice on prioritisation by focusing on highest business value first.<span id="more-2337"></span></p>
<p><img src="http://gojko.s3.amazonaws.com/cocburn_scandev.jpg" align="right" style="margin:5px 5px 5px 5px"/>He said that in many companies he worked with, they try to do that but in reality things are different. Many companies initially start aiming for business value but then something doesn&#8217;t work out &mdash; a technology does not satisfy the needs, a stakeholder misjudged the market opportunities &mdash; and then the team switches from aiming at increasing business value to aiming to lowering the risks of failure. These risks might be business, social, technical or cost/schedule risks. By reducing the risk, companies effectively &#8220;pay to learn&#8221;, said Cocburn. </p>
<p>He advised a strategy of prioritisation to develop for business value once the risks are down and periodically switching from paying to learn and paying to get business value. Successful organisations he works with grow business value and then reduce risks, then grow business value again then reduce risk. In the earlier stages of the projects, the focus is much more on reducing risks than on building value, where in the later stages the focus changes.</p>
<p>The payoff comes from the possibility to &#8220;trim the tail&#8221;, according to him. When the risks are mitigated, teams can deliver effectively &mdash; whether they want to deliver by value or on a particular date. &#8220;Once the costs are down, and the business value is largely in place, then you can spend the rest of the time improving the quality&#8221;, said Cocburn.  As an example, he pointed out that Apple did this with IPhones and IPads. They released a first version wit basic features and a second version a month or two months after, with enhanced features. They were able to &#8220;trim the tail&#8221; and increase quality very rapidly. </p>
<p>Paying to learn and considering early stages of a project as a journey of exploration seems to a hot topic in the development community now. For a different look at this, check out Dan North&#8217;s ideas on <a href="http://dannorth.net/2010/08/30/introducing-deliberate-discovery/" target="_blank">deliberate discovery</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2011/04/04/is-prioritisation-based-on-business-value-right/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

