{"id":224,"date":"2006-05-20T09:08:13","date_gmt":"2006-05-20T09:08:13","guid":{"rendered":"http:\/\/192.168.1.196:8888\/storycase\/?p=224"},"modified":"2018-03-12T22:30:34","modified_gmt":"2018-03-12T22:30:34","slug":"agile-in-practice","status":"publish","type":"post","link":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/","title":{"rendered":"Agile in practice"},"content":{"rendered":"<p>Over the years I\u2019ve practiced various flavours of IT development in projects with emphasis on use case driven approaches to guide requirements capture. Not all companies work this way and for many creation of a lengthy functional requirements document is the norm. Without an FRD \/ PRD \/ ReqDoc or whatever the in-house term used, the functional requirements are often fragmented and hierarchical with lashings of must haves, should haves and could haves. And in many of my projects the use case has successfully challenged this status quo with an improved way to cluster and manage requirement complexity.<\/p>\n<p>Some projects along the use case migration road have not been so successful and there seems to be a trend to these types. A bad smell may begin with endless reviews in which more detail is added and more critique ensues. Business won\u2019t sign-off and development is stalled and eventually the project misses its window of opportunity and is canned. Or the number of use cases seems to keep increasing with ever more elaborate techniques to package, include and extend them. The Business becomes frightened to read or review and loose faith in use case salvation. Or the estimates raise eyebrows and a new project manager is called in to tame the beast. The PM brings along new metrics in Excel; an impressive plan in Project and development begins, milestones come and go. The first use case never reaches QA for test. The project takes a vacation.<\/p>\n<p>So what\u2019s going wrong and can an agile approach help? Clues left behind by failed or failing IT development projects are useful forensic evidence. Larger companies may have resource to carry out their own post mortem as post implementation reviews. I\u2019ve witnessed two recurring themes from these reviews. First killer is complexity and can be reduced and controlled by user stories. Second killer is lack of iteration borne out of waterfall mindset and this requires enlightened confident management.<\/p>\n<p>Complexity just happens. It\u2019s often not intentional, use case specification just get longer and more detailed. What starts as a simple happy day with a few sentences becomes a heavyweight monster, detailing a multitude of alternatives and exception scenarios. All parties agree these are important. But the project plan has a single task for the whole use case \u2013 there so many use cases so we can\u2019t have separate activities for each one can we? The developers wrestle with the monster use case and may get some scenarios working but there\u2019s never enough complete to make it past QA. One way to avoid the monster is to focus only on the happy day and perhaps one or two alternatives. The use case is manageable and can progress through analysis, design dev and test. Success? Not necessarily as those missing alternatives and exceptions are identified during release testing and requires further iterations to fix the defects. But this is ok, the dev team have been through the build cycle and the team can cope so long as release dates are flexible. Success depends on not getting bogged down during requirements definition and producing something that demonstrates delivery is possible. Agility wins the day by accommodating change &#8211; the requirements we skipped over at the start get fixed after some code is working.<\/p>\n<p>So was the use case to blame? Maybe. Use cases have become collections of scenarios all working towards a common goal \u2013 something of benefit to the business. But just as use cases are collections of related functional requirements, scenarios add another dimension and complexity is multiplied. Think about it; with five requirements related to registering new user, if 4 scenarios are identified that\u2019s twenty requirements that need developing and testing. The use case is overloaded and may hide underlying complexity. An eight person-day estimate to code the use case for one scenario may translate to 32 days when all scenarios are included. If early happy day estimates are used to construct the project plan budgets are soon blown.<\/p>\n<p>A user story helps avoid overloaded by keeping the scenarios separate. The story captures one or two tightly bound scenarios with a crucial constraint \u2013 it must be possible to code the story in a short time, say a maximum of 1 week. The agile approach does not allow story bloat. Yes more stories are needed to capture all the scenarios but there\u2019s no insistence that they must all be identified before a line of code is written. Complexity is still there but never all at once. Each iteration builds towards complete functionality covering more scenarios but never all at once. The story becomes the unit of planning instead of a use case that may contain dozens of stories.<\/p>\n<p>Agile methods talk about story velocity and it\u2019s an important concept. The velocity is the number of stories coded per unit of time, typically in person days. For example, our current team has a velocity of 5 stories per day. Perhaps story inertia is an even more useful term. Consider the effort in getting a development team moving. The larger the story, the more inertia and effort needed in getting it moving but once moving it\u2019s easy to add more stories and get working code out the other end. An agile process starts by keeping initial requirements concise and simple in a few stories so development can get moving \u2013 low inertia. Then stories for the alternatives and exceptions are added, refactoring where necessary. Another benefit: later stories don\u2019t need as much detail as the initial story has already defined the main pathway and show the way.<\/p>\n<p>Contrast this with a full use case driven development in which as many scenarios are analysed and detailed before any coding begins. Picking any use case to start development brings along all its scenarios in one chunk of code. High inertia, a big flywheel to get moving.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Over the years I\u2019ve practiced various flavours of IT development in projects with emphasis on use case driven approaches to guide requirements capture. Not all companies work this way and for many creation of a lengthy functional requirements document is the norm. Without an FRD \/ PRD \/ ReqDoc or whatever the in-house term used, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[10,14,13,15],"class_list":["post-224","post","type-post","status-publish","format-standard","hentry","category-agile-thoughts","tag-agile","tag-scenario","tag-story","tag-usecase"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Agile in practice &#8212; storycase<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agile in practice &#8212; storycase\" \/>\n<meta property=\"og:description\" content=\"Over the years I\u2019ve practiced various flavours of IT development in projects with emphasis on use case driven approaches to guide requirements capture. Not all companies work this way and for many creation of a lengthy functional requirements document is the norm. Without an FRD \/ PRD \/ ReqDoc or whatever the in-house term used, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/\" \/>\n<meta property=\"og:site_name\" content=\"storycase\" \/>\n<meta property=\"article:published_time\" content=\"2006-05-20T09:08:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-12T22:30:34+00:00\" \/>\n<meta name=\"author\" content=\"Rick\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rick\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/\"},\"author\":{\"name\":\"Rick\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#\\\/schema\\\/person\\\/b4351870d5525755411ce29723f40d5f\"},\"headline\":\"Agile in practice\",\"datePublished\":\"2006-05-20T09:08:13+00:00\",\"dateModified\":\"2018-03-12T22:30:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/\"},\"wordCount\":982,\"publisher\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#organization\"},\"keywords\":[\"agile\",\"scenario\",\"story\",\"usecase\"],\"articleSection\":[\"Agile Thoughts\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/\",\"url\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/\",\"name\":\"Agile in practice &#8212; storycase\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#website\"},\"datePublished\":\"2006-05-20T09:08:13+00:00\",\"dateModified\":\"2018-03-12T22:30:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/agile-in-practice\\\/224\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Agile in practice\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#website\",\"url\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/\",\"name\":\"StoryCase\",\"description\":\"Agile Business Solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#organization\",\"name\":\"Storycase Ltd\",\"url\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/SC-Logo.png\",\"contentUrl\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/SC-Logo.png\",\"width\":742,\"height\":170,\"caption\":\"Storycase Ltd\"},\"image\":{\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/storycase-limited\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/#\\\/schema\\\/person\\\/b4351870d5525755411ce29723f40d5f\",\"name\":\"Rick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g\",\"caption\":\"Rick\"},\"url\":\"https:\\\/\\\/storycase.co.uk\\\/staging\\\/author\\\/rick\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Agile in practice &#8212; storycase","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_GB","og_type":"article","og_title":"Agile in practice &#8212; storycase","og_description":"Over the years I\u2019ve practiced various flavours of IT development in projects with emphasis on use case driven approaches to guide requirements capture. Not all companies work this way and for many creation of a lengthy functional requirements document is the norm. Without an FRD \/ PRD \/ ReqDoc or whatever the in-house term used, [&hellip;]","og_url":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/","og_site_name":"storycase","article_published_time":"2006-05-20T09:08:13+00:00","article_modified_time":"2018-03-12T22:30:34+00:00","author":"Rick","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rick","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/#article","isPartOf":{"@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/"},"author":{"name":"Rick","@id":"https:\/\/storycase.co.uk\/staging\/#\/schema\/person\/b4351870d5525755411ce29723f40d5f"},"headline":"Agile in practice","datePublished":"2006-05-20T09:08:13+00:00","dateModified":"2018-03-12T22:30:34+00:00","mainEntityOfPage":{"@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/"},"wordCount":982,"publisher":{"@id":"https:\/\/storycase.co.uk\/staging\/#organization"},"keywords":["agile","scenario","story","usecase"],"articleSection":["Agile Thoughts"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/","url":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/","name":"Agile in practice &#8212; storycase","isPartOf":{"@id":"https:\/\/storycase.co.uk\/staging\/#website"},"datePublished":"2006-05-20T09:08:13+00:00","dateModified":"2018-03-12T22:30:34+00:00","breadcrumb":{"@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/storycase.co.uk\/staging\/agile-in-practice\/224\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/storycase.co.uk\/staging\/"},{"@type":"ListItem","position":2,"name":"Agile in practice"}]},{"@type":"WebSite","@id":"https:\/\/storycase.co.uk\/staging\/#website","url":"https:\/\/storycase.co.uk\/staging\/","name":"StoryCase","description":"Agile Business Solutions","publisher":{"@id":"https:\/\/storycase.co.uk\/staging\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/storycase.co.uk\/staging\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/storycase.co.uk\/staging\/#organization","name":"Storycase Ltd","url":"https:\/\/storycase.co.uk\/staging\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/storycase.co.uk\/staging\/#\/schema\/logo\/image\/","url":"https:\/\/storycase.co.uk\/staging\/wp-content\/uploads\/2015\/11\/SC-Logo.png","contentUrl":"https:\/\/storycase.co.uk\/staging\/wp-content\/uploads\/2015\/11\/SC-Logo.png","width":742,"height":170,"caption":"Storycase Ltd"},"image":{"@id":"https:\/\/storycase.co.uk\/staging\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/storycase-limited"]},{"@type":"Person","@id":"https:\/\/storycase.co.uk\/staging\/#\/schema\/person\/b4351870d5525755411ce29723f40d5f","name":"Rick","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e31626232ed027acca491111bcf57a594e8b61403f7a0ec9f9dad5f8f2c5fe86?s=96&d=mm&r=g","caption":"Rick"},"url":"https:\/\/storycase.co.uk\/staging\/author\/rick\/"}]}},"_links":{"self":[{"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/posts\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":1,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/posts\/224\/revisions"}],"predecessor-version":[{"id":738,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/posts\/224\/revisions\/738"}],"wp:attachment":[{"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/media?parent=224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/categories?post=224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/storycase.co.uk\/staging\/wp-json\/wp\/v2\/tags?post=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}