<?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>Irie, Inc. &#187; acceptance criteria</title>
	<atom:link href="http://www.irie-inc.com/tag/acceptance-criteria/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.irie-inc.com</link>
	<description>Agile Software Development Consulting</description>
	<lastBuildDate>Mon, 02 May 2011 19:51:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Tool Usability Comparison: Merging Backlog Items</title>
		<link>http://www.irie-inc.com/2009/11/17/usability-merging-backlog-items/</link>
		<comments>http://www.irie-inc.com/2009/11/17/usability-merging-backlog-items/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 22:18:01 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Backlog Management Tools]]></category>
		<category><![CDATA[acceptance criteria]]></category>
		<category><![CDATA[AgileOnDemand]]></category>
		<category><![CDATA[Analog]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[merge]]></category>
		<category><![CDATA[Mingle]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[Rally]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[VersionOne]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=129</guid>
		<description><![CDATA[I want to take two backlog items and turn them into one.  Let's see how the different tools compare at this seemingly simple task.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the scenario.  I have created, or identified, two (or more) user stories, and I have decided that the two are not really independent of one another.  They are two different people expressing the need for the same feature.  Each derives a different benefit from the feature, and communicating their different perspectives to the developers is important to me, as the product owner.  Or, perhaps we just realized that they are duplicates.  This is a feature that everybody needs, but how many people realize that they need it?</p>
<p>Here&#8217;s how this plays out:</p>
<p><strong>The ideal digital tool</strong><br />
I have selected the two (or more) story cards in the view.  I right-click one of them and select &#8216;merge&#8217;.  Done.  The different story texts are viewable from the one story record, the different test cases are visible from the one, if there are any, and if there are no field conflicts, the records merge without prompting.  If there are conflicts, I get to see them both, and I get to resolve the conflicts right then.  History is preserved.<br />
<strong>Usability: Very High</strong> <em>Downside: None</em></p>
<p><strong>The 3&#215;5 card method</strong><br />
I hold the two in my hands.  I decide they are really the same story.  I grab a stapler and staple them together.  Done.<br />
<strong>Usability: High</strong> <em>Downside: card in back has less visibility</em></p>
<p><strong>The Excel method</strong><br />
Move the two rows so they are adjacent.    Resolve any field conflicts.  Copy the story text into the target row.  Delete the one that is no longer needed.<br />
<strong>Usability: High</strong> <em>Downside: can not treat as two different stories as far as role grouping goes.  Easy to screw something up.</em></p>
<p><strong>VersionOne</strong><br />
Add key fields to your view, and make them editable, so you can resolve conflicts in place.  Display the Order field so you can re-order items in place.  Drag the two so that they are side-by-side in the list of stories.  Make sure that you update the important fields in the story that you are going to keep based on the values from the story that you are merging in.  Hover over the story you are merging in to display the details.  Highlight and copy to the clipboard.  Open the story you are merging into.  Paste the story text in with the existing story text.  Select the Show Tasks/Tests option, and expand the story you are merging in.  One by one, drag tasks or tests and drop them on the story you are merging it into.  When you are done, delete the obsolete story.<br />
<strong>Usability: Medium</strong> <em>Downside: tedious, especially if there are tasks and tests to transfer over.</em></p>
<p><strong>Rally</strong><br />
If you use the new Beta Backlog screen, you can drag the two so they are side-by-side, add fields to the display, modify editable fields to resolve field conflicts, hover over the ID so the details pop up, highlight, copy to clipboard, edit the target story, paste the story text in, and save the changes.  To deal with related tasks/tests, you need to make the story that you want to keep a child of the one you are merging.  This will push all of the relationships down to the leaf node of the tree.  Then, you have to change the parent of the one you want to keep to be something other than the one you are merging with.  Otherwise, you have to go into every task, update it, and change its WorkItem to be the one you are keeping, which is very tedious.<br />
<strong>Usability: Medium-Low</strong> <em>Downside: the technique is either non-intuitive, or extremely tedious.</em></p>
<p><strong>AgileOnDemand</strong><br />
If the stories are not already in the same epic, you must go to the Planning area (across the top), where you can drag and drop the stories into the necessary epic.  However, once there, you can not drag-and-drop them within the epic to make them side-by-side, no matter what view you use.  But you can add important columns, then edit them in place to resolve conflicts.  Then you must go in to a story (there is no hover-popup) in order to select the story text and copy to the clipboard.  You will then have to go BACK into the story to get the Acceptance Criteria, as they are separate fields.  That, or you must copy/paste into Notepad (or equivalent).  Tasks can be drag-and-dropped from one story to another to re-parent them, but they must be done one at a time.  The tool lets you multi-select, but it won&#8217;t let you re-parent them in a single action.  The tool does not have Tests as a class of task, though you could easily use &#8220;Test&#8221; as part of the task name.  However, since tasks have two different owner fields, one for Development and one for QA, managing the testing effort is not seen as part of the tool&#8217;s domain.<br />
<strong>Usability: Medium-Low</strong> <em>Downside: even more work than the others</em></p>
<p><strong>Mingle</strong><br />
This tool is a totally generic tool.  How you configure it has a lot to do with how it functions.  Using the Agile Hybrid template, you switch to the Planning Tree view, and you drag and drop tasks from one story to another.  That part is easy.  Then, from the All tab, you can add/remove columns.  However, it doesn&#8217;t look like you can edit them in place.  This makes resolving conflicting field values very hard.  One thing you CAN do, however, not that it is necessarily recommended, is have a hierarchy that treats User Stories separate from backlog items.  Then, you can associate multiple user stories with the same backlog item, without having to modify the text.  When you pull up the &#8216;cards&#8217; that tell the story from one user&#8217;s perspective, you can get ONLY the story from that user&#8217;s perspective, something you can&#8217;t do with any other tool.  Cool, but is it worth it?<br />
<strong>Usability: Low</strong> <em>Downside: ultra-tedious to merge conflicting fields</em></p>
<p><Strong>Usability Comparison Summary</strong> on a scale of 1 to 10</p>
<table>
<tr>
<th><strong>Tool</strong></th>
<th rowspan=7>&nbsp;</th>
<th><strong>Merge</strong>
<th></tr>
<tr>
<td>Ideal Tool</td>
<td>10</td>
</tr>
<tr>
<td>3&#215;5 Cards</td>
<td>9</td>
</tr>
<tr>
<td>Excel</td>
<td>8</td>
</tr>
<tr>
<td>VersionOne</td>
<td>6</td>
</tr>
<tr>
<td>Rally</td>
<td>4</td>
</tr>
<tr>
<td>AgileOnDemand</td>
<td>3</td>
</tr>
<tr>
<td>Mingle</td>
<td>2</td>
</tr>
</table>
<p>Thankfully, this isn&#8217;t something you have to do every day.  Next, let&#8217;s look at something you DO have to do a lot when initially creating your backlog. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/11/17/usability-merging-backlog-items/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tools for Creating the Backlog</title>
		<link>http://www.irie-inc.com/2009/11/17/tools-for-creating-the-backlog/</link>
		<comments>http://www.irie-inc.com/2009/11/17/tools-for-creating-the-backlog/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:26:21 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Backlog Management Tools]]></category>
		<category><![CDATA[acceptance criteria]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[business value]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=126</guid>
		<description><![CDATA[Evaluating a number of different Agile tools, starting with how well they serve the needs of the Product Owner for creating the backlog.]]></description>
			<content:encoded><![CDATA[<p>I am working with a client to choose a backlog management tool to standardize on.  The first criteria that I wanted to focus on was how it serves the needs of the product owner for the daunting task of creating the backlog.</p>
<p>Humans are only able to hold so many distinct pieces of information in their head at a time.  Past a certain point, the mind naturally starts treating things as bundles, groups of related items, in order to continue working on them.  Some people are able to hold these separate items, others are better at transparently grouping things together.  But in the quantity of items that are needed for anything but the simplest of projects, every product owner will need to group those user stories together in order to facilitate the creation process.</p>
<p>For example, as I create user stories, I might find or create two that tell the same story, but from a different perspective. Each adds value, and I would want the different perspectives captured and communicated, but ultimately they are the same story.  If I were literally using &#8216;story cards&#8217; as in 3&#215;5 cards on a desk, then in that case I would capture that information by stapling the cards together, so they are treated as one.  </p>
<p>As the number of story cards increases, I might start making piles of story cards that are closely related, but they are not quite the same.  For example, one story card may represent the basic functionality, while another represents a bit of additional functionality that can be added later which one stakeholder or another might be able to leverage.  As more stakeholders weigh in, the pile gets more and more cards in it.  Once everybody feels like they have defined what they want, I might give that pile a &#8216;label&#8217; so I understand what is in it, and then I would paper-clip them all together.  From that point forward, I will usually treat that pile as a unit, peeking inside only when I need to.</p>
<p>As the number of story cards continues to grow, more and more of these piles are going to exist.  These piles will need some way to organize them.  I would look them over, find things they have in common, and start making groupings.  Once I have a grouping that seems to me to be &#8216;complete&#8217; I would use a binder clip to hold them all together, with a &#8216;summary&#8217; card on top of them all, so I can treat them all as a single element.</p>
<p>In some cases, I may deliberately create &#8216;groupings&#8217; and then start creating story cards to go into that grouping.  But in many cases, I will be creating groupings after-the-fact.  And unfortunately, I may undo and re-do my groupings once or twice before I am satisfied with them.  I may move individual cards from group to group, or I may move entire groups to other groups. </p>
<p>While creating the cards, I will periodically re-open my groups one by one to inspect them and see if any additional stories come to mind.  If not, I close them up again and move on to the next, until I feel like I have a degree of completeness.</p>
<p>Most likely, the grouping that I will use initially will be functional in nature.  Related functionality will be grouped together.  But sometimes, it helps to look at things from a different perspective.  So I will want to see my stories grouped by role, so I can look at all of the stories told from the perspective of a particular stakeholder.  In doing so, I may realize that there are stories that I may have missed.  Or, I may take that bundle of story cards to that stakeholder to review. </p>
<p>Later, when assigning business value, I may want to re-group them again, according to the type of value that they provide to the business, such as attracting new customers, retaining existing customers, increasing income from existing customers, reducing expenses, limiting legal risk, and so forth.  In this case especially, one card may belong to multiple groups.  By reviewing the cards in context with other cards that have a similar goal in mind, it will make it easier to get a perspective on relative business value.</p>
<p>Of course, a story is not complete if I have not defined acceptance criteria.  So I will need to go through the stories one by one, starting with the ones that provide the most business value, and write the acceptance criteria.</p>
<p>Finally, the sizing of stories can begin.</p>
<p>A good backlog tool will be at least as flexible as the analog that it seeks to emulate.  Creating story cards will be quick and easy.  Moving them around and grouping them together should be nearly effortless, from a technical standpoint.</p>
<p>Ideally, it will be even better than the analog.  I can create as many groupings as I want, and nest them as deeply as I need to, without running out of ways of holding them together.  I can move some aside that I&#8217;m not actively working on, sort them according to whatever criteria I want, or find a specific story without having to remember which group I put it in.</p>
<p><strong>The Tools</strong></p>
<p>In looking for a backlog management tool, the first thing that I found was that the majority of tools completely ignore the need for grouping.  The concept of &#8216;epics&#8217; and &#8216;themes&#8217; are absent from a great many of them.  While I did see a tool that really impressed me, for a number of reasons, the absence of that one feature meant that I had to eliminate the tool from consideration.</p>
<p>After reviewing dozens of backlog management tools, I managed to narrow the field to four:  Rally, VersionOne, Mingle, and AgileOnDemand.  Of course, for completeness, I need to consider using Excel, the &#8216;recommended&#8217; tool from the literature, and actually using stacks of 3&#215;5 cards.  The deciding factor is going to have to be, does the tool let me do what I want, the way that I want to do it?</p>
<p>As we move forward in this analysis process, we will take specific scenarios and see how they compare.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/11/17/tools-for-creating-the-backlog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Everybody Works Together</title>
		<link>http://www.irie-inc.com/2009/10/27/everybody-works-together/</link>
		<comments>http://www.irie-inc.com/2009/10/27/everybody-works-together/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 00:00:36 +0000</pubDate>
		<dc:creator>jarrowwx</dc:creator>
				<category><![CDATA[Agile Training]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[acceptance criteria]]></category>
		<category><![CDATA[business owner]]></category>
		<category><![CDATA[choice]]></category>
		<category><![CDATA[colocation]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[full-time]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[sme]]></category>
		<category><![CDATA[sprint]]></category>

		<guid isPermaLink="false">http://www.irie-inc.com/?p=30</guid>
		<description><![CDATA[Business people and developers must work together daily throughout the project. ]]></description>
			<content:encoded><![CDATA[<blockquote><p>Business people and developers must work together daily throughout the project.</p></blockquote>
<p>
The responsibilities of the business owner are to do just-in-time planning, filling in the details in the backlog sufficiently that the team will be able to understand the work that needs to be done in the next sprint.  They define what it means for a story to be completed.  In addition, they are to serve the informational needs of the team, interfacing with the end users and the subject matter experts.
</p>
<p>
During the course of development, questions are bound to arise.  Given a choice of going one way or another, if it is a technical question, then it is up to the team.  But if it is a domain or a business choice, then the Business/Product Owner needs to make that decision.  For that reason, the the business owner should expect to be working with the team on a daily basis.  They should make themselves available to them, perhaps even co-locating with them.  They should be proactive, cultivate a culture of questions and feedback from the team.
</p>
<p>
An all too common mistake is to have a business owner that shares his time between projects.  The problem there is, all of the teams suffer as a result.  While the company may be paying one less salary, they are getting less productivity out of 15 or more people.  Not a wise trade-off.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.irie-inc.com/2009/10/27/everybody-works-together/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

