{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/invest-and-smart-how-to-write-good-stories/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/invest-and-smart-how-to-write-good-stories/"},"excerpt":"I start from here my review of the immersion training with ThougtWorks. On  this page  there’s a good summary on how to write a user story.Â…","timeToRead":1,"frontmatter":{"title":"Invest and smart: how to write good stories","description":"","categories":[],"date":"October 23, 2006","canonical_link":"https://javame.netlify.app//invest-and-smart-how-to-write-good-stories-6479fb084f3b"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Invest and smart: how to write good stories\",\n  \"description\": \"\",\n  \"date\": \"2006-10-23T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//invest-and-smart-how-to-write-good-stories-6479fb084f3b\",\n  \"redirect_from\": [\"/invest-and-smart-how-to-write-good-stories-6479fb084f3b\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I start from here my review of the immersion training with ThougtWorks.\"), mdx(\"p\", null, \"On \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://xp123.com/xplor/xp0308/index.shtml\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"this page\"), \" there\\u2019s a good summary on how to write a user story.\\xC2 Brieftly a user story must be:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"I\\u200A\\u2014\\u200AIndependent\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"N\\u200A\\u2014\\u200ANegotiable\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"V\\u200A\\u2014\\u200AValuable\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"E\\u200A\\u2014\\u200AEstimable\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"S\\u200A\\u2014\\u200ASmall\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"T\\u200A\\u2014\\u200ATestable\")), mdx(\"p\", null, \"And:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"S\\u200A\\u2014\\u200ASpecific\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"M\\u200A\\u2014\\u200AMeasurable\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"A\\u200A\\u2014\\u200AAchievable\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"R\\u200A\\u2014\\u200ARelevant\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"T\\u200A\\u2014\\u200ATime-boxed\")), mdx(\"p\", null, \"The \\u201Cpattern\\u201D must be something like As I want to so that\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"As\"), \" a Blogger \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"I want to\"), \" write this post \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"so that\"), \" people can start to write good user stories!\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"c1098bd4-6c61-5248-bc08-497c762bb478","previous":{"id":"13ec10ed-c6bd-5ea5-96ed-a23498568eb2","fields":{"slug":"/instant-logging-harness-the-power-of-log4j-with-jabber/","published":true},"frontmatter":{"redirect_from":["/instant-logging-harness-the-power-of-log4j-with-jabber-b7a94af98658"],"redirect_to":null,"title":"Instant logging: Harness the power of log4j with Jabber"}},"next":{"id":"1d816d82-4160-5853-afe8-0486ead01b83","fields":{"slug":"/domain-driven-design-what-is-it/","published":true},"frontmatter":{"redirect_from":["/domain-driven-design-what-is-it-75e63fc29a1c"],"redirect_to":null,"title":"Domain-driven Design: What Is It?"}},"permalink":"https://javame.netlify.app/invest-and-smart-how-to-write-good-stories/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}