<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Scrum on weblog.masukomi.org</title>
    <link>https://weblog.masukomi.org/tags/scrum/</link>
    <description>Recent content in Scrum on weblog.masukomi.org</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>&amp;copy Kay Rhodes (masukomi.org) 2022</copyright>
    <lastBuildDate>Thu, 20 Feb 2014 00:00:00 +0000</lastBuildDate><atom:link href="https://weblog.masukomi.org/tags/scrum/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Writing good User Stories</title>
      <link>https://weblog.masukomi.org/2014/02/20/writing-good-user-stories/</link>
      <pubDate>Thu, 20 Feb 2014 00:00:00 +0000</pubDate>
      
      <guid>https://weblog.masukomi.org/2014/02/20/writing-good-user-stories/</guid>
      <description>&lt;p&gt;First, it should be noted that not &lt;em&gt;all&lt;/em&gt; stories are &amp;ldquo;User Stories&amp;rdquo;. For example a developer might be tasked with manually running some script. The Story might simply be &amp;ldquo;run the fooberry script&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;For everything that effects the UI, use a template:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As a &amp;lt; type of user &amp;gt;&lt;br&gt;
I want &amp;lt; to perform some &lt;strong&gt;task&lt;/strong&gt; &amp;gt;&lt;br&gt;
So that &amp;lt; I can achieve some &lt;strong&gt;goal&lt;/strong&gt; &amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note that it&amp;rsquo;s all about what the user wants. This isn&amp;rsquo;t about instructing what change to make to a system. It&amp;rsquo;s about advising implementers on what the desires of the user are.&lt;/p&gt;
&lt;h2 id=&#34;sizing-details-content&#34;&gt;Sizing, details, content&lt;/h2&gt;
&lt;p&gt;Now, everyone says user stories should be &amp;ldquo;testable&amp;rdquo;, and &amp;ldquo;small&amp;rdquo;, but what does that mean?&lt;/p&gt;
&lt;h3 id=&#34;stories-should-be-testable&#34;&gt;Stories should be &amp;ldquo;Testable&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;You&amp;rsquo;ve heard it before, but its a horrible way of expressing the intent.  In general, a story is not directly testable. A Story is only testable through its &lt;em&gt;Acceptance Criteria&lt;/em&gt;.&lt;/p&gt;
&lt;h4 id=&#34;acceptance-criteria&#34;&gt;Acceptance Criteria?&lt;/h4&gt;
&lt;p&gt;Each Story should have a compliment of Acceptance Criteria which cover &lt;em&gt;every&lt;/em&gt; interaction, and outcome of the Story. Think of it this way. If you write code that meets every Acceptance Criteria and &lt;em&gt;nothing else&lt;/em&gt; your coding work should be done. You should not need to write &lt;em&gt;anything&lt;/em&gt; else in order to satisfy the Product Owner.  Furthermore, you should be able to write a unit or functional test for each acceptance criteria. If you find your test is testing multiple aspects of the system then your acceptance criteria is too large in scope.&lt;/p&gt;
&lt;p&gt;For example: if you&amp;rsquo;ve added a new page to your app one of the acceptance criteria might be &amp;ldquo;Administrative users will see a link to the new page in the upper nav. on all pages&amp;rdquo;  This acceptance criteria would pass regardless of &lt;em&gt;where&lt;/em&gt; the new link appeared in the &amp;ldquo;upper nav.&amp;rdquo; If the Product Owner cares where it appears then the criteria isn&amp;rsquo;t specific enough.  Note that it also specifies what pages it will appear on. Without that you could put it on the &amp;ldquo;wrong&amp;rdquo; page and still pass the criteria.&lt;/p&gt;
&lt;p&gt;In XP (Extreme Programming) they use a 3&amp;quot;x5&amp;quot; index card to create all their user stories. The story (in template form) goes on the front, and the acceptance criteria go on the back. The rule-of-thumb is that if the acceptance criteria don&amp;rsquo;t fit on the back of the card, then the story is almost guaranteed to be too big.&lt;/p&gt;
&lt;h4 id=&#34;story-sizing&#34;&gt;Story Sizing&lt;/h4&gt;
&lt;p&gt;How small is too small? A Story is too small if, by itself, it provides no business value, like this: &amp;ldquo;As an Administrative User I want to have a link to the new page so that I can navigate to it.&amp;rdquo;  Unless someone&amp;rsquo;s already created and deployed the new page, it&amp;rsquo;s a link to nowhere.  The next question, of course is how big is too big? I&amp;rsquo;d say it&amp;rsquo;s too big if it can still be decomposed into multiple smaller pieces of deliverable business value.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://s3.amazonaws.com/mobtvse_masukomi/2014_2_20_user_story_decomposition.png&#34;&gt;&lt;img src=&#34;https://s3.amazonaws.com/mobtvse_masukomi/2014_2_20_user_story_decomposition_med.png&#34; alt=&#34;User Story Decomposition&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;general-tips&#34;&gt;General Tips&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Know your users&lt;/strong&gt;,  before you can write a story about what a user wants, you need to know who your users are. Put together, and commonly agreed upon set of user Personas, and use those persona names when writing the &amp;ldquo;As a&amp;hellip; &amp;quot; portion of your user story. E.g. &amp;ldquo;As an Accounts Manager I want&amp;hellip;&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Focus on the user&lt;/strong&gt;, not the product. Keep your stories focused on the user&amp;rsquo;s goals, and helping them to achieve them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start big, and decompose&lt;/strong&gt; It&amp;rsquo;s generally much easier to write an &amp;ldquo;Epoch&amp;rdquo; level story (one that comprises many units of business value) and break that down into increasingly smaller stories, than it is to start with fine grained stories.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Use index cards&lt;/strong&gt; (to start with at least). The physical limitations of the card really help make it obvious when a story is too large, because you can&amp;rsquo;t fit it, or it&amp;rsquo;s acceptance tests on one side of a card (unless you write in &lt;em&gt;verrry&lt;/em&gt; small print, and that&amp;rsquo;s cheating).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acceptance tests should be automatable&lt;/strong&gt; If you can&amp;rsquo;t automate the acceptance test, it&amp;rsquo;s probably not a good one. They should be very focused, and very precise.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
