<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>The Use Case Blog</title>
    <description>Managing Requirements with Use Cases</description>
    <link>http://blog.casecomplete.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 2.8.0.2</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://blog.casecomplete.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>CaseComplete Blog</dc:creator>
    <dc:title>The Use Case Blog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>User Stories and Use Cases: Not All That Different</title>
      <description>&lt;p&gt;TL;DR In the beginning, user stories and use cases are nearly indistinguishable. In the end, they serve distinct purposes and could look very different. Who cares? Anyone who wants to deliver projects in an agile way but still have a written record of what was built when it's done.&lt;/p&gt;
&lt;h2&gt;They Start Out the Same&lt;/h2&gt;
&lt;p&gt;I know this is well traveled territory and the &lt;a href="http://www.boost.co.nz/blog/2012/01/use-cases-or-user-stories/"&gt;consensus on the internet&lt;/a&gt; is that user stories and use cases are so different that to suggest any likeness between the two would be absurd. But before you lecture me about &lt;a href="http://alistair.cockburn.us/Stop+confusing+use+cases+and+user+stories"&gt;gazelles and gazebos&lt;/a&gt;, I humbly submit:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.casecomplete.com/image.axd?picture=UserStoryVersusUseCaseChecklist.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="User Story Versus Use Case Checklist" src="https://blog.casecomplete.com/image.axd?picture=UserStoryVersusUseCaseChecklist_thumb.png" alt="User Story vs Use Case" width="1245" height="745" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I know what some of you are thinking, "Wait wait... user stories are lovingly written on index cards crafted from post-consumer content while use cases destroy countless trees each year to build the weighty tomes in which they live!" To you, I humbly submit a use case:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.casecomplete.com/image.axd?picture=UseCaseIndexCard.jpg"&gt;&lt;img style="display: inline; border-width: 0px;" title="Use Case Index Card" src="https://blog.casecomplete.com/image.axd?picture=UseCaseIndexCard_thumb.jpg" alt="Use Case Index Card" width="800" height="533" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sometimes, this is as far as I&amp;rsquo;ll take a use case. If I write my use case on an index card or sticky note, does it become a user story? The truth is, the amount of detail put into a use case is entirely up to you. You're free to add more detail than is useful or necessary but, of course, you would be doing it wrong.&lt;/p&gt;
&lt;p&gt;Let's look at a few definitions from respected authorities in this area:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;User stories are short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. &lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.mountaingoatsoftware.com/agile/user-stories"&gt;Mike Cohn - User story expert&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like this.&amp;nbsp; I like short and simple. I like writing from the perspective of a user. Am I allowed to write a short and simple use case? Or would that make it a user story? And here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A use case is all the ways of using a system to achieve a particular goal for a particular user.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/MikeSorokin/use-case20"&gt;Ivar Jacobson - Inventor of use cases&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So you could say I'm wrong and that user stories and use cases are beyond comparison. And I could say, &amp;ldquo;Gosh, I certainly do see some similarities between the two.&amp;rdquo; For the record, I understand the nuance that the intent of a user story is away from documentation and the intent of a use case is often to write things down.&lt;/p&gt;
&lt;h2&gt;Why Do We Care?&lt;/h2&gt;
&lt;p&gt;So why do I want to have this debate? Actually, I don't. I'm not a methodologist. I would rather get my hands dirty building something than have a debate over semantics. If you love user stories and don't care for use cases, then write your stories, agree to have a conversation about them, and be happy. But here's the problem I'm trying to solve: there are a growing number of teams who want to achieve two objectives:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They want to deliver a project with the agility afforded by user stories. They want to add value sooner and in smaller increments, whether doing sprints or continuous delivery.&lt;/li&gt;
&lt;li&gt;Once their system is delivering value, they want to have a more detailed, written record of how parts of it are supposed to behave and they've found that use cases are at least one component of that record.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We find these teams in regulated industries like finance, manufacturing, and biotech, as well as other places like the public sector.&lt;/p&gt;
&lt;p&gt;If we want to be agile but also want use cases, we can't deliver them whole. They're too large to qualify as backlog items. We need to divide them into bite sized pieces that can be delivered incrementally. How do we do that? Well, there are two ways to break down a use case: a) into scenarios or b) into smaller use cases.&lt;/p&gt;
&lt;h2&gt;Use Cases to Scenarios&lt;/h2&gt;
&lt;p&gt;A use case is a combination of its main success scenario plus extensions. The main success scenario is the simplest or most common path that achieves the use case goal. The extensions cover all the other ways the use case could succeed or fail. Visually, these combinations would look something like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.casecomplete.com/image.axd?picture=UseCaseScenarios.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="Use Case Scenarios" src="https://blog.casecomplete.com/image.axd?picture=UseCaseScenarios_thumb.png" alt="Use Case Scenarios" width="1245" height="962" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Each scenario could be delivered independently. This works because a scenario is obviously smaller than the entire use case and, in fact, there's good reason to deliver use cases this way. Add value early by shipping just the simplest or most vital scenario first. Then, deliver extension cases later. The most obscure extensions might not be delivered at all, but instead get handled manually outside of the system (an idea I first heard from &lt;a href="http://www.vimstreet.com/"&gt;Jake Calabrese&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Here's the rub: these scenarios are not user stories. If you're bent on delivering user stories, this approach isn't for you. Why? Because the goal of each scenario remains the same regardless of the path the user took to achieve it. If you tried to write a user story for each alternate path (an extension that succeeds), they would all look the same. And, as far as I know, there is no such thing as a user story for an exception (an extension that fails).&lt;/p&gt;
&lt;p&gt;Although each extension isn't its own story, the relationship between a use case and its extensions resembles the relationship between a user story and its conditions of satisfaction, - a set of criteria that gauges whether the story was successful.&lt;/p&gt;
&lt;h2&gt;Use Cases to Smaller Use Cases&lt;/h2&gt;
&lt;p&gt;Before I dive in here, understand that it's entirely possible that a use case might be small enough in scope to deliver on its own, as-is, in a single iteration. But if the use case goal is too lofty to deliver in one agile swoop, we could just break it down into smaller use cases where each sub-use case is focused around an incremental goal - a step towards the overall goal of the parent use case. This sounds a lot like an Epic, a large user story that gets broken down into smaller user stories so they can be delivered incrementally.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://blog.casecomplete.com/image.axd?picture=DividingUseCases.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="Dividing Use Cases" src="https://blog.casecomplete.com/image.axd?picture=DividingUseCases_thumb.png" alt="Dividing Use Cases" width="800" height="618" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is where use cases and user stories really start to smell the same to me. I can break an epic user story down into smaller user stories until the stories are small enough to deliver in an iteration. I can break a large use case down into smaller use cases until the use cases are small enough to deliver in an iteration.&lt;/p&gt;
&lt;p&gt;As use cases become smaller in scope, we can vary the amount of detail we add to each one. I might write step-by-step scenarios for some, but for others I might write only a brief description. To some I might add a wireframe or workflow diagram. For others, I might write acceptance tests only. At this point, the line blurs between use case and user story. A use case with only a name and description looks a lot like a user story. But with this approach, you'll have organized your requirements into pieces small enough to deliver incrementally without losing the big picture view that comes from having a larger use case model.&lt;/p&gt;
&lt;p&gt;To wrap up, I'm not advocating use cases over user stories nor am I advocating the opposite. My point is, if you want use cases, you can have them and you can still deliver value incrementally, the way you might with stories.&lt;/p&gt;</description>
      <link>http://blog.casecomplete.com/post/User-Stories-and-Use-Cases-Not-All-That-Different</link>
      <comments>http://blog.casecomplete.com/post/User-Stories-and-Use-Cases-Not-All-That-Different#comment</comments>
      <guid>http://blog.casecomplete.com/post.aspx?id=8545a4d4-c329-4978-9674-c2ea8cbb3b2e</guid>
      <pubDate>Thu, 05 Dec 2013 19:17:00 +0000</pubDate>
      <dc:publisher>Matt Terski</dc:publisher>
      <pingback:server>http://blog.casecomplete.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.casecomplete.com/post.aspx?id=8545a4d4-c329-4978-9674-c2ea8cbb3b2e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.casecomplete.com/trackback.axd?id=8545a4d4-c329-4978-9674-c2ea8cbb3b2e</trackback:ping>
      <wfw:comment>http://blog.casecomplete.com/post/User-Stories-and-Use-Cases-Not-All-That-Different#comment</wfw:comment>
      <wfw:commentRss>http://blog.casecomplete.com/syndication.axd?post=8545a4d4-c329-4978-9674-c2ea8cbb3b2e</wfw:commentRss>
    </item>
    <item>
      <title>Use Cases in an Agile Backlog</title>
      <description>&lt;p&gt;
A question I&amp;rsquo;ve been asked a lot lately is, &amp;ldquo;How do I make use cases work in an agile setting?&amp;rdquo; I found myself struggling for an answer because &lt;strong&gt;a)&lt;/strong&gt; agile is a mindset not a methodology and &lt;strong&gt;b)&lt;/strong&gt; I didn&amp;rsquo;t think there was anything about use cases that prevented them from being used in an agile setting. So just do it. But I think the questioners were looking for something more prescriptive. So let&amp;rsquo;s break it down.
&lt;/p&gt;
&lt;h2&gt;The Backlog&lt;/h2&gt;  
&lt;p&gt;
&lt;a href="http://blog.casecomplete.com/image.axd?picture=Windows-Live-Writer/7f754bd6927e/5DEA4445/Backlog.png"&gt;&lt;img style="background-image: none; margin-top: 0px; margin-right: 0px; margin-bottom: 5px; margin-left: 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border-width: 0px" src="http://blog.casecomplete.com/image.axd?picture=Windows-Live-Writer/7f754bd6927e/6AE42456/Backlog_thumb.png" border="0" alt="Backlog" title="Backlog" width="272" height="480" align="right" /&gt;&lt;/a&gt;For starters, use cases are a form of requirements, and when we&amp;rsquo;re being agile, requirements go in the backlog. Often, those requirements take the form of user stories, but they could also be use cases. If they were, how might this work? Consider the composition of the backlog. The items down at the bottom, furthest away from being implemented, are described in a coarse manner. Probably just a name and maybe a description. This feels right since you don&amp;rsquo;t want to invest much time or energy in requirements long before they will be designed or implemented. That would be the opposite of agile.
&lt;/p&gt;
&lt;p&gt;
So use cases would enter the backlog as a simple name and description. Almost like a placeholder &amp;ndash; or an agreement to have a conversation later. This reminds me of the definition of a user story actually. One difference would be, we&amp;rsquo;d eventually write down parts of that conversation in the form of a use case. 
&lt;/p&gt;
&lt;p&gt;
As use cases percolate higher up in the backlog, we&amp;rsquo;d add more detail to them: a success scenario, some alternate scenarios, maybe related requirements or a wireframe. The risk to avoid here is investing too much effort in detailing use cases that are further down in the backlog. Don&amp;rsquo;t write documentation you don&amp;rsquo;t need. The line you want to to be weary of crossing is writing more detail than what is needed to deliver your next iteration.
&lt;/p&gt;
&lt;h2&gt;A Use Case: Too Big for a Sprint?&lt;/h2&gt;  
&lt;p&gt;
I think of use cases as one way to group a set of requirements: a user goal, scenarios, constraints, business rules, wireframes, diagrams, etc. As much as I like use cases, one challenge with agile will be, they are too large to be considered an atomic unit of work. By themselves, they don&amp;rsquo;t make for a useful burn down chart. In fact, you might not fit a complete use case into a single sprint. So the use case &amp;ndash; this grouping of requirements &amp;ndash; needs to be broken down into some other logical chunks of work.
&lt;/p&gt;
&lt;p&gt;
I&amp;rsquo;ll cover what those chunks are in my next post.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;What do you think? Are use cases and an agile backlog a complete mismatch? Let me know in the comments.&lt;/em&gt;
&lt;/p&gt;
</description>
      <link>http://blog.casecomplete.com/post/Use-Cases-in-an-Agile-Backlog</link>
      <comments>http://blog.casecomplete.com/post/Use-Cases-in-an-Agile-Backlog#comment</comments>
      <guid>http://blog.casecomplete.com/post.aspx?id=205f810e-1d3a-44ae-a3e9-f6f7d8371125</guid>
      <pubDate>Thu, 15 Dec 2011 08:36:00 +0000</pubDate>
      <dc:publisher>Matt Terski</dc:publisher>
      <pingback:server>http://blog.casecomplete.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.casecomplete.com/post.aspx?id=205f810e-1d3a-44ae-a3e9-f6f7d8371125</pingback:target>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://blog.casecomplete.com/trackback.axd?id=205f810e-1d3a-44ae-a3e9-f6f7d8371125</trackback:ping>
      <wfw:comment>http://blog.casecomplete.com/post/Use-Cases-in-an-Agile-Backlog#comment</wfw:comment>
      <wfw:commentRss>http://blog.casecomplete.com/syndication.axd?post=205f810e-1d3a-44ae-a3e9-f6f7d8371125</wfw:commentRss>
    </item>
    <item>
      <title>From Goals to Use Cases</title>
      <description>&lt;p&gt;Here&amp;rsquo;s a common scenario for many of us who have learned about uses cases but haven&amp;rsquo;t written one yet: You&amp;rsquo;ve identified the actors for your project. You&amp;rsquo;ve brainstormed a list of goals for each actor. You&amp;rsquo;re ready to create your first set of use cases. And you feel stuck. Or at least uncertain. Call it use case writer&amp;rsquo;s block. You could point to a use case if you saw one, but what are &lt;em&gt;your&lt;/em&gt; use cases?&lt;/p&gt;
&lt;p&gt;When this happens, remember that use cases are based on actor goals. If a use case doesn&amp;rsquo;t describe how an actor gets something done, it&amp;rsquo;s not really a use case. Does that mean that every goal becomes use case? Not necessarily. Goals address needs at many levels &amp;ndash; from very high levels to very low levels and infinite shades in between. Consider the following goals:&lt;img style="display: inline; margin-left: 0px; margin-right: 0px; border-width: 0px;" title="actor goals" src="https://blog.casecomplete.com/image.axd?picture=WindowsLiveWriter/FromGoalstoUseCases/320CF415/iStock_000007623639XSmallresize.jpg" alt="actor goals" width="200" height="300" align="right" border="0" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Relax&lt;/li&gt;
&lt;li&gt;Plan a vacation&lt;/li&gt;
&lt;li&gt;Reserve a room&lt;/li&gt;
&lt;li&gt;Find a resort&lt;/li&gt;
&lt;li&gt;Pick a destination&lt;/li&gt;
&lt;li&gt;Type the name of a city into a text box&lt;/li&gt;
&lt;li&gt;Open a web browser&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are all related goals, but at different levels. Not all of them will make for a good use case. Pick a high level goal and the use case will either be too big to comprehend or too imprecise to guide decisions. Pick a low level goal and the use case will be too small and you&amp;rsquo;ll need too many of them to describe the system. This is starting to sound like a fairy tale involving three bears, but &amp;ndash; you guessed it &amp;ndash; the best goals are neither too high, nor too low, but just right.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re wondering what goal levels are &lt;em&gt;just right&lt;/em&gt;, here&amp;rsquo;s a more concrete guideline from Craig Larman&amp;rsquo;s &lt;a href="http://www.craiglarman.com/wiki/index.php?title=Books_by_Craig_Larman#Applying_UML_and_Patterns" target="_blank"&gt;Applying UML and Patterns&lt;/a&gt;: Write use cases at the level of the &lt;em&gt;elementary business process (EBP):&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A task performed by one person in one place at one time, in response to a business event, which adds measurable business value and leaves the data in a consistent state.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There are exceptions to this guideline, of course. You might want a high-level use case that puts context around the EBP use cases. You might occasionally want a low-level use case that describes a complex sub-process. When you&amp;rsquo;re identifying the bulk of your use cases, however, most will address goals at the EBP level &amp;ndash; something one actor can complete in one place at one time.&lt;/p&gt;
&lt;p&gt;To identify the use cases in your system, look at the list of goals you&amp;rsquo;ve brainstormed. Is each goal written at the elementary business process level? For goals that are written at a level lower than a business event, consider &lt;em&gt;why&lt;/em&gt; the actor wants to achieve that goal. It&amp;rsquo;s probably just a step towards a higher level goal. For goals that are written at a level higher than a business event, consider &lt;em&gt;how&lt;/em&gt; the actor would go about achieving that goal. There&amp;rsquo;s probably an intermediate step that has more business meaning in the system you&amp;rsquo;re defining.&lt;/p&gt;
&lt;p&gt;So, back to our use case writer&amp;rsquo;s block. You&amp;rsquo;ve just broken through. Each of the EBP-level goals you identified answers the question: What are &lt;em&gt;your&lt;/em&gt; use cases?&lt;/p&gt;</description>
      <link>http://blog.casecomplete.com/post/From-Goals-to-Use-Cases</link>
      <comments>http://blog.casecomplete.com/post/From-Goals-to-Use-Cases#comment</comments>
      <guid>http://blog.casecomplete.com/post.aspx?id=3b27cb89-b39f-4c3c-8566-cf2e64ae1f85</guid>
      <pubDate>Wed, 07 Apr 2010 15:30:00 +0000</pubDate>
      <category>How-To</category>
      <category>Use Cases</category>
      <dc:publisher>Matt Terski</dc:publisher>
      <pingback:server>http://blog.casecomplete.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.casecomplete.com/post.aspx?id=3b27cb89-b39f-4c3c-8566-cf2e64ae1f85</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.casecomplete.com/trackback.axd?id=3b27cb89-b39f-4c3c-8566-cf2e64ae1f85</trackback:ping>
      <wfw:comment>http://blog.casecomplete.com/post/From-Goals-to-Use-Cases#comment</wfw:comment>
      <wfw:commentRss>http://blog.casecomplete.com/syndication.axd?post=3b27cb89-b39f-4c3c-8566-cf2e64ae1f85</wfw:commentRss>
    </item>
  </channel>
</rss>