A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 40KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>5 Tips For Writing A Job Story (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="https://jtbd.info/5-tips-for-writing-a-job-story-7c9092911fc9">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. 5 Tips For Writing A Job Story (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="https://jtbd.info/5-tips-for-writing-a-job-story-7c9092911fc9">Source originale du contenu</a></h3>
  445. <p name="14e5" id="14e5" class="graf graf--p graf--hasDropCapModel graf--hasDropCap graf--leading"><span class="graf-dropCap">A</span> <a href="https://medium.com/the-job-to-be-done/af7cdee10c27" data-href="https://medium.com/the-job-to-be-done/af7cdee10c27" class="markup--anchor markup--p-anchor" target="_blank"><em class="markup--em markup--p-em">Job Story</em></a><em class="markup--em markup--p-em"> </em>is a powerful way to facilitate team conversation and discovery when designing products. They are meant to cut right to 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="noopener" target="_blank">job to be done</a> by eliminating distractions. The job story encourages the product’s design process to focus on context, causality and motivations instead of assumptions, subjectiveness, personas and implementations.</p>
  446. <p name="f980" id="f980" class="graf graf--p graf-after--p"><a href="http://www.whencoffeeandkalecompete.com/" data-href="http://www.whencoffeeandkalecompete.com/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank"><em class="markup--em markup--p-em">Want more? Download a free PDF book about JTBD or buy it in paperback &amp; kindle</em></a></p>
  447. <p name="0206" id="0206" class="graf graf--p graf-after--p">As I write more job stories, I’ve been paying attention to characteristics which make some stories better than others. When a story is well done, it helps me and my team cut right to what needs to be discussed and puts us all on the same page — making the product design process dramatically better.<br>Here are 5 tips which will help when writing Job Stories:</p>
  448. <ol class="postList"><li name="0103" id="0103" class="graf graf--li graf-after--p">Refine A Situation By Adding Contextual Information</li><li name="2934" id="2934" class="graf graf--li graf-after--li">Job Stories Come From Real People Not Personas</li><li name="afc5" id="afc5" class="graf graf--li graf-after--li">Design Modular Job Stories Which Features (Solutions) Can Plug Into</li><li name="2789" id="2789" class="graf graf--li graf-after--li">Add Forces To Motivations</li><li name="8a53" id="8a53" class="graf graf--li graf-after--li">Job Stories Don’t Have To Be From A Specific Point Of View</li></ol>
  449. <h4 name="20db" id="20db" class="graf graf--h4 graf-after--li"><strong class="markup--strong markup--h4-strong">1. Refine A Situation By Adding Contextual Information</strong></h4>
  450. <p name="b895" id="b895" class="graf graf--p graf-after--h4">When <a href="https://twitter.com/marksweep" data-href="https://twitter.com/marksweep" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">David Wu</a> described to me how a situation can capture a whole set of conditions, it struck a chord with me. When I add more context to a situation, I’ve found that it’s easier to design a working solution which also handles any anxieties which can push a customer away from using a product or feature.<br>Let’s compare:</p>
  451. <ol class="postList"><li name="af95" id="af95" class="graf graf--li graf-after--p">When I want something to eat….</li><li name="60d3" id="60d3" class="graf graf--li graf-after--li">When I’m in a rush and want a something to eat….</li><li name="4fc5" id="4fc5" class="graf graf--li graf-after--li">When I’m in a rush, I’m starving and want something to eat….</li><li name="93f6" id="93f6" class="graf graf--li graf-after--li">When I’m in a rush, starving, need something I can eat with one hand while ‘on the go’, am not sure when the next time I’ll be able to eat, …</li></ol>
  452. <p name="e9c6" id="e9c6" class="graf graf--p graf-after--li">The more context we have for the situation, the better I can design a solution. In version #1, a sit down restaurant will work. In version #4, perhaps a slice of pizza or snickers bar will work best.</p>
  453. <figure name="468d" id="468d" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 799px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 114.19999999999999%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*MvlgRZL90wtgSsvmtdZjww.png" data-width="1024" data-height="1169" data-action="zoom" data-action-value="1*MvlgRZL90wtgSsvmtdZjww.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*MvlgRZL90wtgSsvmtdZjww.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/1600/1*MvlgRZL90wtgSsvmtdZjww.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*MvlgRZL90wtgSsvmtdZjww.png"></noscript></div></div></figure>
  454. <h4 name="0c1d" id="0c1d" class="graf graf--h4 graf-after--figure"><strong class="markup--strong markup--h4-strong">2. Job Stories Come From Real People Not Personas</strong></h4>
  455. <p name="5bb6" id="5bb6" class="graf graf--p graf-after--h4">Because they are 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="noopener" target="_blank">mashup of assumptions and attributes</a>, personas can have a destructive effect on product design. They can give a false sense of knowing the customer and thus can really leave gaps in design. For example, you can’t ask a persona about their anxieties, why they chose <em class="markup--em markup--p-em">Product A </em>vs <em class="markup--em markup--p-em">Product B</em>, what else was going on when they chose <em class="markup--em markup--p-em">Product A </em>vs <em class="markup--em markup--p-em">Product B, </em>or that when they first opened your app they didn’t know what to do first….</p>
  456. <p name="7c7c" id="7c7c" class="graf graf--p graf-after--p">Job Stories can only come from real customer interviews. Before designing a feature or new product, you must talk to real people and uncover all the anxieties and contexts which were in play when they used your or a competitor’s product.<br>If you are interested in learning about techniques on how to conduct an interview, listen to the <a href="http://jobstobedone.org/radio/the-mattress-interview-part-one/" data-href="http://jobstobedone.org/radio/the-mattress-interview-part-one/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank"><em class="markup--em markup--p-em">The Mattress Interview</em></a><em class="markup--em markup--p-em"> </em>with <a href="https://twitter.com/chriscbs" data-href="https://twitter.com/chriscbs" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Chris Spiek</a> and <a href="https://twitter.com/bmoesta" data-href="https://twitter.com/bmoesta" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Bob Moesta</a>. Chris, Bob and Ervin also have a <a href="http://click.linksynergy.com/link?id=eK3SN*a6Q/Q&amp;offerid=323058.55997&amp;type=2&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fmastering-jobs-to-be-done-interviews%2F" data-href="http://click.linksynergy.com/link?id=eK3SN*a6Q/Q&amp;offerid=323058.55997&amp;type=2&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fmastering-jobs-to-be-done-interviews%2F" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Udemy course on jobs-to-be-done customer interviews</a>.</p>
  457. <p name="c1df" id="c1df" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Another reason why some favor personas is because they don’t know how else to organize all the information they get about or from their customers. How to organize job stories will be addressed in a future article.</em></p>
  458. <h4 name="da5a" id="da5a" class="graf graf--h4 graf-after--p">3. Design Modular Job Stories Which Features (Solutions) Can Plug Into</h4>
  459. <p name="e30a" id="e30a" class="graf graf--p graf-after--h4">When designing job stories, it’s important to not commingle them with solutions. This is another important distinction from user stories which encourage defining implementation.</p>
  460. <p name="3959" id="3959" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">When commingling personas ( or situations ) and solutions….</strong></p>
  461. <p name="639d" id="639d" class="graf graf--p graf-after--p">Below is from a source describing how to write effective user stories. The author encourages to also create sub stories which ‘add detail’ to help develop the user story. Here is an example:</p>
  462. <blockquote name="78e0" id="78e0" class="graf graf--blockquote graf-after--p"><em class="markup--em markup--blockquote-em">As a user, I can backup my entire hard drive.</em></blockquote>
  463. <p name="eefe" id="eefe" class="graf graf--p graf-after--blockquote">…and after adding detail….</p>
  464. <blockquote name="3865" id="3865" class="graf graf--blockquote graf-after--p"><em class="markup--em markup--blockquote-em">As a power user, I can specify files or folders to backup based on file size, date created and date modified.</em></blockquote>
  465. <p name="e6a8" id="e6a8" class="graf graf--p graf-after--blockquote">and…..</p>
  466. <blockquote name="10e2" id="10e2" class="graf graf--blockquote graf-after--p"><em class="markup--em markup--blockquote-em">As a user, I can indicate folders not to backup so that my backup drive isn’t filled up with things I don’t need saved.</em></blockquote>
  467. <p name="43d4" id="43d4" class="graf graf--p graf-after--blockquote">Given the examples above, suppose the <em class="markup--em markup--p-em">power users </em>didn’t care much to <em class="markup--em markup--p-em">specify which files or folders to back up bases on file size, date created….. </em>In this case how do you figure out what went wrong. Is your persona wrong? Is the feature wrong? Is it the wrong feature for the persona?</p>
  468. <figure name="1e5a" id="1e5a" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 419px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 59.8%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*Lr_Yk8w34YQxGjgFajm8FQ.png" data-width="963" data-height="576" data-action="zoom" data-action-value="1*Lr_Yk8w34YQxGjgFajm8FQ.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*Lr_Yk8w34YQxGjgFajm8FQ.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/1600/1*Lr_Yk8w34YQxGjgFajm8FQ.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*Lr_Yk8w34YQxGjgFajm8FQ.png"></noscript></div></div></figure>
  469. <p name="1aeb" id="1aeb" class="graf graf--p graf-after--figure"><strong class="markup--strong markup--p-strong">Breaking out situations ( jobs ) and solutions.</strong></p>
  470. <p name="3226" id="3226" class="graf graf--p graf-after--p">The bottom line here is that when jobs are seen as separate from solutions, you notice that they can be explored differently and at different times. Another benefit of modular stories and solutions is how you can begin to see where jobs overlap and several jobs can end up sharing a common solution.</p>
  471. <p name="8f2b" id="8f2b" class="graf graf--p graf-after--p">How job stories relate to solutions and other job stories is a topic onto its own. In the mean time, start off with visualizing the relationship between job stories and features like this:</p>
  472. <figure name="c41a" id="c41a" class="graf graf--figure graf-after--p"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 421px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 60.099999999999994%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*1QF2SaiilpUGvl4uGfq6oA.png" data-width="993" data-height="597" data-action="zoom" data-action-value="1*1QF2SaiilpUGvl4uGfq6oA.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*1QF2SaiilpUGvl4uGfq6oA.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/1600/1*1QF2SaiilpUGvl4uGfq6oA.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*1QF2SaiilpUGvl4uGfq6oA.png"></noscript></div></div></figure>
  473. <figure name="a096" id="a096" class="graf graf--figure graf-after--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 393px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 56.2%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*bb9TLt5SMzDAQvq2KYoXeA.png" data-width="999" data-height="561" data-action="zoom" data-action-value="1*bb9TLt5SMzDAQvq2KYoXeA.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*bb9TLt5SMzDAQvq2KYoXeA.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/1600/1*bb9TLt5SMzDAQvq2KYoXeA.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*bb9TLt5SMzDAQvq2KYoXeA.png"></noscript></div></div></figure>
  474. <figure name="ad83" id="ad83" class="graf graf--figure graf-after--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 386px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 55.1%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*f4A2DUwIw3s0jy5x2-My2g.png" data-width="1020" data-height="562" data-action="zoom" data-action-value="1*f4A2DUwIw3s0jy5x2-My2g.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*f4A2DUwIw3s0jy5x2-My2g.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/1600/1*f4A2DUwIw3s0jy5x2-My2g.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*f4A2DUwIw3s0jy5x2-My2g.png"></noscript></div></div></figure>
  475. <figure name="13ee" id="13ee" class="graf graf--figure graf-after--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 525px;"><div class="aspectRatioPlaceholder-fill" style="padding-bottom: 75%;"></div><div class="progressiveMedia js-progressiveMedia graf-image" data-image-id="1*p7w3xSX7NlSwq_eIX34SXw.png" data-width="1024" data-height="768" data-action="zoom" data-action-value="1*p7w3xSX7NlSwq_eIX34SXw.png"><img src="https://cdn-images-1.medium.com/freeze/max/60/1*p7w3xSX7NlSwq_eIX34SXw.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/1600/1*p7w3xSX7NlSwq_eIX34SXw.png"><noscript class="js-progressiveMedia-inner"><img class="progressiveMedia-noscript js-progressiveMedia-inner" src="https://cdn-images-1.medium.com/max/1600/1*p7w3xSX7NlSwq_eIX34SXw.png"></noscript></div></div></figure>
  476. <p name="fa97" id="fa97" class="graf graf--p graf-after--figure">The last image references what I call a <a href="https://jtbd.info/situational-segmentation-vs-customer-market-segmentation-860cc865eed5" data-href="https://jtbd.info/situational-segmentation-vs-customer-market-segmentation-860cc865eed5" class="markup--anchor markup--p-anchor" target="_blank"><em class="markup--em markup--p-em">Situational Segment</em></a><em class="markup--em markup--p-em">. </em>It’s an idea I’ve been thinking about lately and is a topic that needs to be explored on its own.</p>
  477. <h4 name="21ab" id="21ab" class="graf graf--h4 graf-after--p"><strong class="markup--strong markup--h4-strong">4. Add Forces To Motivations</strong></h4>
  478. <p name="ac0f" id="ac0f" class="graf graf--p graf-after--h4">Another idea from David Wu is to include forces with motivations. In the job story format of <strong class="markup--strong markup--p-strong">Situation — Motivations — Expected Outcomes</strong>, the <em class="markup--em markup--p-em">Motivation </em>stage can be augmented by adding pull and push <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="noopener" target="_blank">forces</a>. Adding forces to a motivation is much like adding context to a situation. Let’s consider the <a href="http://news.cnet.com/8301-1023_3-57604502-93/amazon-adds-mayday-button-tech-support-to-new-kindle-fire-hdx-tablets/" data-href="http://news.cnet.com/8301-1023_3-57604502-93/amazon-adds-mayday-button-tech-support-to-new-kindle-fire-hdx-tablets/" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank"><em class="markup--em markup--p-em">mayday </em>feature by amazon</a>, as <a href="http://revolveapp.com/blog/bid/337958/mayday-specs-irrelevant-for-the-new-kindle-fire" data-href="http://revolveapp.com/blog/bid/337958/mayday-specs-irrelevant-for-the-new-kindle-fire" class="markup--anchor markup--p-anchor" rel="noopener" target="_blank">Ross Belmont</a> put it:</p>
  479. <blockquote name="cc4f" id="cc4f" class="graf graf--blockquote graf-after--p"><em class="markup--em markup--blockquote-em">When I’m using my tablet and encounter a problem, I want to get help right away so I can finish what I started.</em></blockquote>
  480. <p name="224f" id="224f" class="graf graf--p graf-after--blockquote">Let’s stick with the motivational part: <em class="markup--em markup--p-em">I want to get help right away </em>and add some forces:</p>
  481. <p name="a4fc" id="a4fc" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Situation:</strong></p>
  482. <p name="f10f" id="f10f" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">When I’m using my tablet and encounter a problem….</em></p>
  483. <p name="df91" id="df91" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Motivation:</strong></p>
  484. <p name="455c" id="455c" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">I want to get help right away…</em></p>
  485. <p name="05ea" id="05ea" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Force: I’m irritated because I was in the middle of something…</em></p>
  486. <p name="60df" id="60df" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Force: I’m nervous I won’t finish what I was just doing…</em></p>
  487. <p name="d23d" id="d23d" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Force: I get nervous asking for help…</em></p>
  488. <p name="2ad6" id="2ad6" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Force: Asking for help might make me look stupid…</em></p>
  489. <p name="1d42" id="1d42" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">Force: I’m shy about showing what I’m working on to someone else…</em></p>
  490. <p name="a22d" id="a22d" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Expected Outcome:</strong></p>
  491. <p name="ba0c" id="ba0c" class="graf graf--p graf-after--p">So I can finish what I started.</p>
  492. <p name="2c4a" id="2c4a" class="graf graf--p graf-after--p">When a story adds forces, we can then design solutions which help reduce forces that push customers away from a product or feature and increase the forces that pull them towards a product or feature. In Amazon’s case, they could:</p>
  493. <ul class="postList"><li name="7616" id="7616" class="graf graf--li graf-after--p"><em class="markup--em markup--li-em">Reassure that customers don’t have to wait long to get help. ( I’m nervous I won’t finish what I was just doing )</em></li><li name="de2b" id="de2b" class="graf graf--li graf-after--li"><em class="markup--em markup--li-em">Ensure that customers can choose how much access the customer support rep has to your tablet. ( I’m shy about showing what I’m working on to someone else )</em></li><li name="ff4e" id="ff4e" class="graf graf--li graf-after--li"><em class="markup--em markup--li-em">Remind customers how common it is to ask for help. (Asking for</em> <em class="markup--em markup--li-em">help might make me look stupid)</em></li></ul>
  494. <h4 name="f8a3" id="f8a3" class="graf graf--h4 graf-after--li"><strong class="markup--strong markup--h4-strong">5. Job Stories Don’t Have To Be From A Single Point Of View</strong></h4>
  495. <p name="13f5" id="13f5" class="graf graf--p graf-after--h4">Lately, I’ve been experimenting with the idea of not restricting stories to the point of view of just one person. Instead, I’ve been writing stories from a third person point of view.</p>
  496. <p name="0aac" id="0aac" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">When:</strong></p>
  497. <p name="c2cb" id="c2cb" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">When someone approaches a bank for a home mortgage and fills out an application…</em></p>
  498. <p name="c132" id="c132" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Motivation:</strong></p>
  499. <p name="32c3" id="32c3" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">The applicant wants to know if the application is accepted or not…</em></p>
  500. <p name="d451" id="d451" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">The banker wants to make sure that the application is filled out correctly…</em></p>
  501. <p name="738f" id="738f" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">The bank wants to check if the applicant has acceptable credit history…</em></p>
  502. <p name="cb8e" id="cb8e" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">Expected Outcome:</strong></p>
  503. <p name="6025" id="6025" class="graf graf--p graf-after--p"><em class="markup--em markup--p-em">So that a home mortgage is quickly given to a low risk person, which the bank feels confident it will profit from.</em></p>
  504. <p name="ee0c" id="ee0c" class="graf graf--p graf-after--p">Again, I’m experimenting with these so I’d love feedback on what people think about this. So far, 3rd person stories do well when a product deals with multiple parties, such as a real time bidding site like eBay.</p>
  505. <h4 name="0c49" id="0c49" class="graf graf--h4 graf-after--p">Learn more</h4>
  506. <p name="cb88" id="cb88" class="graf graf--p graf-after--h4">I’m still working with job stories in my product design and I’m sure the more the concept is put into practice, adjustments will be made and it will continue to be built upon. As these come up, I’ll continue to comment about it.</p>
  507. </article>
  508. </section>
  509. <nav id="jumpto">
  510. <p>
  511. <a href="/david/blog/">Accueil du blog</a> |
  512. <a href="https://jtbd.info/5-tips-for-writing-a-job-story-7c9092911fc9">Source originale</a> |
  513. <a href="/david/stream/2019/">Accueil du flux</a>
  514. </p>
  515. </nav>
  516. <footer>
  517. <div>
  518. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  519. <p>
  520. Bonjour/Hi!
  521. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  522. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  523. </p>
  524. <p>
  525. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  526. </p>
  527. <p>
  528. Voici quelques articles choisis :
  529. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  530. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  531. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  532. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  533. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  534. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  535. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  536. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  537. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  538. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  539. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  540. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  541. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  542. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  543. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  544. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  545. </p>
  546. <p>
  547. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  548. </p>
  549. <p>
  550. Je ne traque pas ta navigation mais mon
  551. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  552. conserve des logs d’accès.
  553. </p>
  554. </div>
  555. </footer>
  556. <script type="text/javascript">
  557. ;(_ => {
  558. const jumper = document.getElementById('jumper')
  559. jumper.addEventListener('click', e => {
  560. e.preventDefault()
  561. const anchor = e.target.getAttribute('href')
  562. const targetEl = document.getElementById(anchor.substring(1))
  563. targetEl.scrollIntoView({behavior: 'smooth'})
  564. })
  565. })()
  566. </script>