{"id":592,"date":"2020-04-26T11:26:45","date_gmt":"2020-04-26T09:26:45","guid":{"rendered":"https:\/\/metaworks.eu\/wordpress\/?p=592"},"modified":"2020-05-01T18:35:14","modified_gmt":"2020-05-01T16:35:14","slug":"scrum-basics","status":"publish","type":"post","link":"https:\/\/metaworks.eu\/wordpress\/scrum-basics\/","title":{"rendered":"Are we there yet? KanBun&#8217;s journey to Planningland"},"content":{"rendered":"\n<p>In the <a href=\"https:\/\/metaworks.eu\/wordpress\/kanban-basics\/\">previous post <\/a>about the Kan Bun bakery we saw how to use Kanban boards for visualization. We learned about work in progress and how the orders are gradually completed over the individual steps.<\/p>\n\n\n\n<p>Up to now, Betty the Baker completed the orders one by one, as quickly as she possibly could. However, customers being customers, they say and things like &#8220;<em>When can I expect my delivery, I need it!<\/em>&#8221; &#8220;<em>How long does it take?<\/em>&#8220;.<\/p>\n\n\n\n<p>So in this blog post we are going to follow the breadcrumbs towards <strong>a planning method <\/strong>for our Kan Bun Bakery. We&#8217;ll figure out where to start, how to identify the goal, and then walk in a general direction from start to the finish line.<\/p>\n\n\n\n<p>Fun fact, questions about the <em>When\/How long\/How much?<\/em> are exactly what managers are paid to ask. Apparently managers are in some kind of internal customer role\u2026but that&#8217;s brain food for another day and blog post.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where do we start and what can we build upon?<\/h2>\n\n\n\n<p>It&#8217;s a good thing we don&#8217;t have to start from scratch here! Customer orders arrive weekly on Monday, <em>every<\/em> week. This is a stable rhythm, we call this our <em>iteration<\/em>. Therefore, we say our <strong>iteration length <\/strong>in this example is &#8220;1&nbsp;week&#8221;.<\/p>\n\n\n\n<p>Every Monday, at the start of our iteration, we can also <em>count<\/em> the orders. Therefore, we can say our <strong>iteration backlog <\/strong>is &#8220;X amount of orders&#8221;. Per week of course!<\/p>\n\n\n\n<p>Another thing we can build upon is the baker&#8217;s meeting structure. As most good managers do, she does a daily &#8220;How are you doing?&#8221; with her shop assistant. Every week she checks the orders for the coming week, planning the sequence of jobs. In the course of this weekly meeting, Betty also does a quick recap with her assistant of what went well during the last week, aiming to identify ways to improve their daily operations. <\/p>\n\n\n\n<p>We also know that several <strong>roles <\/strong>are involved in this baking scenario. Of course there is the role <em>customer<\/em>. Betty has two roles, she is a small <em>business owner<\/em> and also does all the baking of the delicious and healthy bread. Planning is also in the responsibility of her role, we summarize all her roles under &#8220;<em>baker<\/em>&#8220;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">So what&#8217;s missing?<\/h2>\n\n\n\n<p>To answer the customers&#8217; questions about the &#8220;<em>how long?<\/em>&#8221; we need two more ingredients: <em>How much is there to do?<\/em> and <em>How fast do we go?<\/em> <br>Because we know our starting point, we could then figure out <em>how long <\/em>it will take to get there.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How much? Effort Estimation<\/h3>\n\n\n\n<p>Betty The Baker has a lot of professional experience, so she can tell intuitively how long it takes to prepare the dough for the different recipes. That&#8217;s our <em>effort<\/em>, it is &#8220;the amount of work we have to put in&#8221;. However, for the sake of the argument, the effort for all kinds of bread in this example will be 1 hour. <\/p>\n\n\n\n<p>So when our iteration backlog for the week is &#8220;X amount of orders&#8221; (remember?), each order with an effort of 1 hour, the total effort per week is (X amount times 1 hour) = (X hours). There we have it, this is <strong>how much<\/strong> we need to do.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How fast? What is our Capacity?<\/h3>\n\n\n\n<p>To get a grip on the &#8220;How fast?&#8221; part of the question, we&#8217;d need some kind of <em>baking speed<\/em>. You might have noticed that there are all kinds of speed in our daily lives, and they usually contain the preposition &#8220;per&#8221;. Kilometers per Hour. Meters per Second. Breads per Hour. Breads per Week. I sense a pattern there&#8230;<\/p>\n\n\n\n<p>Wait, &#8220;Breads per Week&#8221;? That one we know! Betty works 40 hours per week. With each bread being <strong>estimated<\/strong> to have an effort of 1 hour, our <em>baking speed<\/em> is 40 Breads per Week. Now we know <em>how fast<\/em> we go, that&#8217;s our capacity!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How long?<\/h3>\n\n\n\n<p>Now that we managed to figure out the <em>How much?<\/em> and <em>How fast?<\/em>, the next part is surprisingly easy, all we have to do is to combine both.<\/p>\n\n\n\n<p>Let&#8217;s see how that goes!<\/p>\n\n\n\n<p><em>Your <\/em>order is the 23<sup>rd<\/sup> in line. How long will you have to wait until 23&nbsp;breads are ready and you can pick up your order?<br><br>(23 Breads) divided by (40 Breads \/ Week) <strong>\u2248<\/strong> 0.57 Weeks. So how long? Wednesday afternoon!<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p><em>My<\/em> order is 57<sup>th<\/sup> in line. That seems odd, as the baking speed is only 40&nbsp;Breads\/Week. But the arithmetic works exactly the same. How long will I have to wait?<br>(57 Breads)\/(40 Breads \/ Week) <strong>\u2248<\/strong> 1.43 Weeks. My order will be ready Wednesday morning, in the following week.<\/p>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<!--nextpage-->\n\n\n\n<h2 class=\"wp-block-heading\">Planning Mark 1: Doing a Prediction in a Gantt Chart<\/h2>\n\n\n\n<p>So let&#8217;s try it out, bringing it all together!<\/p>\n\n\n\n<p>In her planning meeting, our baker remembers her Management 101 class back at university. Using a Gantt chart she wants to respond to her customer&#8217;s need for planning with exact dates and delivery schedules. <\/p>\n\n\n\n<p>Betty even does a forecast and estimates how many orders will arrive when. How many in summertime? Which types of bread? When will we hire people? <\/p>\n\n\n\n<p>Betty invests weeks into this planning, and at the end her Gantt chart is very detailed and a lot of TLC went into its preparation. The level of detail is astonishing! For example, it tells her exactly that 3&nbsp;months from now she needs to buy 10&nbsp;kg of sugar! So proper planning = &#8220;Gantt chart&#8221;, et voila:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"485\" src=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Gantt-Chart-Illustration-1024x485.png\" alt=\"\" class=\"wp-image-670\" srcset=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Gantt-Chart-Illustration-1024x485.png 1024w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Gantt-Chart-Illustration-300x142.png 300w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Gantt-Chart-Illustration-768x364.png 768w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Gantt-Chart-Illustration.png 1102w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Gantt Chart Example<\/figcaption><\/figure>\n\n\n\n<p>And then, reality kicked in. Even though Betty the Baker was super motivated to follow the plan, things happened. One day, the sun was shining, so she spent half a day eating icecream with friends. Some of the bread-baking jobs took a little longer, because the yeast wasn&#8217;t fresh. Another day, the oven took a little longer to heat up in the morning. So after just 2 weeks, she was dangerously behind schedule and ended up with a lot of angry customers. <\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><strong>Plans are things that change<\/strong>.<\/p><cite>Fujio Cho, Toyota honorary chairman<\/cite><\/blockquote>\n\n\n\n<p>The harder she planned, the more her plan seemed to fight back on her. What happened? First of all, the plan was based on many guesses and assumptions. Even though each had only a tiny degree of uncertainty, all of these added up &#8211; until the nice plan was nothing more than &#8220;asking the crystal ball&#8221;. <\/p>\n\n\n\n<p>In addition to that, whenever human beings are involved (check on the progress of <a rel=\"noreferrer noopener\" href=\"https:\/\/www.youtube.com\/watch?v=Bmglbk_Op64\" target=\"_blank\">baking robots<\/a>&#8230;), these two dynamics are at work:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Imagine you <em>know<\/em> a task can be done in 45 minutes, but the plan says 60. You finish a bit early and thus &#8220;won&#8221; 15 minutes&#8230;you rock! Time for a quick coffee break, you deserved it! Funny how w never seem to get around to starting the subsequent task earlier. This behavior is called <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Parkinson%27s_law\" target=\"_blank\">Parkinson&#8217;s law<\/a>, it&#8217;s not being lazy or stupid, just&#8230;human.<\/li><li>Now let&#8217;s assume you work on a 60 minute task, and the elders of the planning put a safety margin of 30&nbsp;minutes behind it, behind the subsequent task is super important. You <strong>have<\/strong> to be on time! When would a smart person start? Right, at the very last possible moment, and since it&#8217;s a 60 minute task &#8211; every sane person starts 30&nbsp;minutes <em>later <\/em>than the original plan said. This is called the <a rel=\"noreferrer noopener\" href=\"https:\/\/en.wikipedia.org\/wiki\/Student_syndrome\" target=\"_blank\">Student&#8217;s syndrome<\/a>, which unfortunately isn&#8217;t limited to actual students.<\/li><\/ol>\n\n\n\n<p>&#8230;all this led to Betty&#8217;s plan being outdated the very moment she conceived it, but it&#8217;s not her fault. In fact, the normal due date performance looks something like this, showing how the vast majority of tasks is always late:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"782\" height=\"422\" src=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Project-Distorted-Bell-Curve.png\" alt=\"\" class=\"wp-image-676\" srcset=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Project-Distorted-Bell-Curve.png 782w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Project-Distorted-Bell-Curve-300x162.png 300w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/Project-Distorted-Bell-Curve-768x414.png 768w\" sizes=\"auto, (max-width: 782px) 100vw, 782px\" \/><figcaption>Distorted Bell Curve: Majority of tasks is always late<\/figcaption><\/figure>\n\n\n\n<p>There must be a better way!<\/p>\n\n\n\n<!--nextpage-->\n\n\n\n<h2 class=\"wp-block-heading\">Planning Mark 2: Doing a Dynamic Projection based on current info<\/h2>\n\n\n\n<p>After the not so smooth-running approach with her Gantt chart, Betty The Baker does not even try anymore to give the illusion that she can plan half a year in advance.<\/p>\n\n\n\n<p>Instead, Betty remembers that she <em>can<\/em> answer the question \u201chow long does it take\u201d, and that the order volume is actually quite stable (if you want to show off, you could call this the <em>cadence<\/em>). Also, Betty decided she wants to allow her customers to change their minds until the last responsible moment (but not later!)&#8230;because this flexibility is her USP, which she&#8217;s very proud of.<\/p>\n\n\n\n<p>So what\u2019s the solution? During her next weekly meeting, Betty cuts slices through her backlog, one for each iteration. Since the backlog was already sorted by <a href=\"https:\/\/metaworks.eu\/wordpress\/task-flow-beats-due-dates\/\">relative priotization<\/a>, the most important tasks are on top, and will receive an <em>early<\/em> slot. Lower-ranked tasks will also receive time and attention&#8230;just a bit later.<\/p>\n\n\n\n<p>This way, every Monday, the bakery can now tell all the customers which iteration they are currently in, and where they stand in line. Remember our two examples from earlier &#8211; we&#8217;ve already seen how &#8220;place in line&#8221; relates to your individual waiting time.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"802\" height=\"632\" src=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board-Backlog-shows-Iterations.png\" alt=\"\" class=\"wp-image-675\" srcset=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board-Backlog-shows-Iterations.png 802w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board-Backlog-shows-Iterations-300x236.png 300w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board-Backlog-shows-Iterations-768x605.png 768w\" sizes=\"auto, (max-width: 802px) 100vw, 802px\" \/><figcaption>Iterations structuring our backlog<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">It adapts!<\/h3>\n\n\n\n<p>Contrary to the static Gantt chart, this new planning approach is self-regulating, and can incorporate new information every week. We call this adaptation, a principle <a href=\"https:\/\/en.wikipedia.org\/wiki\/Adaptation\" target=\"_blank\" rel=\"noreferrer noopener\">stolen from biology<\/a>.<\/p>\n\n\n\n<p>For example, if Betty&#8217;s mixer breaks down, she&#8217;d need to mix by hand (or make her shop assistant do it), making her <em>slower<\/em>. Therefore, for all following iterations, her capacity is reduced. <\/p>\n\n\n\n<p>But since our planning has the superpower of adaptation and is based on capacity, all the answers to the &#8220;<em>How long?<\/em>&#8221; immediately factor in the new capacity. If you&#8217;re curious and want to read more on this, check out <a href=\"https:\/\/www.cse.wustl.edu\/~jain\/cse567-08\/ftp\/k_30iqt.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Queueing Theory<\/a> (you know, the baking speed can actually be computed) and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Little%27s_law\" target=\"_blank\" rel=\"noreferrer noopener\">Little\u2019s Law<\/a>, which is about the relation of queue length and work in progress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">I want you to do me a favor though<\/h2>\n\n\n\n<p>We did it! Planning! Now Betty the Baker is able to answer every customer&#8217;s question when he or she will receive their orders. Buuuut since our baker has a lot of buddies and a large family&#8230;.what happens if they all come into the shop and are served first?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"524\" src=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board_Cheat-the-Line.png\" alt=\"\" class=\"wp-image-668\" srcset=\"https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board_Cheat-the-Line.png 766w, https:\/\/metaworks.eu\/wordpress\/wp-content\/uploads\/2020\/04\/KanBun_Board_Cheat-the-Line-300x205.png 300w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><figcaption>Cheating the line increases WIP<\/figcaption><\/figure>\n\n\n\n<p>Let&#8217;s say this cheating the line happens on a Wednesday, what impact does this have our adaptive planning? We assign &#8220;slots&#8221; to the customer orders every Monday, so after cheating, we&#8217;d squeeze more work into our week then capacity allows. Some jobs will remain undone, even though we promised to ship it! How would you feel if you were standing in line?<\/p>\n\n\n\n<p>We&#8217;d be back to the dark side of being industrious, which is multitasking. We start working on quite a lot of orders, but never get around to actually finish them. So, most orders just sit there, waiting, and all info we gave our customers regarding the &#8220;<em>when is it ready?<\/em>&#8221; eventually comes to naught.<\/p>\n\n\n\n<p>So at that point, there&#8217;s one final but super important bit missing in our planning approach. After our Monday meeting is over and our iteration starts, we must not add or remove orders. <\/p>\n\n\n\n<p>So, to summarize, here&#8217;s a quick overview and a mapping of our bakery concepts to actual Scrum.<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-stripes\"><table><thead><tr><th>Concept<\/th><th>Example<\/th><th>Scrum<\/th><\/tr><\/thead><tbody><tr><td>Base Unit<\/td><td>Bread<\/td><td>Story<\/td><\/tr><tr><td>Iteration<\/td><td>Week<\/td><td>Sprint<\/td><\/tr><tr><td>Estimation Unit<\/td><td>Person Hours (Fixed at 1\/Piece)<\/td><td>Story Points<\/td><\/tr><tr><td>Capacity<\/td><td>Capacity &#8220;Bread per Week&#8221;<\/td><td>Velocity &#8220;Story Points per Sprint&#8221;<\/td><\/tr><tr><td>Daily Check-in Meeting<\/td><td>Daily Meeting<\/td><td>Daily Meeting<\/td><\/tr><tr><td>Planning and Improvement Meeting<\/td><td>Weekly Meeting<\/td><td>Sprint Planning, Sprint Review, Retrospective<\/td><\/tr><tr><td>Effort Estimation by<\/td><td>Experience<\/td><td>Planning Poker<\/td><\/tr><tr><td>Role &#8220;Baker&#8221;<\/td><td>Baker<\/td><td>Development Team<\/td><\/tr><tr><td>Role &#8220;Business Owner&#8221;<\/td><td>Baker<\/td><td>Scrum Master<\/td><\/tr><tr><td>Role &#8220;Customer&#8221;<\/td><td>Customer<\/td><td>Product Owner<\/td><\/tr><\/tbody><\/table><figcaption>Mapping our example to actual Scrum<\/figcaption><\/figure>\n\n\n\n<p>Famous last words! For those whose brains are idle &#8212; How does inventory size relate to the stability of demand? What would be the ideal inventory size? If you&#8217;re curious about that, check the sequel post &#8220;The Bread Game&#8221; here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous post about the Kan Bun bakery we saw how to use Kanban boards for visualization. We learned about work in progress and how the orders are gradually completed over the individual steps. Up to now, Betty the Baker completed the orders one by one, as quickly as she possibly could. However, customers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[71,23,37,70,36,72,34,58],"class_list":["post-592","post","type-post","status-publish","format-standard","hentry","category-basics","tag-capacity","tag-customer-satisfaction","tag-effort-estimation","tag-scrum","tag-story-points","tag-timeboxing","tag-velocity","tag-waterfall-planning","entry"],"_links":{"self":[{"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/posts\/592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/comments?post=592"}],"version-history":[{"count":25,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/posts\/592\/revisions"}],"predecessor-version":[{"id":683,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/posts\/592\/revisions\/683"}],"wp:attachment":[{"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/media?parent=592"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/categories?post=592"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/metaworks.eu\/wordpress\/wp-json\/wp\/v2\/tags?post=592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}