{"id":480,"date":"2010-03-09T09:38:22","date_gmt":"2010-03-09T16:38:22","guid":{"rendered":"https:\/\/simpleprogrammer.com\/?p=480"},"modified":"2013-07-30T19:17:15","modified_gmt":"2013-07-30T23:17:15","slug":"return-of-the-fatlog","status":"publish","type":"post","link":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/","title":{"rendered":"Return of the Fatlog"},"content":{"rendered":"<h2><a href=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-482\" title=\"returnoffatlog\" alt=\"\" src=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg?w=300\" width=\"300\" height=\"300\" srcset=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg 625w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog-300x300.jpg 300w, https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog-150x150.jpg 150w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h2>\n<h2>Just make it work&#8230;<\/h2>\n<p><a href=\"https:\/\/simpleprogrammer.com\/2010\/01\/26\/scrum-backlogs-that-cover-too-much-and-are-not-thinly-sliced-enough-and-have-spreadsheets-attached-and-have-non-specific-things-like-fix-everything-on-this-page\/\">I first introduced the concept of a Fatlog a couple of months ago<\/a>.<\/p>\n<p>Basically, a fatlog is a Scrum backlog, or any Agile user story, that is too big and can be sliced vertically into thinner functions of the system.<\/p>\n<p>I talked about the kinds of symptoms which might indicate a backlog is indeed a fatlog, but today I want to hone in on a special kind of fatlog that really only exists in\u00a0maintenance\u00a0mode.<\/p>\n<p>I like to call this kind of fatlog the &#8220;just make it work&#8221; fatlog. \u00a0It is kind of hard to describe what this fatlog looks like, but perhaps easier to describe one of the ways it comes to be.<\/p>\n<p>Let&#8217;s say you have a major feature for your application. \u00a0Some feature that you built over several backlogs, perhaps over several sprints. \u00a0Some users start reporting a few bugs for that feature. \u00a0This doesn&#8217;t work, it doesn&#8217;t work when I do this, etc. \u00a0The business doesn&#8217;t really understand what the user is saying or doesn&#8217;t want to take the time to fully understand what is broken, they just know some of the parts of this feature are broken. \u00a0So what do they do? \u00a0Create a user story which describes all of the requirements of the entire feature and make it one single backlog.<\/p>\n<p>What you end up with is a large backlog that really should be 10 or more backlogs, but is excused as one backlog, because &#8220;most of the stuff is working anyway.&#8221; \u00a0The idea here is not so far fetched. \u00a0The idea is that if most of it is working, the team should be able to identify which things are not working according to the requirements and fix just those things, and in the end the whole thing needs to work anyway, so they should make sure the complete feature works.<\/p>\n<h2><strong>What is wrong with this?<\/strong><\/h2>\n<p>It may seem like not that big of a deal, you can just estimate the backlog based on the parts you know are broken and the testing for the entire feature. \u00a0There are a few problems with this line of thinking.<\/p>\n<ul>\n<li>What if one or more of the things you thought were working are not working? \u00a0What if they are horribly broken?<\/li>\n<li>How will you know how to test the entire feature without the entire detailed requirements? \u00a0If you think you&#8217;re just going to pull up the tests from back when you first implemented the feature, you had better check with your business first. \u00a0Chances are their idea of the correctness of the feature has changed.<\/li>\n<li>How do you know where to start working? \u00a0You will have to access what is broken first. \u00a0This will mean that you must run all the regression tests to see what is broken. \u00a0The only problem is if your original tests would have failed for the failures in the first place, you would have already known about it and fixed it the first time. \u00a0You will have to write new tests to exploit the bugs that you don&#8217;t know about.<\/li>\n<li>If the business cannot tell you what is broken, how will they know when it is fixed? \u00a0Your success criteria will be very interpretable. \u00a0That is a recipe for failure.<\/li>\n<\/ul>\n<p>Have you ever played one of those games where you try to figure out what is different between two almost identical pictures? \u00a0Some of those pictures can be very difficult to spot the differences. \u00a0It is a good thing they tell you how many wrong things you need to find. \u00a0When you have a &#8220;just make it work&#8221; fatlog you have exactly that. \u00a0Except you don&#8217;t have the count of how many things are wrong. \u00a0You have to keep guessing and hope you got them all.<\/p>\n<p>Here is the key point: <strong>a user story sizing should not be based on the size of the work, but rather the scope of the work. <\/strong>The difference may not seem like much, but it is huge.<\/p>\n<p>Consider the difference between these two statements:<\/p>\n<ol>\n<li>Find the one 1 needle in all of the haystacks on the entire farm.<\/li>\n<li>Find 50 needles in the one haystack by the side of the barn.<\/li>\n<\/ol>\n<p>The first statement is not much work, (just finding one needle), but the scope is huge. \u00a0The second statement is much more work, (finding 50 needles), but the scope is much smaller.<\/p>\n<p>Which statement do you think is likely to have more success?<\/p>\n<p>One key thing each Scrum or Agile team should ask about each\u00a0maintenance\u00a0story they are going to take into an iteration is: <strong>can you tell me what is broken?<\/strong> If the business cannot tell you what is broken, but only lists a set of requirements of how something should work, you are going to be searching for a needle in an unknown number of haystacks. \u00a0Instead, the backlog should be changed to either reflect exactly what is known to be broken, or be broken up into many smaller stories with smaller scopes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Just make it work&#8230; I first introduced the concept of a Fatlog a couple of months ago. Basically, a fatlog is a Scrum backlog, or any Agile user story, that is too big and can be sliced vertically into thinner functions of the system. I talked about the kinds of symptoms which might indicate a&#8230;<\/p>\n","protected":false},"author":2,"featured_media":482,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[11287,31679,46805,303624],"tags":[],"class_list":["post-480","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile","category-process-improvement","category-scrum","category-user-stories"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Return of the Fatlog<\/title>\n<meta name=\"description\" content=\"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Return of the Fatlog\" \/>\n<meta property=\"og:description\" content=\"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/\" \/>\n<meta property=\"og:site_name\" content=\"Simple Programmer\" \/>\n<meta property=\"article:published_time\" content=\"2010-03-09T16:38:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-07-30T23:17:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"625\" \/>\n\t<meta property=\"og:image:height\" content=\"625\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"John Sonmez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John Sonmez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/\"},\"author\":{\"name\":\"John Sonmez\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"headline\":\"Return of the Fatlog\",\"datePublished\":\"2010-03-09T16:38:22+00:00\",\"dateModified\":\"2013-07-30T23:17:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/\"},\"wordCount\":844,\"commentCount\":2,\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/03\\\/returnoffatlog.jpg\",\"articleSection\":[\"Agile\",\"Process Improvement\",\"Scrum\",\"User Stories\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/\",\"name\":\"Return of the Fatlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/03\\\/returnoffatlog.jpg\",\"datePublished\":\"2010-03-09T16:38:22+00:00\",\"dateModified\":\"2013-07-30T23:17:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\"},\"description\":\"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#primaryimage\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/03\\\/returnoffatlog.jpg\",\"contentUrl\":\"https:\\\/\\\/simpleprogrammer.com\\\/wp-content\\\/uploads\\\/2010\\\/03\\\/returnoffatlog.jpg\",\"width\":625,\"height\":625,\"caption\":\"fatlog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/return-of-the-fatlog\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpleprogrammer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Return of the Fatlog\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#website\",\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/\",\"name\":\"Simple Programmer\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpleprogrammer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpleprogrammer.com\\\/#\\\/schema\\\/person\\\/1abc70edfb189184827740310672de67\",\"name\":\"John Sonmez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g\",\"caption\":\"John Sonmez\"},\"url\":\"https:\\\/\\\/simpleprogrammer.com\\\/author\\\/jsonmez\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Return of the Fatlog","description":"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/","og_locale":"en_US","og_type":"article","og_title":"Return of the Fatlog","og_description":"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.","og_url":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/","og_site_name":"Simple Programmer","article_published_time":"2010-03-09T16:38:22+00:00","article_modified_time":"2013-07-30T23:17:15+00:00","og_image":[{"width":625,"height":625,"url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg","type":"image\/jpeg"}],"author":"John Sonmez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"John Sonmez","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#article","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/"},"author":{"name":"John Sonmez","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"headline":"Return of the Fatlog","datePublished":"2010-03-09T16:38:22+00:00","dateModified":"2013-07-30T23:17:15+00:00","mainEntityOfPage":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/"},"wordCount":844,"commentCount":2,"image":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg","articleSection":["Agile","Process Improvement","Scrum","User Stories"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/","url":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/","name":"Return of the Fatlog","isPartOf":{"@id":"https:\/\/simpleprogrammer.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#primaryimage"},"image":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#primaryimage"},"thumbnailUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg","datePublished":"2010-03-09T16:38:22+00:00","dateModified":"2013-07-30T23:17:15+00:00","author":{"@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67"},"description":"A classification of a type of fatlog (a Scrum backlog item that is too large) and an explanation of why this type of backlog is doomed for failure.","breadcrumb":{"@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#primaryimage","url":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg","contentUrl":"https:\/\/simpleprogrammer.com\/wp-content\/uploads\/2010\/03\/returnoffatlog.jpg","width":625,"height":625,"caption":"fatlog"},{"@type":"BreadcrumbList","@id":"https:\/\/simpleprogrammer.com\/return-of-the-fatlog\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpleprogrammer.com\/"},{"@type":"ListItem","position":2,"name":"Return of the Fatlog"}]},{"@type":"WebSite","@id":"https:\/\/simpleprogrammer.com\/#website","url":"https:\/\/simpleprogrammer.com\/","name":"Simple Programmer","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpleprogrammer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpleprogrammer.com\/#\/schema\/person\/1abc70edfb189184827740310672de67","name":"John Sonmez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dc2f18dfa76e017566ce607de002d7abe4acfd5ec19a6db82c180b00867b8d94?s=96&d=mm&r=g","caption":"John Sonmez"},"url":"https:\/\/simpleprogrammer.com\/author\/jsonmez\/"}]}},"_links":{"self":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/comments?post=480"}],"version-history":[{"count":0,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/posts\/480\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media\/482"}],"wp:attachment":[{"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/media?parent=480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/categories?post=480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpleprogrammer.com\/wp-json\/wp\/v2\/tags?post=480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}