A place to cache linked articles (think custom and personal wayback machine)
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

index.md 19KB

il y a 5 ans
12345
  1. title: Replacing The User Story With The Job Story
  2. url: https://medium.com/the-job-to-be-done/replacing-the-user-story-with-the-job-story-af7cdee10c27
  3. hash_url: f31342ab50cd32140a9511ff424043fc
  4. <p name="7e8d" id="7e8d" class="graf--p graf--first">I’ve written about <a href="http://alanklement.blogspot.com/2013/03/the-problem-with-user-stories-and-whats.html" data-href="http://alanklement.blogspot.com/2013/03/the-problem-with-user-stories-and-whats.html" class="markup--anchor markup--p-anchor" rel="nofollow">the problem with user stories before</a>. At the time, I found it better to just have the team talk over proposed changes to the product. This worked great when the team had gelled and the product is very mature; however, now I’m working with a new team and building a product from scratch. In this case, because our canvas is blank, we are having trouble getting on the same page when it comes to customer motivations, events and expectations. <strong class="markup--strong markup--p-strong">But today, things have turned around. </strong>I’ve come across a great way to use the <a href="http://www.christenseninstitute.org/key-concepts/jobs-to-be-done/" data-href="http://www.christenseninstitute.org/key-concepts/jobs-to-be-done/" class="markup--anchor markup--p-anchor" rel="nofollow">jobs to be done</a> philosophy to help define features.<br>I call them <em class="markup--em markup--p-em">Job Stories.</em></p><h3 name="5bb2" id="5bb2" class="graf--h3 graf-after--p"><strong class="markup--strong markup--h3-strong">Where It Comes From</strong></h3><p name="66a7" id="66a7" class="graf--p graf-after--h3">The idea comes from the <a href="http://insideintercom.io/the-dribbblisation-of-design/" data-href="http://insideintercom.io/the-dribbblisation-of-design/" class="markup--anchor markup--p-anchor" rel="nofollow">really smart guys at intercom</a>. Here is what is they say:</p><blockquote name="2e55" id="2e55" class="graf--blockquote graf-after--p"><em class="markup--em markup--blockquote-em">We frame every design problem in a Job, focusing on the triggering event or situation, the motivation and goal, and the intended outcome:</em></blockquote><blockquote name="56ff" id="56ff" class="graf--blockquote graf-after--blockquote"><em class="markup--em markup--blockquote-em">When _____ , I want to _____ , so I can _____ .</em></blockquote><blockquote name="edc9" id="edc9" class="graf--blockquote graf-after--blockquote"><em class="markup--em markup--blockquote-em">For example: When an important new customer signs up, I want to be notified, so I can start a conversation with them.</em></blockquote><p name="a1a8" id="a1a8" class="graf--p graf-after--blockquote">It’s not referred to as a <em class="markup--em markup--p-em">Job Story </em>in the article, but I’ll call it that so I can easily reference it in the future.<br>The article doesn’t spend a whole lot of time with the concept, so I’ll talk about why I like it and why it’s better than <em class="markup--em markup--p-em">User Stories.</em></p><h3 name="7324" id="7324" class="graf--h3 graf-after--p"><strong class="markup--strong markup--h3-strong">The Problem (Again) With User Stories</strong></h3><p name="cb1d" id="cb1d" class="graf--p graf-after--h3">Summed up, the problem with user stories is that it’s too many assumptions and doesn’t acknowledge causality. When a task is put in the format of a user story ( <strong class="markup--strong markup--p-strong">As a [type of user], I want [some action], so that [outcome] </strong>) there’s no room to ask ‘why’ — you’re essentially locked into a particular sequence with no context.</p><p name="47e7" id="47e7" class="graf--p graf-after--p">Here’s how I see the format:</p><figure name="c745" id="c745" class="graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 470px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 67.10000000000001%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*lwr2g0HvLOVr5IPVNoYxLg.png" data-width="1024" data-height="687" data-action="zoom" data-action-value="1*lwr2g0HvLOVr5IPVNoYxLg.png"><img src="https://cdn-images-1.medium.com/freeze/max/40/1*lwr2g0HvLOVr5IPVNoYxLg.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1067/1*lwr2g0HvLOVr5IPVNoYxLg.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1067/1*lwr2g0HvLOVr5IPVNoYxLg.png"></noscript></div></div><figcaption class="imageCaption">Assumptions and disconnect between there persona and action</figcaption></figure><p name="6641" id="6641" class="graf--p graf-after--figure">The first problem is that we start with a <em class="markup--em markup--p-em">Persona, </em>which is a <a href="http://alanklement.blogspot.com/2013/03/focus-on-relationships-skip-personas.html" data-href="http://alanklement.blogspot.com/2013/03/focus-on-relationships-skip-personas.html" class="markup--anchor markup--p-anchor" rel="nofollow">very bad idea</a>, and then plop in an action which we <strong class="markup--strong markup--p-strong">think </strong>should be taken in order to achieve the expected outcome. As I’ve marked in the above image, there’s really a disconnect between the action and persona.<br>Here, let’s look at some existing User Stories:</p><figure name="3b60" id="3b60" class="graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 461px; max-height: 358px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 77.7%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*AKw3nKW5wo3j1WvepFgOLg.jpeg" data-width="461" data-height="358"><img src="https://cdn-images-1.medium.com/freeze/max/40/1*AKw3nKW5wo3j1WvepFgOLg.jpeg?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1067/1*AKw3nKW5wo3j1WvepFgOLg.jpeg"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1067/1*AKw3nKW5wo3j1WvepFgOLg.jpeg"></noscript></div></div><figcaption class="imageCaption">An example of how to write User Stories</figcaption></figure><p name="eacd" id="eacd" class="graf--p graf-after--figure">In the above chart, when someone reads <em class="markup--em markup--p-em">moderator </em>or <em class="markup--em markup--p-em">estimator </em>is that really adding anything? If anything it’s adding ambiguity to the flow. You and I are going to attach our own interpretation of what a moderator is or why they are in these particular contexts.</p><p name="6698" id="6698" class="graf--p graf-after--p">Here, try this. Chop off the whole <em class="markup--em markup--p-em">As a / an </em>segment and see if you’re really losing anything. Compare these two:</p><p name="ffcc" id="ffcc" class="graf--p graf-after--p"><em class="markup--em markup--p-em">As a moderator I want to create a new game by entering a name and an optional description</em></p><p name="f6ec" id="f6ec" class="graf--p graf-after--p"><em class="markup--em markup--p-em">VS.</em></p><p name="da14" id="da14" class="graf--p graf-after--p"><em class="markup--em markup--p-em">I want to create a new game by entering a name and an optional description</em></p><p name="024f" id="024f" class="graf--p graf-after--p">Did the sky fall?</p><h3 name="e620" id="e620" class="graf--h3 graf-after--p"><strong class="markup--strong markup--h3-strong">The Job Story : All About Context and Causality</strong></h3><figure name="9053" id="9053" class="graf--figure graf-after--h3"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 280px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 40%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*ua_egpJ6K1fCAQ_hY5UHAA.png" data-width="1024" data-height="410" data-action="zoom" data-action-value="1*ua_egpJ6K1fCAQ_hY5UHAA.png"><img src="https://cdn-images-1.medium.com/freeze/max/40/1*ua_egpJ6K1fCAQ_hY5UHAA.png?q=20" crossorigin="anonymous" class="progressiveMedia-thumbnail js-progressiveMedia-thumbnail"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" data-src="https://cdn-images-1.medium.com/max/1067/1*ua_egpJ6K1fCAQ_hY5UHAA.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1067/1*ua_egpJ6K1fCAQ_hY5UHAA.png"></noscript></div></div><figcaption class="imageCaption">A Job Story format</figcaption></figure><p name="f996" id="f996" class="graf--p graf-after--figure"><em class="markup--em markup--p-em">Update: 2015–03–03: Based on even more usage &amp; feedback, I use a slightly different explanation now. </em><a href="https://twitter.com/danbar87/status/572751567285293056" data-href="https://twitter.com/danbar87/status/572751567285293056" class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">See these tweets of how I suggest framing it now</em></a><em class="markup--em markup--p-em">. An update of this article will come in the future…</em></p><p name="3c14" id="3c14" class="graf--p graf-after--p">Check out the image above. <strong class="markup--strong markup--p-strong">Now we’re cookin’!</strong></p><p name="2a62" id="2a62" class="graf--p graf-after--p">All of the information above is critical and very informative because we’re focusing on causality. Each job story should provide as much context as possible and <strong class="markup--strong markup--p-strong">focus on motivation… </strong>instead of just implementation.</p><p name="92e4" id="92e4" class="graf--p graf-after--p"><em class="markup--em markup--p-em">[update June 4th 2014] After working with Job Stories for a while now, I’ve changed ‘Motivations’ to ‘Motivations and Forces’. Look to </em><a href="https://medium.com/the-job-to-be-done/5-tips-for-writing-a-job-story-7c9092911fc9" data-href="https://medium.com/the-job-to-be-done/5-tips-for-writing-a-job-story-7c9092911fc9" class="markup--anchor markup--p-anchor"><em class="markup--em markup--p-em">5 Tips For Writing A Job Story</em></a><em class="markup--em markup--p-em"> which touches on this. Also learn more about the forces via this </em><a href="http://jobstobedone.org/radio/unpacking-the-progress-making-forces-diagram/" data-href="http://jobstobedone.org/radio/unpacking-the-progress-making-forces-diagram/" class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">podcast</em></a><em class="markup--em markup--p-em"> and this </em><a href="http://www.elezea.com/2013/11/progress-making-forces/" data-href="http://www.elezea.com/2013/11/progress-making-forces/" class="markup--anchor markup--p-anchor" rel="nofollow"><em class="markup--em markup--p-em">short article</em></a><em class="markup--em markup--p-em">.</em></p><p name="c717" id="c717" class="graf--p graf-after--p graf--last">Let’s rewrite some examples from the user story chart above as a <em class="markup--em markup--p-em">Job Story </em>and add motivation and context to each one.</p></div></div></section><section name="a1c2" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="cb26" id="cb26" class="graf--p graf--first"><strong class="markup--strong markup--p-strong">User Story:</strong></p><p name="06c2" id="06c2" class="graf--p graf-after--p">As a moderator, I want to create a new game by entering a name and an optional description, so that I can start inviting estimators.</p><p name="82de" id="82de" class="graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Job Story:</strong></p><p name="53e2" id="53e2" class="graf--p graf-after--p graf--last">When I’m ready to have estimators bid on my game, I want to create a game in a format estimators can understand, so that the estimators can find my game and know what they are about to bid on.</p></div></div></section><section name="0633" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="c2bc" id="c2bc" class="graf--p graf--first"><strong class="markup--strong markup--p-strong">User Story:</strong></p><p name="46f2" id="46f2" class="graf--p graf-after--p">As an estimator, I want to see the item we’re estimating, so that I know what I’m giving an estimate for.</p><p name="2819" id="2819" class="graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Job Story:</strong></p><p name="d0fe" id="d0fe" class="graf--p graf-after--p graf--last">When I find an item I want to set an estimate for, I want to be able to see it, so that I can confirm that the item I’m estimating is actually the correct one.</p></div></div></section><section name="4c3c" class=" section--body section--last"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="4c1f" id="4c1f" class="graf--p graf--first"><strong class="markup--strong markup--p-strong">User Story:</strong></p><p name="094e" id="094e" class="graf--p graf-after--p">As a moderator, I want to select an item to be estimated or re-estimated, the team sees the item and can estimate it.</p><p name="c387" id="c387" class="graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Job Story:</strong></p><p name="6061" id="6061" class="graf--p graf-after--p">When an item does not have an estimate or has an estimate I’m not happy with, I want to be able to restart the estimation process and notify everyone, so that the team knows a particular item needs to be estimated upon.</p><h3 name="66e1" id="66e1" class="graf--h3 graf-after--p">What About Multiple Roles &amp; Events?</h3><p name="815e" id="815e" class="graf--p graf-after--h3"><em class="markup--em markup--p-em">*Added July 28th 2014</em></p><p name="cfc6" id="cfc6" class="graf--p graf-after--p">As I get great feedback regarding Job Stories and as I continue to work with Job stories, I’ve found that sometimes it’s helpful to include Roles, or <a href="https://medium.com/down-the-rabbit-hole/replacing-personas-with-characters-aa72d3cf6c69" data-href="https://medium.com/down-the-rabbit-hole/replacing-personas-with-characters-aa72d3cf6c69" class="markup--anchor markup--p-anchor">Characters</a>, as part of the <strong class="markup--strong markup--p-strong"><em class="markup--em markup--p-em">When_ </em></strong>clause.</p><h4 name="76f7" id="76f7" class="graf--h4 graf-after--p">Products With Multiple Roles</h4><p name="2104" id="2104" class="graf--p graf-after--h4">Roles / Characters are most helpful when the product has multiple roles, e.g. an IT product ( <em class="markup--em markup--p-em">Admin, Manager, Contributor….) </em>or in a marketplace product product ( <em class="markup--em markup--p-em">Buyer</em>, <em class="markup--em markup--p-em">Seller ). </em>The reason is just to clarify who we’re talking about.</p><p name="91e8" id="91e8" class="graf--p graf-after--p">Using eBay as an example:</p><blockquote name="e9d6" id="e9d6" class="graf--blockquote graf-after--p">When a Buyer has already made a bid on an item, they are anxious about missing a counter bid and want to immediately receive counter bid notifications, so they can have enough time to evaluate and update their own bid.</blockquote><h4 name="d935" id="d935" class="graf--h4 graf-after--blockquote">Roles With Cause &amp; Effect</h4><p name="e498" id="e498" class="graf--p graf-after--h4">Sometimes, there are situations when a Job Story effects multiple roles at once — setting up a cause and effect scenario.</p><p name="c908" id="c908" class="graf--p graf-after--p">Using eBay, again, as an example:</p><blockquote name="d7e4" id="d7e4" class="graf--blockquote graf-after--p">When a Seller isn’t happy with the bids they are getting and takes their product off the market, Buyers who have already submitted bids, want to be immediately notified that the product has been pulled, so that Buyers know they no longer need to keep tabs on the product and should look for a different, similar product instead.</blockquote><h4 name="d649" id="d649" class="graf--h4 graf-after--blockquote">Using Events Instead Of Roles</h4><p name="7161" id="7161" class="graf--p graf-after--h4">Sometimes, however, there might be a situation when an event effects all the roles or groups of roles: such as needing to get a password reminder. In this case there’s no reason to have a specific role, rather, try to keep it event based and general by using terms like <em class="markup--em markup--p-em">customer</em> or <em class="markup--em markup--p-em">someone (</em>but not <strong class="markup--strong markup--p-strong">user</strong><em class="markup--em markup--p-em">):</em></p><blockquote name="1918" id="1918" class="graf--blockquote graf-after--p">When a customer is on their mobile device and forgets their password, they want to get their password in a way that makes it easy to reclaim it via their mobile device, so they can continue to log in and access their news feed.</blockquote><p name="0254" id="0254" class="graf--p graf-after--blockquote">Why not <strong class="markup--strong markup--p-strong">user</strong>? <em class="markup--em markup--p-em">User</em> feels very lifeless and sterile, instead, <em class="markup--em markup--p-em">customer</em> reminds us that we have people who need to be served and respected.</p><h3 name="d689" id="d689" class="graf--h3 graf-after--p"><strong class="markup--strong markup--h3-strong">Define Motivations, Don’t Define Implementation</strong></h3><p name="bb30" id="bb30" class="graf--p graf-after--h3"><em class="markup--em markup--p-em">Job Stories </em>are great because it makes you think about motivation and context and de-emphasizes adding any particular implementation. Often, because people are so focused on the <strong class="markup--strong markup--p-strong">who </strong>and <strong class="markup--strong markup--p-strong">how</strong>, they totally miss the <strong class="markup--strong markup--p-strong">why. </strong>When you start to understand the why, your mind is then open to think of creative and original ways to solve the problem.</p>