{"id":3441,"date":"2019-12-15T15:16:00","date_gmt":"2019-12-15T20:16:00","guid":{"rendered":"https:\/\/pacemkr.ca\/?p=3441"},"modified":"2024-04-08T16:06:54","modified_gmt":"2024-04-08T20:06:54","slug":"when-story-points-arent-enough","status":"publish","type":"post","link":"https:\/\/pacemkr.com\/fr-ca\/blog\/when-story-points-arent-enough\/","title":{"rendered":"When Story Points Aren\u2019t Enough\u2026"},"content":{"rendered":"<p>If there is one trend that has surpassed Agile in our profession over the last ten years, I would say DevOps would be a good culprit. As we\u2019ve seen an explosion of tools to implement CI\/CD in our Scrum teams, we\u2019ve also seen some of our Agile practices being challenged by this new reality.<\/p>\n\n\n\n<p>I would say those practices are the story points\/relative estimation\/poker planning. And I believe it is more than time we look at new techniques to replace them to fit the new reality of Scrum teams who are heavily influenced by DevOps.<\/p>\n\n\n\n<p>From my experience with story points and velocity, we estimate a product backlog item (PBI) based on the effort it takes us to deliver a piece of functionality to our product owner. We then try to plot a velocity based on a set of PBIs we take every sprint.<\/p>\n\n\n\n<p>For example, in the picture below, we visualize a PBI worth 3 story points represented with a blue bar. This blue bar contains all the work planned by the development team to complete the PBI.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"448\" height=\"92\" src=\"https:\/\/pacemkr.ca\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three.png\" alt=\"\" class=\"wp-image-3442\" srcset=\"https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three.png 448w, https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three-300x62.png 300w, https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three-18x4.png 18w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/figure><\/div>\n\n\n<p>I find this approach less and less beneficial as we move into a \u201cYou build it. You run it.\u201d mentality. As we can now deploy features sooner and faster than ever, it brings its share of new responsibilities for developers. In such a context, I find Scrum teams do more customer support, resolve outages, fix bugs to keep production code going, and monitor operational dashboards of their systems to name a few new tasks they have to tackle.<\/p>\n\n\n\n<p>What challenges the use of story points, even more, is how the operational tasks of our Scrum teams can be hard to predict. Can we accurately predict how many sales engineers will call you next sprint with customer issues? Can we predict those two rack mounts are about to overheat because a service technician didn\u2019t do his job correctly?<\/p>\n\n\n\n<p>So while a 3 story points looked like the above picture when we operated in a pure development vacuum, we represent our new unpredictable tasks with red bars, thus extending our original 3 story points.\u00e7<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" width=\"591\" height=\"41\" src=\"https:\/\/pacemkr.ca\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three_Spread.png\" alt=\"\" class=\"wp-image-3443\" style=\"width:591px;height:auto\" srcset=\"https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three_Spread.png 591w, https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three_Spread-300x21.png 300w, https:\/\/pacemkr.com\/wp-content\/uploads\/2024\/04\/Story_Point_Not_Enough_Three_Spread-18x1.png 18w\" sizes=\"(max-width: 591px) 100vw, 591px\" \/><\/figure><\/div>\n\n\n<p>So how valuable is our story point system when those red bars keep showing up on our original estimates? \u00a0If this is your situation, you\u2019ve maybe tried doing better estimations or went with #noestimates. If you are still unsatisfied with those previous options, I believe there is a third way where unplanned work is embedded within the actual metrics.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Flow metrics<\/h3>\n\n\n\n<p>I believe we are ready to move forward and adopt a third way which is rooted in empiricism. The approach comes from the Kanban community. They are called the Kanban metrics (or flow metrics). I find they are a great set of practices for the Scrum framework, especially when your context is closer to DevOps than pure development work.<\/p>\n\n\n\n<p>As defined in the\u00a0<a href=\"https:\/\/www.scrum.org\/resources\/kanban-guide-scrum-teams\">Kanban Guide for Scrum teams<\/a>, the four basic flow metrics are:<\/p>\n\n\n\n<ul>\n<li><strong>Work in Progress (WIP)<\/strong>: The number of work items started but not finished. Note the difference between the WIP metric and the policies a Scrum Team uses to limit WIP. The team can use the WIP metric to provide transparency about their progress towards reducing their WIP and improving their flow.<\/li>\n\n\n\n<li><strong>Cycle Time<\/strong>: The amount of elapsed time between when a work item starts and when a work item finishes.<\/li>\n\n\n\n<li><strong>Work Item Age<\/strong>: The amount of time between when a work item started and the current time. This applies only to items that are still in progress.<\/li>\n\n\n\n<li><strong>Throughput<\/strong>: The number of work items finished per unit of time.<\/li>\n<\/ul>\n\n\n\n<p>Let\u2019s revisit our 3 story points above and look at it from the perspective of the cycle time. Let\u2019s say it took 12 days from the moment we started working on it until we completed the PBI, including all the red bars shown in the previous picture.<\/p>\n\n\n\n<p>Let\u2019s plot it on a chart as shown in the following image where our item was completed on March 5.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/pacemkr.ca\/wp-content\/uploads\/2024\/03\/Cycle_Time_Scatterplot_Step_3_fr.png\" alt=\"\" class=\"wp-image-3278\" srcset=\"\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-srcset=\"\" \/><\/figure><\/div>\n\n\n<p>Let\u2019s then plot the rest of our completed PBIs on the chart.\u00a0It now looks like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/pacemkr.ca\/wp-content\/uploads\/2024\/03\/Cycle_Time_Scatterplot_Step_5_fr-1.png\" alt=\"\" class=\"wp-image-3280\" srcset=\"\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-srcset=\"\" \/><\/figure><\/div>\n\n\n<p>In the chart above, called a cycle time scatterplot, we see our PBIs completed by our Scrum team. I\u2019ve put two tooltips on the chart to help the reader understand it better. On April 4, the Scrum team completed 1 PBI which took 6 days to complete. On February 25, the Scrum team completed 2 PBIs, one took 2 days and another one took 9 days.<\/p>\n\n\n\n<p>The final pieces of information to add to this cycle time scatterplot are percentile lines. In the chart below, I\u2019ve added a second Y-axis on the right with percentile lines. A percentile line means that below the line, we have a percentage of all the dots plotted on the chart. A 50 % percentile line means we have 50 % of our points under that line while an 85 % percentile line means we have 85 % of our points under that line.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/pacemkr.ca\/wp-content\/uploads\/2024\/03\/Cycle_Time_Scatterplot_Step_9_fr.png\" alt=\"\" class=\"wp-image-3284\" srcset=\"\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-srcset=\"\" \/><\/figure><\/div>\n\n\n<p>With the help of the chart above, we can state that 85 % of the time, our Scrum team completes a PBI in 8 days or less. We call this our Service Level Expectation (SLE) which forecasts how long it should take a given item to flow from start to finish within the Scrum Team\u2019s workflow. \u00a0<\/p>\n\n\n\n<p>So instead of estimating our PBIs, arguing if it\u2019s 2 or 3 points, we can ask ourselves if it falls below our SLE. If the answer is no, we have a conversation about splitting it (or not) to honor our SLE. If the answer is yes, we simply move on to the next PBI to refine. We still have the technical conversation around the PBI as we did before with story points. We just don\u2019t do the poker planning part anymore.<\/p>\n\n\n\n<p>At sprint planning, we either have PBIs who are below the SLE or exceptions with which our Product Owner is aware. During the sprint, we actively monitor the age of our PBIs to minimize the chances they exceed the SLE.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The tip of the iceberg<\/h3>\n\n\n\n<p>If this post has spurred your interest, we are only touching the tip of the iceberg.<\/p>\n\n\n\n<p>Kanban metrics can also help the development team forecast the number of PBIs it can take to achieve their sprint goal. In a subsequent post, I will talk about throughput-driven sprint planning. We will use another flow metric, throughput, to forecast our sprint in conjunction with the cycle time scatterplot. New techniques like probabilistic forecasting, right-sizing, and Monte Carlo simulations offer a new and fresh perspective on determining delivery dates. SLE and work item aging can change the conversations at your daily Scrum around the work.<\/p>\n\n\n\n<p>Yes, I\u2019ll admit this is a shameless plug for the Professional Scrum with Kanban (PSK) course. At the same time, I strongly believe the PSK will help our industry with an alternative to story points which, I believe, is more appropriate for our new DevOps reality. As our industry has moved from waterfall to iterations in the last 15 years, I believe Kanban metrics will become the\u00a0<em>de facto<\/em>\u00a0standard when managing and forecasting our work in the near future.<\/p>","protected":false},"excerpt":{"rendered":"<p>Story points don&#8217;t cut it anymore in Agile Software Development. It&#8217;s time to move on.<\/p>","protected":false},"author":7,"featured_media":3527,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"aioseo_notices":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/pacemkr.com\/wp-content\/uploads\/2019\/12\/Story_Point_Not_Enough_Featured_Image.png","_links":{"self":[{"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/posts\/3441"}],"collection":[{"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/comments?post=3441"}],"version-history":[{"count":1,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/posts\/3441\/revisions"}],"predecessor-version":[{"id":3444,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/posts\/3441\/revisions\/3444"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/media\/3527"}],"wp:attachment":[{"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/media?parent=3441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/categories?post=3441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pacemkr.com\/fr-ca\/wp-json\/wp\/v2\/tags?post=3441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}