<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Writing User Stories for Back-end Systems</title>
	<atom:link href="http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems</link>
	<description>Succeeding With Agile®</description>
	<lastBuildDate>Wed, 10 Mar 2010 19:56:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike Cohn</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65549</link>
		<dc:creator>Mike Cohn</dc:creator>
		<pubDate>Mon, 08 Feb 2010 02:27:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65549</guid>
		<description>Robert--
Definitely not. But sometimes teams communicate with each other through their product backlogs. That&#039;s the only time I&#039;d expect to see this. I&#039;d equate it to yelling, &quot;Hey, Joe, don&#039;t forget to add something so I can delete boojums from the database this sprint.&quot;  And, yes, this would almost always be written by a team member rather than a product owner.</description>
		<content:encoded><![CDATA[<p>Robert&#8211;<br />
Definitely not. But sometimes teams communicate with each other through their product backlogs. That&#8217;s the only time I&#8217;d expect to see this. I&#8217;d equate it to yelling, &#8220;Hey, Joe, don&#8217;t forget to add something so I can delete boojums from the database this sprint.&#8221;  And, yes, this would almost always be written by a team member rather than a product owner.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65364</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Thu, 04 Feb 2010 16:34:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65364</guid>
		<description>Mike,
In one of the presentations on your site you showed an example of a user story along the lines of &quot;As the XYZ System I need an API to &quot;

In practice do you often see a story that calls on the need for a specific API? I could certainly see this as very useful for planning purposes especially if the particular API/interface/service is considered a major dependency. Again, I&#039;d assume this class of story is usually not written by the PO. Also, this type of story seems to be very design-focused and against the general spirit of a user story. Thoughts?</description>
		<content:encoded><![CDATA[<p>Mike,<br />
In one of the presentations on your site you showed an example of a user story along the lines of &#8220;As the XYZ System I need an API to &#8221;</p>
<p>In practice do you often see a story that calls on the need for a specific API? I could certainly see this as very useful for planning purposes especially if the particular API/interface/service is considered a major dependency. Again, I&#8217;d assume this class of story is usually not written by the PO. Also, this type of story seems to be very design-focused and against the general spirit of a user story. Thoughts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Cohn</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65177</link>
		<dc:creator>Mike Cohn</dc:creator>
		<pubDate>Mon, 01 Feb 2010 16:27:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65177</guid>
		<description>Hi Robert-
Yes, absolutely. Use the ways you can see now to split the big algorithm story into smaller pieces. This prevents a team from &quot;going dark&quot; on the customer, gives them a regular sense of progress, and keeps urgency on an otherwise long task. Good luck.</description>
		<content:encoded><![CDATA[<p>Hi Robert-<br />
Yes, absolutely. Use the ways you can see now to split the big algorithm story into smaller pieces. This prevents a team from &#8220;going dark&#8221; on the customer, gives them a regular sense of progress, and keeps urgency on an otherwise long task. Good luck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65168</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Mon, 01 Feb 2010 14:43:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65168</guid>
		<description>I&#039;m currently in a situation where the major part of the application being built is a rather complex algorithm that in itself will likely take months to figure out and validate.
The user of the system will invoke this algorithm and see a result but there are very few real user stories of the &quot;As a I Want&quot; format where there is true user interaction. The users goal is to see the result of the algorithm.

As with most algorithms this one can be decomposed into parts. To manage this, would you recommend breaking this algorithm into its parts, making each part a user story and then demoing the parts as the project progresses much the same as the banking file example?</description>
		<content:encoded><![CDATA[<p>I&#8217;m currently in a situation where the major part of the application being built is a rather complex algorithm that in itself will likely take months to figure out and validate.<br />
The user of the system will invoke this algorithm and see a result but there are very few real user stories of the &#8220;As a I Want&#8221; format where there is true user interaction. The users goal is to see the result of the algorithm.</p>
<p>As with most algorithms this one can be decomposed into parts. To manage this, would you recommend breaking this algorithm into its parts, making each part a user story and then demoing the parts as the project progresses much the same as the banking file example?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Cohn</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65143</link>
		<dc:creator>Mike Cohn</dc:creator>
		<pubDate>Mon, 01 Feb 2010 02:30:08 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65143</guid>
		<description>Hi Robert--
Lots of questions; I&#039;ll do best my best to answer all. Hopefully others chime in with opinions here as well.

1) I wouldn&#039;t expect the PO to write stories splitting a report story into parts about its header, footer, etc. I would expect that to come up in a discussion with the team. The team would say to the product owner that they couldn&#039;t finish the story as written and would suggest this split.

2) Stories, even technical ones, should almost always be small enough to complete in the iteration. They may be larger early on when they are further out on the schedule horizon.

3) If I were demonstrating a story about part of the 5300 report, I&#039;d show just that subset of the report working. If the story were something deeper in the application, I&#039;d show what I could. Sometimes I&#039;ve had to show nothing more than tests as you suggest.

4) The best practice here is to demo what your product owner wants to see. If the team and PO have worked together long enough, the team may just tell the PO about the story.

5) The benefit to everyone is of being able to fit these stories into a sprint rather than having them &quot;in progress&quot; for 3-4 sprints.</description>
		<content:encoded><![CDATA[<p>Hi Robert&#8211;<br />
Lots of questions; I&#8217;ll do best my best to answer all. Hopefully others chime in with opinions here as well.</p>
<p>1) I wouldn&#8217;t expect the PO to write stories splitting a report story into parts about its header, footer, etc. I would expect that to come up in a discussion with the team. The team would say to the product owner that they couldn&#8217;t finish the story as written and would suggest this split.</p>
<p>2) Stories, even technical ones, should almost always be small enough to complete in the iteration. They may be larger early on when they are further out on the schedule horizon.</p>
<p>3) If I were demonstrating a story about part of the 5300 report, I&#8217;d show just that subset of the report working. If the story were something deeper in the application, I&#8217;d show what I could. Sometimes I&#8217;ve had to show nothing more than tests as you suggest.</p>
<p>4) The best practice here is to demo what your product owner wants to see. If the team and PO have worked together long enough, the team may just tell the PO about the story.</p>
<p>5) The benefit to everyone is of being able to fit these stories into a sprint rather than having them &#8220;in progress&#8221; for 3-4 sprints.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-65106</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Sun, 31 Jan 2010 16:42:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-65106</guid>
		<description>Hi Mike,
I have some additional questions re this excellent thread about technical stories using the banking system as an example.

You showed 4 stories about the 5300 file which were refinements of an original story. In this thread Brad, a Product Owner (PO), discussed how he is concerned about writing right-sized stories. An excellent trait in a PO :-)

My first comment re Brad&#039;s statement is that many/most POs won&#039;t know the intimate details of a 5300 file necessary to write stories like &quot;As a bank, I want to receive a 5300 file with correctly formatted deposit entry records that include continuation lines so that I can process them.&quot;
A PO who came from a systems engineering background at a bank might but one who is more from the marketing side likely wouldn&#039;t.

Questions:
1. Let&#039;s assume that the PO isn&#039;t likely to write stories to the level of detail of the 5300 story above. Who would you think would break the story into this level of detail? What have you seen in practice?
2. In practice, do you always try to make technical stories such as this iteration sized? I&#039;d assume yes.

Re demoing a user story, which all stories need to be ... right, I&#039;d think that the 5300 story above would, in most cases, be too detailed for many POs to appreciate in a demo. In addition, it might be difficult to demo in itself.
3. How do you typically demo stories like this to the PO? Write a test harness and show results of Fitnesse tests (for example)? What have you seen as best practice?
4. Would you even demo such a story to the PO? What have you seen as best practice?

5. It seems to me that creating technical stories to the level of detail as the above example is more for the benefit of the engineering and QA teams than the PO. It seems that its main benefit is to break complex functionality into smaller testable stories though these small stories may be of little interest to the PO, if he&#039;s not from a technical background.
The PO may be interested from point of view of having a more well tested system but having these pieces demoed to him may be of little interest at least as compared to more user-functional stories. Agree?</description>
		<content:encoded><![CDATA[<p>Hi Mike,<br />
I have some additional questions re this excellent thread about technical stories using the banking system as an example.</p>
<p>You showed 4 stories about the 5300 file which were refinements of an original story. In this thread Brad, a Product Owner (PO), discussed how he is concerned about writing right-sized stories. An excellent trait in a PO <img src='http://blog.mountaingoatsoftware.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>My first comment re Brad&#8217;s statement is that many/most POs won&#8217;t know the intimate details of a 5300 file necessary to write stories like &#8220;As a bank, I want to receive a 5300 file with correctly formatted deposit entry records that include continuation lines so that I can process them.&#8221;<br />
A PO who came from a systems engineering background at a bank might but one who is more from the marketing side likely wouldn&#8217;t.</p>
<p>Questions:<br />
1. Let&#8217;s assume that the PO isn&#8217;t likely to write stories to the level of detail of the 5300 story above. Who would you think would break the story into this level of detail? What have you seen in practice?<br />
2. In practice, do you always try to make technical stories such as this iteration sized? I&#8217;d assume yes.</p>
<p>Re demoing a user story, which all stories need to be &#8230; right, I&#8217;d think that the 5300 story above would, in most cases, be too detailed for many POs to appreciate in a demo. In addition, it might be difficult to demo in itself.<br />
3. How do you typically demo stories like this to the PO? Write a test harness and show results of Fitnesse tests (for example)? What have you seen as best practice?<br />
4. Would you even demo such a story to the PO? What have you seen as best practice?</p>
<p>5. It seems to me that creating technical stories to the level of detail as the above example is more for the benefit of the engineering and QA teams than the PO. It seems that its main benefit is to break complex functionality into smaller testable stories though these small stories may be of little interest to the PO, if he&#8217;s not from a technical background.<br />
The PO may be interested from point of view of having a more well tested system but having these pieces demoed to him may be of little interest at least as compared to more user-functional stories. Agree?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Doug Trottman</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-36856</link>
		<dc:creator>Doug Trottman</dc:creator>
		<pubDate>Thu, 16 Apr 2009 14:27:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-36856</guid>
		<description>HELP!! 
I work with the ultimate back-end system: a TCP/IP stack.  Our user story is an application that sends a request to it&#039;s local TCP/IP stack asking for information about the connection partner.  The application is our &quot;end user&quot; and we can verify the request sent from the application and the response returned to the application.  The tasks involved are (1) stackA receives the request, (2) creates a message to send to stackB, (3) sends the message, (4) stackB receives the message, (5) stackB processes message, (6) stackB creates a message to send back to stackA, (7) sends the message, (8) stackA receives the message, (9) stackA creates the response, (10) stackA sends response to the application.  
Sending the request and receiving the reply is just a small part of the overall function to be shipped.  It will take well over 4 weeks (our sprint size) to code and test with code being the major effort.  It is of no shippable value on its own, but we can define it as a function.  We will unit test the request/response flow at each stage but will not function test until the request provides a response.  If we create user stories for each small step defined above I think we will be breaking the rule &quot;do not turn user stories into tasks&quot;.  We view code and unit test as a &quot;coding&quot; effort.  Should we change our view?  Should we create user stories for each step above and be content that UT is the &quot;tested&quot; function?  And have function verification as a task only in the last step?  We tried convincing the team to break it down into the steps above, but they pushed back because there is nothing to functionally test at those boundaries.  We have ended up with a user story much bigger than a sprint.
I am anxious to hear your opinion on this!  Thanks.</description>
		<content:encoded><![CDATA[<p>HELP!!<br />
I work with the ultimate back-end system: a TCP/IP stack.  Our user story is an application that sends a request to it&#8217;s local TCP/IP stack asking for information about the connection partner.  The application is our &#8220;end user&#8221; and we can verify the request sent from the application and the response returned to the application.  The tasks involved are (1) stackA receives the request, (2) creates a message to send to stackB, (3) sends the message, (4) stackB receives the message, (5) stackB processes message, (6) stackB creates a message to send back to stackA, (7) sends the message, (8) stackA receives the message, (9) stackA creates the response, (10) stackA sends response to the application.<br />
Sending the request and receiving the reply is just a small part of the overall function to be shipped.  It will take well over 4 weeks (our sprint size) to code and test with code being the major effort.  It is of no shippable value on its own, but we can define it as a function.  We will unit test the request/response flow at each stage but will not function test until the request provides a response.  If we create user stories for each small step defined above I think we will be breaking the rule &#8220;do not turn user stories into tasks&#8221;.  We view code and unit test as a &#8220;coding&#8221; effort.  Should we change our view?  Should we create user stories for each step above and be content that UT is the &#8220;tested&#8221; function?  And have function verification as a task only in the last step?  We tried convincing the team to break it down into the steps above, but they pushed back because there is nothing to functionally test at those boundaries.  We have ended up with a user story much bigger than a sprint.<br />
I am anxious to hear your opinion on this!  Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Samartha</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-33397</link>
		<dc:creator>Samartha</dc:creator>
		<pubDate>Tue, 03 Mar 2009 08:56:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-33397</guid>
		<description>It looks like we are &#039;trying to fit&#039; into the format.  This is far from the real life and looks very artificial. I have seen people writing user stories like &#039;as an architect I want to write a method to compress the file&#039; etc.. Whole agile paradigm is revolving around consulting (trainings to certify people, writing books etc) while the real value addition is still questionable. I have seen one leading consultant joking about another consultant (I don’t know what he was smoking while he was writing that book..)</description>
		<content:encoded><![CDATA[<p>It looks like we are &#8216;trying to fit&#8217; into the format.  This is far from the real life and looks very artificial. I have seen people writing user stories like &#8216;as an architect I want to write a method to compress the file&#8217; etc.. Whole agile paradigm is revolving around consulting (trainings to certify people, writing books etc) while the real value addition is still questionable. I have seen one leading consultant joking about another consultant (I don’t know what he was smoking while he was writing that book..)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Cohn</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-23598</link>
		<dc:creator>Mike Cohn</dc:creator>
		<pubDate>Thu, 02 Oct 2008 23:23:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-23598</guid>
		<description>Hi Rene--

One of the biggest challenges for any new agile team, in my opinion, is learning how to break work into sufficiently small pieces that the work can be completed in an iteration. You&#039;ll have to find the patterns that work specifically for your domain and application. I do have some general advice in one chapter in the Agile Estimating and Planning book. Beyond that, though, I can point out two common patterns I&#039;ve seen for a team  with ETL (Extract, Transform, Load) work:

&lt;ul&gt;
&lt;li&gt;One story per data source. Stories to merge data from multiple sources are common. Those can be done a data source at a time. So, the first story is to pull data from, say, the payroll system and get it in the right format. That &quot;right format&quot; won&#039;t be useful to anyone yet because it may be xml with empty data where another data source needs to provide data, etc.  In the next iteration, start reading the other data source, merge it in, and output it. In the 3rd iteration, pull in let&#039;s say the final data source and code any conflict resolution necessary between say data from the second and third sources. So that&#039;s one example.
&lt;/li&gt;
&lt;li&gt;Leave out error cases in the first iteration. In this approach we assume that there will be no conflicting data (each health care patient matches up to one insurance card record, for example). Generate an output file that will be in the right format (for the most part) but that won&#039;t yet be fully usable because it may have duplicates or out of range values, etc.
&lt;/li&gt;

&lt;/ul&gt;
I&#039;m sure neither of these fits &lt;strong&gt;perfectly&lt;/strong&gt; with your scenario but hopefully they provide insights into what will work. The more the team works through, the easier the rest get.

Good luck</description>
		<content:encoded><![CDATA[<p>Hi Rene&#8211;</p>
<p>One of the biggest challenges for any new agile team, in my opinion, is learning how to break work into sufficiently small pieces that the work can be completed in an iteration. You&#8217;ll have to find the patterns that work specifically for your domain and application. I do have some general advice in one chapter in the Agile Estimating and Planning book. Beyond that, though, I can point out two common patterns I&#8217;ve seen for a team  with ETL (Extract, Transform, Load) work:</p>
<ul>
<li>One story per data source. Stories to merge data from multiple sources are common. Those can be done a data source at a time. So, the first story is to pull data from, say, the payroll system and get it in the right format. That &#8220;right format&#8221; won&#8217;t be useful to anyone yet because it may be xml with empty data where another data source needs to provide data, etc.  In the next iteration, start reading the other data source, merge it in, and output it. In the 3rd iteration, pull in let&#8217;s say the final data source and code any conflict resolution necessary between say data from the second and third sources. So that&#8217;s one example.
</li>
<li>Leave out error cases in the first iteration. In this approach we assume that there will be no conflicting data (each health care patient matches up to one insurance card record, for example). Generate an output file that will be in the right format (for the most part) but that won&#8217;t yet be fully usable because it may have duplicates or out of range values, etc.
</li>
</ul>
<p>I&#8217;m sure neither of these fits <strong>perfectly</strong> with your scenario but hopefully they provide insights into what will work. The more the team works through, the easier the rest get.</p>
<p>Good luck</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rene Rosendahl</title>
		<link>http://blog.mountaingoatsoftware.com/writing-user-stories-for-back-end-systems/comment-page-1#comment-23595</link>
		<dc:creator>Rene Rosendahl</dc:creator>
		<pubDate>Thu, 02 Oct 2008 23:12:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mountaingoatsoftware.com/?p=19#comment-23595</guid>
		<description>We have a Scrum team that works on ETL-type stories. They are struggling with slicing up the stories to fit their sprints, which are already 3 weeks long. They tend to look at it as &quot;all-or-nothing&quot;, i.e. it doesn&#039;t make sense to them to just do a portion of the requested ETL functionality. More often than not, this leads to stories spanning sprints or &quot;Scrummerfall&quot; (QA is done in a subsequent sprint). Any specific ideas on how ETL stories could be carved up in a better way?</description>
		<content:encoded><![CDATA[<p>We have a Scrum team that works on ETL-type stories. They are struggling with slicing up the stories to fit their sprints, which are already 3 weeks long. They tend to look at it as &#8220;all-or-nothing&#8221;, i.e. it doesn&#8217;t make sense to them to just do a portion of the requested ETL functionality. More often than not, this leads to stories spanning sprints or &#8220;Scrummerfall&#8221; (QA is done in a subsequent sprint). Any specific ideas on how ETL stories could be carved up in a better way?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
