<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Vega Information System Services, Inc.</title>
	<atom:link href="http://www.vissinc.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vissinc.com</link>
	<description>Frank Vega - Lean-agile Principles,  Kanban Method, XP Practices, and Software Architecture/Design</description>
	<lastBuildDate>Mon, 06 May 2013 03:59:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Does Data Shape Policy Or Does Policy Shape Data? Yes!</title>
		<link>http://www.vissinc.com/2013/03/01/does-data-shape-policy-or-does-policy-shape-data-yes/</link>
		<comments>http://www.vissinc.com/2013/03/01/does-data-shape-policy-or-does-policy-shape-data-yes/#comments</comments>
		<pubDate>Fri, 01 Mar 2013 23:45:48 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Kanban Basics]]></category>
		<category><![CDATA[Kanban Metrics]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Hack-a-thons]]></category>
		<category><![CDATA[Holidays]]></category>
		<category><![CDATA[Lab Week]]></category>
		<category><![CDATA[Policies]]></category>
		<category><![CDATA[Run Chart]]></category>
		<category><![CDATA[Scatter Plot]]></category>
		<category><![CDATA[Vacations]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=4214</guid>
		<description><![CDATA[&#8220;Errors using inadequate data are much less than those using no data at all.&#8221; &#8211; Charles Babbage, English mathematician, philosopher,<a href="http://www.vissinc.com/2013/03/01/does-data-shape-policy-or-does-policy-shape-data-yes/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>&#8220;Errors using inadequate data are much less than those using no data at all.&#8221; &#8211; Charles Babbage, English mathematician, philosopher, inventor, mechanical engineer, invented the first mechanical computer (1791 &#8211; 1871)</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;I always avoid prophesying before hand, because it is a much better policy to prophesy after the event has already taken place.&#8221; &#8211; Winston Churchill, British orator, author, and Prime Minister during WWII (1874-1965)</em></span></p>
<p><span style="color: #0000ff;"><em style="color: #0000ff;">&#8220;Policies are many, Principles are few, Policies will change, Principles never do.&#8221; - John C. Maxwell, evangelical Christian pastor, speaker, and author of 60+ books primarily about leadership (1947 &#8211;   )</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;We&#8217;re entering a new world in which data may be more important than software.&#8221; &#8211; Tim O&#8217;Reilly, founder of O&#8217;Reilly Media, supporter of the free software and open source movements (1954 &#8211;  )</em></span><em style="color: #0000ff;"> </em></p>
</blockquote>
<p><img class="size-full wp-image-4222 alignright" alt="DataProcessProcessData_VISS" src="http://www.vissinc.com/wp-content/uploads/2013/02/DataProcessProcessData_VISS.png" width="300" height="190" /></p>
<p>This question below came up recently on our Agile Denver Kanban SIG (special interest group) LinkedIn discussion list.</p>
<blockquote>
<p><span style="color: #0000ff;"><i>&#8220;I am working for an organization that has &#8216;Lab Week&#8217; six times a year. Lab Week encourages innovation by setting aside time for engineers to work on whatever they want. My current conundrum is, what do I do with the work items on my team&#8217;s Kanban board, specifically those in To Do or Doing, during Lab Week?</i></span></p>
<p><span style="color: #0000ff;"><i>It feels wrong to put them back in the backlog, but keeping them in To Do or Doing will affect lead/cycle time. While this is reality, it is only reality six times a year. In the interest of predictability I think I would want to know what lead/cycle time is without the impact of Lab Week and then factor in Lab Week when we hit a Lab Week.&#8221;</i></span></p>
</blockquote>
<p>I had two immediate responses to this interesting question. First, teams in a number of software development and IT/IS organizations are familiar with the basis for this question, and I&#8217;m guessing it comes up in a number of non-IT/IS or non-software development contexts as well. </p>
<p>Second, there is already an upfront discomfort with the idea of moving workitems back to the &#8220;backlog&#8221; that have been &#8220;pulled&#8221; into the ToDo (or Ready, On Deck, etc.) workflow process states. <em><strong>I&#8217;m wondering what signal is this discomfort providing to us?</strong> </em>I&#8217;m guessing the discomfort is even greater with the idea of moving workitems back to the backlog that have made it to some state of Doing in the workflow process. In essence, this would be &#8220;resetting the clock&#8221; for a number of workitems already considered work in progress for some period of time, and with expectations I&#8217;m sure they would be completed within some known SLA.</p>
<p>Just what I like, &#8220;real world&#8221; questions in particular when they come with some &#8220;pain points&#8221; clearly identified upfront. As I continued to think about this one more, it felt like a &#8220;perfect&#8221; opportunity to raise what I feel is a related question and discuss them some together in this post. When discussing metrics as part of measuring and managing flow, the question below is one I raise often with others who are applying the Kanban Method to their workflow processes.</p>
<blockquote>
<p><em><span style="color: #0000ff;">&#8220;In your workflow process context: Does Data Shape Your Policy or Does Policy Shape Your Data?&#8221;</span></em></p>
</blockquote>
<p><em><strong>How might we in the case of a &#8220;Lab Week&#8221; produce the metrics we want and visualize this information without any &#8220;discomfort&#8221; of doing post collection adjustments or moving (resetting) workitems back into the backlog?</strong></em> What can we learn from thinking about and responding to this &#8220;Lab Week&#8221; question that applies beyond the original basis itself in how we develop policies for managing our workflow processes?</p>
<p><span id="more-4214"></span></p>
<h3>What is a Lab Week?</h3>
<p>A number of organizations I know are fairly mature in their software development or IT/IS workflow processes and technical practices. It&#8217;s interesting to me too that a number of them do practice some form of activity typically called a &#8220;hack-a-thon, hack-fest, hack-day, code-fest&#8221;, and it looks too like they are called &#8220;Lab Week&#8221; by some. These events typically last anywhere from a day to a week and are essentially for a fairly similar purpose and consist of fairly similar activities. These include educational and social purposes, with an intent to create usable software, but often are more immediately focused on exploring new languages, APIs, operating systems, tools, platforms, or new product development and innovation efforts.</p>
<h3>Should We Adjust Data to Account for a Lab Week Policy?</h3>
<p>In these contexts I can see how it “feels wrong” to move workitems from ToDo or Doing back to the backlog. Yet, if there was a specific and immediate business need (a force, a problem, an opportunity) to be addressed by deriving information without the impact of a Lab Week, I see too how one might explore ways to do a post adjustment, a “correction”, of the lead times for these workitems by one week. However, for the moment, I want to consider doing something different than either of these.</p>
<p><em><strong>From the original question, the initial concern appears that minimally seven days of &#8220;idle time&#8221; are being added to the lead times of any workitem that is in ToDo or Doing states of the workflow process when a Lab Week occurs.</strong></em> I wondered how might this concern, due to a Lab Week policy, appear in any of the metrics and charts that I use often? I&#8217;m also inferring a need to know something about these metrics of interest when the additional seven days due to a Lab Week are not a factor. <em><strong>So, how might these metrics influence policies that don&#8217;t require us to make &#8220;corrections&#8221; to collected data, while still showing us the reality of our system with Lab Weeks occurring six times a year?</strong></em></p>
<h3>A Run Chart and Scatter Plot Data Perspective </h3>
<p>Assume a team was using a run chart showing the number of workitems being completed each reporting interval and had this data plotted over several months now. Along the x-axis I&#8217;d see the reporting interval end dates plotted and vertically above each of these labels I&#8217;d see a point plotted at the appropriate height relative to the scale of increasing incremental counts plotted along the y-axis. Essentially a simple line chart of sorts.</p>
<p>In my experiences with real project data from several software development contexts, these points plotted at each reporting interval when connected created a line that oscillated up and down yet producing a fairly consistent pattern that trended neither upward or downward over time. This consistent alternating pattern gave me a fairly reliable indication of the number, that is a consistent range, of workitems I came to expect to be completed per reporting interval. For example, in one context this range was 7 to 17 &#8220;XP story sized&#8221; workitems completed per two-week reporting interval.</p>
<p>Assume a team was also using a scatter plot showing lead times for completed workitems over time. In similar fashion, the dates plotted along the x-axis were the end dates of the same two week reporting intervals used on the run chart. Plotted along the y-axis were increasing incremental number of days, in this case a scale of increasing incremental days (lead time) required to complete a workitem.</p>
<p>Again, based on my experience with real project data from several software development contexts, I&#8217;d see a large number of these points plotted densely at the lower end of the y-axis and then be less dense at the upper end of the y-axis. That is, this distribution of lead times gave me a fairly reliable indication that 70+ percent of my workitems would complete in seven &#8220;calendar&#8221; days or less. (Note: see my post <span style="color: #0000ff;"><a href="http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/" target="_blank"><span style="color: #0000ff;">here</span></a></span> for examples of run chart and scatter plot; the last &#8220;bar chart&#8221; in this other post essentially is plotting similar info used to create a &#8220;run chart&#8221;.)</p>
<p><em><strong>What might the effects of a Lab Week policy look like on my run charts?</strong></em> Well, with a two-week reporting interval one result may be no noticeable difference. That is, even if I didn&#8217;t have data well established before the Lab Week policy was implemented, the run chart might show reporting intervals at the low end of the range appear about as often where Lab Week occurs as where it doesn&#8217;t. You might be saying, &#8220;A two-week reporting interval that contains a Lab Week has to visually show some &#8216;dips&#8217; on a run chart.&#8221; I wouldn&#8217;t be so sure.</p>
<p>That said, for now let us assume a run chart does show two-week reporting intervals containing a Lab Week are the ones consistently on the low end of the range. What problem does this cause for us? Looking at it from a delivery perspective, it certainly doesn&#8217;t make anyone want to have a workitem in progress during Lab Week. It probably also causes a desire by some to push on or for their workitems as a Lab Week approaches.</p>
<p><em><strong>What might the effects of a Lab Week policy look like on my scatter plots?</strong> </em>Well, with a two-week reporting interval, where most workitems complete in seven days or less, any workitem in ToDo or Doing when Lab Week occurs will likely see their lead time doubled. That is, there would be fewer points plotted in the reporting intervals with a Lab Week (fewer completed workitems) and more &#8220;scatter&#8221; of the points plotted in reporting intervals just after those with a Lab Week (due to the longer lead times for workitems &#8220;idled&#8221; during the prior Lab Week).      </p>
<h3>What Would We Like Our Data to Show? </h3>
<p><strong><em>Would it be preferable for our charts to show that Lab Week has little to no impact?</em></strong> How might we make this happen if we were in fact seeing the &#8220;dips&#8221; and &#8220;scatter&#8221; occuring as described above for the run charts and scatter plots respectively? Instead of &#8220;correcting&#8221; data, is it possible we could make some tweaks and adjustments (&#8220;corrections&#8221;) to our policies that would &#8220;shape&#8221; the data into what we&#8217;d prefer to see? </p>
<p>A Lab Week six times per year works out to implementing one about every seven or so weeks. Staying with the two-week reporting interval for our discussion, every fourth reporting interval that contains a Lab Week, consider doing the following:</p>
<ol>
<li>Implement the Lab Week as the second week of the reporting interval.</li>
<li>During the first week of this interval, if you complete a workitem, don&#8217;t immediately pull the next workitem from ToDo, instead first try to help on any other workitems in progress (Doing) to complete them if possible before theLab Week starts.</li>
<li>If you can&#8217;t do #2, pull a workitem from ToDo only if there is a high probablity you can complete it before Lab Week starts.</li>
<li>If you can&#8217;t do #3, start your Lab Week early, and end your Lab Week early.</li>
<li>If you finish Lab Week early, don&#8217;t immediately pull the next workitem from ToDo, instead first try to help complete, hopefully before the reporting interval ends, any of the workitems in progress (Doing) but idled due to Lab Week.</li>
<li>If you finish Lab Week early and can&#8217;t do #5, try to pull the workitems that have been the longest in ToDo (where typically these would be the larger workitems passed over just before Lab Week started in favor of completing a few more smaller workitems). </li>
</ol>
<h3>Data Shapes Policy, Policy Shapes Data!</h3>
<p>What do you think? Do the &#8220;dips&#8221; in a run chart guide us in shaping the &#8220;corrections&#8221; (tweaks) to policies that would in turn smooth the flow of workitems completing each reporting interval that contains a Lab Week? Could tweaks to these polices in turn shape the run chart and &#8220;smooth&#8221; the dips in reporting intervals that &#8220;contained&#8221; a Lab Week? </p>
<p>Does seeing the &#8220;scatter&#8221; in the scatter plot guide us in shaping the &#8220;corrections&#8221; (tweaks) to policies that minimize the spread of workitem lead times completing just after each reporting interval with a Lab Week? Could tweaks to these polices in turn shape the scatter plot to reduce the the spread in reporting intervals that occur just after a reporitng interval containing a Lab Week? </p>
<p><em><strong>Insights from your data should be used to shape (guide changes to) your workflow process policies, and in turn tweaks to your policies should be used to help shape (create the change in) the workflow process data you wish to see.</strong></em> In particular, to smooth the flow (throughput) of completed workitems and minimize the lead time spread of completed workitems, with both of these contributing to the overall &#8220;predictability, sustainability, and quality&#8221; in your workflow process. </p>
<h3>Who Said Anything About Lowering WIP Limits?</h3>
<p>Okay, now I&#8217;ll mention WIP limits. Were you surprised I hadn&#8217;t mentioned them until now? Well, what do you think, could lowering the upper end of your ToDo column WIP limits as you enter a reporting interval with a Lab Week help? Would this be a policy tweak worth considering?</p>
<p>You might think this is being a bit &#8220;manipulative&#8221; by choosing to &#8220;start the clock&#8221; on fewer workitems during these reporting intervals with a Lab Week. But isn&#8217;t this is a fairer expectation to visualize? That is, wouldn&#8217;t it be better to communicate &#8220;earlier&#8221; that fewer workitems will likely &#8220;enter&#8221; a work-in-progress state in the workflow process during the reporting intervals with a Lab Week?</p>
<p>Isn&#8217;t it more appropriate to leave a few more workitems in the &#8220;backlog&#8221; during these intervals than to consider moving them back after they reach the ToDo or Doing states of your workflow process, or adjusting their lead times after they complete? It might be we simply adjust the replenish policy to reduce the frequency, putting the ToDo column on a bit of a &#8220;diet&#8221; during these reporting intervals with a Lab Week. Or a combination of both. Either way the net effect is to lower &#8220;work in progress&#8221; as we head into a period of &#8220;lower capability.&#8221; Does this sound familiar?</p>
<h3>Closing Thoughts</h3>
<p>Near the top of this post I suggested that what we learn from our response to the original question could extend beyond the original basis. Lab Week represents a time where we know, or at least we assume, in advance that our team&#8217;s normal (capability) will be challenged. What other times do we know a similar challenge will occur?</p>
<p>What about when a two-day holiday occurs next to a weekend? Everyone on the team getting a &#8220;four-day weekend&#8221; can be a big hit to the workflow throughput and workitem lead times. I know these are also popular times for some to request an additional three days off and turn a two-day holiday into a full one-week vacation. What about times of the year when vacation requests are heaviest, like spring breaks for those who have children in schools, or the weeks between Thanksgiving and the New Year here in the U.S.? What about those times set aside for &#8220;annual or quarterly planning&#8221; or even &#8220;performance reviews&#8221; and the like?</p>
<p>Even if you don&#8217;t have &#8220;Lab Weeks&#8221; you could very well have something that causes a similar challenge. Think about these policy tweaks in these contexts also, consider how they might help, and more importantly think about why they might help. </p>
<p>Take care,</p>
<p>Frank </p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2013/03/01/does-data-shape-policy-or-does-policy-shape-data-yes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Kanban Method: Is It Just Scrum With Tweaks or Is There More?</title>
		<link>http://www.vissinc.com/2013/02/18/the-kanban-method-is-it-just-scrum-with-tweaks-or-is-there-more/</link>
		<comments>http://www.vissinc.com/2013/02/18/the-kanban-method-is-it-just-scrum-with-tweaks-or-is-there-more/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 05:53:22 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Kanban Basics]]></category>
		<category><![CDATA[Change Management Tool]]></category>
		<category><![CDATA[Kanban Method]]></category>
		<category><![CDATA[KLRUS]]></category>
		<category><![CDATA[Process Improvement]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=4065</guid>
		<description><![CDATA[“Science and technology revolutionize our lives, but memory, tradition and myth frame our response.” - Arthur M. Schlesinger, Jr., U.S. historian. &#8220;The<a href="http://www.vissinc.com/2013/02/18/the-kanban-method-is-it-just-scrum-with-tweaks-or-is-there-more/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><em style="color: #0000ff;">“Science and technology revolutionize our lives, but memory, tradition and myth frame our response.”</em> - <span style="color: #0000ff;"><em>Arthur M. Schlesinger, Jr., U.S. historian. &#8220;The Challenge of Change,&#8221; New York Times Magazine (July 27, 1986)</em></span></p>
<p><span style="color: #0000ff;"><em> </em></span><em style="color: #0000ff;">“A myth is an image in terms of which we try to make sense of the world.”</em> - <span style="color: #0000ff;"><em>Alan Watts, British-born philosopher, writer, and speaker (1915 &#8211; 1973)</em></span></p>
</blockquote>
<p><img class="size-medium wp-image-4163 alignright" alt="KanbanMagnified_VISS" src="/wp-content/uploads/2013/02/KanbanMagnified_VISS-300x225.png" width="300" height="225" /></p>
<p>&#8220;What is the Kanban Method?&#8221;</p>
<ul class="viss-ul">
<li class="viss-ul">It&#8217;s not about replacing your current software development process.</li>
<li class="viss-ul">It&#8217;s not about changing or removing your team&#8217;s current titles and roles or adding new ones.</li>
<li class="viss-ul">It&#8217;s not about a process that is <i>only</i> for support, maintenance, or &#8220;dev-ops&#8221; teams.</li>
</ul>
<p>Does any of the above surprise you?</p>
<p>If so, maybe it would be useful and helpful to take a closer look at the Kanban Method from a different perspective.</p>
<h3>Kanban Leaders Retreat (KLRUS) </h3>
<p>In November 2012 I attended the Kanban Leaders Retreat (KLRUS) in San Diego. Over two days there I had an opportunity to take part in a number of break out sessions with several other leading coaches, trainers, and practitioners of the Kanban Method. In one of the sessions we focused on identifying some of the &#8220;surprising&#8221; myths and misconceptions we were hearing about the Kanban Method while coaching, training, and working with others. As summarized by some participating, &#8220;there really is a lot of surprising &#8216;stuff&#8217; out there!&#8221; In the context of this post I&#8217;ll limit myself to providing a taste of our discussion there at KLRUS. In particular, focusing for the moment <em><strong>on a misconception I hear often, the Kanban Method: It&#8217;s just Scrum with tweaks</strong></em>.</p>
<p>If you&#8217;re just beginning to learn for yourself about the Kanban Method, I hope this post provides a useful foundational perspective to keep in mind as you continue learning, researching, and reading articles, posts, etc. For others more familiar with the Kanban Method already, I hope it provides a little insight into the misconceptions you&#8217;re likely to run into, if you haven&#8217;t already run into this one, and how some in the community are discussing them in ways we feel will help others see the Kanban Method from a more useful and different perspective.<span id="more-4065"></span> </p>
<h3>Yes, It Starts As Your Current Process with Tweaks, But There&#8217;s More!</h3>
<p>It’s not all that uncommon for me when listening to others discuss the Kanban Method to hear some variant of &#8220;We&#8217;re thinking of switching to kanban because then we won&#8217;t have to do (fill-in-the-blank)&#8221; or &#8220;We&#8217;ve switched to kanban and now we don&#8217;t do (fill-in-the-blank) or “We don’t have (fill-in-the-blank), so we think switching to kanban will be a better fit.” When I hear these types of statements where the context is someone on a team that was using Scrum before applying the Kanban Method, I also often hear their conclusions and some of those &#8220;blanks&#8221; summarized as, kanban is &#8220;just Scrum with tweaks&#8221;, or often more specifically it is &#8220;just Scrum without iterations&#8221;, it is &#8220;just Scrum without time boxes&#8221;, or it is &#8220;just Scrum without estimation.”</p>
<p>Yes, the <strong><em>Kanban Method is about starting with your current process, in your current context, and continually improving it</em></strong>. So, if in a software development context one was using Scrum before applying the Kanban Method, I can see where they may have improved an aspect in their context of their current process by stopping something that is typically considered part of the Scrum process (or by starting something that is typically not considered part of the Scrum process). For example like not continuing to use the same uniformed fixed-length time-box iteration interval across all their process activities. Or, adding the use of lead time and throughput as measures of capability for their current workflow process, then, over time finding they no longer need to do as much upfront estimating using point sizing, ideal days, etc. </p>
<p>When I began learning and applying lean-agile principles in late 2004 and more specifically the  Kanban Method in late 2007, my own personal experience, as an active member of teams delivering production software and meeting business delivery targets, included very similar experiences as those mentioned above (see other posts <span style="color: #0000ff;"><a href="http://www.vissinc.com/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/" target="_blank"><span style="color: #0000ff;">here</span></a></span> and <span style="color: #0000ff;"><a href="http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/" target="_blank"><span style="color: #0000ff;">here</span></a></span>). So, from someone&#8217;s off-the-cuff observer perspective of what our teams were doing, I can see how these “just Scrum with tweaks” like statements might come about and make some sense to those saying them.</p>
<p>However, when you learn <em><strong>the “Kanban Method” is not a software development process at all or is not only for IT/IS support, maintenance or dev-ops&#8221;,</strong></em> then from another perspective it also makes sense to see how a statement like &#8220;just Scrum with tweaks&#8221; is limiting in describing the use or reasons for applying the Kanban Method in your context as a way to improve workflow processes. Limiting in the sense of not fully leveraging its benefits. Probably worse though, sometimes, I think this limited perspective results as well in a stunted perspective and leads to misapplying the Kanban Method. <em><strong>There is more!</strong></em></p>
<h3>The Kanban Method &#8211; A Change Management Tool, a Process Improvement Lens </h3>
<p>When you look closely at the Kanban Method (see <span style="color: #0000ff;"><a href="http://www.vissinc.com/services/kanban-method/" target="_blank"><span style="color: #0000ff;">here</span></a></span>), you&#8217;ll not see it specifically requiring or suggesting the use of iterations, uniformed fixed length timebox iteration interval, upfront estimating, specific roles (ex. scrum master, product owner, etc.), or specific technical practices (ex. automated unit testing, test-driven development, pairing, continuous integration, continuous deployment,  etc.). <em><strong>A lack of specifically mentioning or prescribing these should not be construed as an indication the Kanban Method precludes any use of them either.</strong></em></p>
<p>In your context for a software development or other IT/IS related workflow process, many of these practices may and will contribute to improving your ability to predictably deliver valuable and quality services and products for the benefit of your end users, customers, and business stakeholders. However, you may also find some don&#8217;t, or over time as you continue to learn more about your context and workflow process, you may find it necessary to tweak some, extend some, innovate on some, drop some, and add some new ones to sustain (not fall back or degrade) and improve your capability.</p>
<p>Ask yourself what about your current workflow process hasn&#8217;t improved, that is, changed over the last year or two? While all change is not improvement, all improvement does require change. Could changing from using the same uniform fixed-length time-boxed iteration interval currently used across some set of your workflow process activities allow you to improve some aspect or address some issues in your current workflow process and context? <em><strong>Notice too though the Kanban Method isn&#8217;t specific to just IT/IS or software development workflow processes.</strong></em> It can be applied outside of IT/IS and software development workflow processes in your  organization as well, and most likely should be. <em><strong>So what is it?</strong></em></p>
<h3>Pull, Flow, and Improve </h3>
<p>I like to personally view the Kanban Method as a &#8220;lean and lightweight&#8221; lens, a tool for viewing a workflow process as it is today, then using this &#8220;different&#8221; perspective to learn how one might explore, discover, and identify &#8220;new&#8221; opportunities for improving the process through change, experiments and validation. While a bit more verbose, this personal view aligns and reflects how other leaders in the community describe it, <em><strong>the kanban method itself is not any specific (workflow) process, rather it is a change management tool, a catalyst for continuously improving any current (workflow) process</strong></em>. So, as of late, I&#8217;m working on frequently reminding myself and suggesting to others to think of it more as a tool for exploring, discovering, and identifying the most beneficial opportunities for continuously and incrementally changing (tweaking) and improving your current workflow process, starting from where it is today, and to think less in terms of “switching or replacing” any current workflow process.</p>
<p><em><strong>Try not to let any initial low hanging fruit (tweak) type improvements that you might get simply by simulating (copying) process changes based on observing other teams using it, lure you into the trap of “limited” thinking about what the Kanban Method is and how it can be applied. </strong></em>As you go forward learning more about the Kanban Method yourself, and apply it to your specific context and workflow process,  <em><strong>g</strong><strong>o beyond observing just &#8220;what&#8221; </strong></em>tweaks (change) other teams are doing in their similar workflow processes (ex. decoupling the cadence or frequency of some set of activities so they don&#8217;t all always have to align to the same uniform fixed-length time-box iteration interval).</p>
<p><em><strong>Get to &#8220;how&#8221;</strong></em> they came about making those tweaks (ex. the problem, the impediment, the cost, the delay, the quality issue, the pain point, etc. that motivated the change in their specific context and workflow process, and the tool they used to identify these). <em><strong>Get to &#8220;why&#8221;</strong></em> they thought the tweak would be an improvement, and the criteria and measures they developed and used in validating it (the tweak, the change).</p>
<h3>Closing Thoughts </h3>
<p>I&#8217;ll close with a few more thoughts from elsewhere that I think reflect the comments above and contribute more to developing a helpful perspective and understanding of what the Kanban Method is and what it is not. I don’t recall exactly the source for this first one, but I read somewhere that Toyota, in times past, didn&#8217;t worry much about others including &#8220;competitors&#8221; coming in and &#8220;observing&#8221; their processes. For similar reasons, <em><strong>simulating or copying the process of a team that is using the Kanban Method is very different from learning how to use the Kanban Method to improve your workflow process</strong></em>. </p>
<p>The source for these next ones are scattered excerpts from book &#8220;The High-Velocity Edge&#8221; by Steven J. Spear that I&#8217;ve captured below. I feel they also resonate with a similar helpful message as you consider, learn, and apply the Kanban Method.</p>
<blockquote>
<p><span style="color: #0000ff;"><em>&#8220;Though many firms had embraced various tools&#8230;they still never caught-up.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;These firms had picked up the visible tools of high-velocity organizations&#8230;but they had not understood what these tools were for.&#8221;</em></span></p>
<p><span style="color: #0000ff;"><em>&#8220;The most compelling theme is that when the solution to a problem is discovered, the discovery process itself must be conveyed along with the solution.&#8221;</em> </span></p>
</blockquote>
<p>The Kanban Method  is not just Scrum with tweaks, though it might look like that to some, in particular to a casual observer. Again, take a close look at your current workflow process. Does it seem the easy and early improvements have been made and you feel you&#8217;ve now  plateaued some lately? Is it possible you&#8217;ve only simulated or copied what others have done but not figured out how to tweak it appropriately for your own context to get similar improvements that you see in their context? Did you only look closely at their solutions but not dig into the &#8220;tools&#8221; and the discovery process they used in getting to the tweak they made to their workflow process, be it Scrum or something else? If so, maybe it is time to take another look at the Kanban Method with a new perspective. Maybe it is time to<em><strong> go beyond being a casual observer of the Kanban Method, and if you do, I think and hope that you find,</strong></em> <em><strong>There is more!</strong></em></p>
<p>Take care,</p>
<p>Frank</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2013/02/18/the-kanban-method-is-it-just-scrum-with-tweaks-or-is-there-more/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bottlenecks &#8211; Revisiting the Reading of Cumulative Flow Diagrams</title>
		<link>http://www.vissinc.com/2012/11/27/bottlenecks-revisiting-the-reading-of-cumulative-flow-diagrams/</link>
		<comments>http://www.vissinc.com/2012/11/27/bottlenecks-revisiting-the-reading-of-cumulative-flow-diagrams/#comments</comments>
		<pubDate>Tue, 27 Nov 2012 21:43:53 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Kanban Basics]]></category>
		<category><![CDATA[Kanban Metrics]]></category>
		<category><![CDATA[Bottleneck]]></category>
		<category><![CDATA[CFD]]></category>
		<category><![CDATA[Cumulative Flow Diagram]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=2798</guid>
		<description><![CDATA[&#8220;Queues lie at the root of a large number of product development problems. They increase variability, risk, and cycle time.<a href="http://www.vissinc.com/2012/11/27/bottlenecks-revisiting-the-reading-of-cumulative-flow-diagrams/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><em><span style="color: #0000ff;">&#8220;Queues lie at the root of a large number of product development problems. They increase variability, risk, and cycle time. They decrease efficiency, quality, and motivation.&#8221;</span></em></p>
<p><em><span style="color: #0000ff;">&#8220;Large queues form when processes with variability are operated at high levels of capacity utilization. In reality, the misguided pursuit of efficiency creates enormous costs in the unmeasured invisible portion of the product development process, its queues.&#8221;</span></em></p>
<p><em><span style="color: #0000ff;">&#8220;Since high capacity utilization simultaneously raises efficiency and increases the cost of delay, we need to look at the combined impact of these two factors.&#8221;</span></em></p>
<p><span style="color: #0000ff;"><em>&#8220;We have already pointed out that companies do not manage product development queues. What do they manage? Timelines.</em>..<em><strong>In contrast, when we emphasize flow, we focus on queues rather than timeline</strong><strong>s. Queues are a far better control variable than cycle time because, as you shall see, queues are leading indicators of future cycle-time problems. By controlling queue size, we automatically achieve control over timelines</strong></em>.&#8221;</span></p>
<p><span style="color: #0000ff;">- Don Reinertsen, 2009 &#8211; The Principle of Product Development Flow: Second Generation Lean Product Development</span></p>
</blockquote>
<p>If you&#8217;re new to or rusty on CFDs, it would be helpful to review &#8220;<span style="color: #0000ff;"><a href="http://www.vissinc.com/2011/09/29/basics-of-reading-cumulative-flow-diagrams/"><span style="color: #0000ff;">Basics of Reading Cumulative Flow Diagrams</span></a></span>&#8221; first. This earlier post covers basic definitions and the mechanics of reading WIP (work-in-progress), lead-time, and an average completion rate (throughput) from a CFD. It also includes links to external sources, one showing a basic example of how to create a CFD using MS-Excel, and another providing a quick overview of their use in the kanban method context. From this foundation I&#8217;d like to shift here toward a visual analysis perspective, exploring a few contexts where a bottleneck in our workflow is more or less present and see how it might appear on a CFD.</p>
<p>To be clear, I don&#8217;t think CFDs are the only way or &#8220;a best way&#8221; for spotting a bottleneck in your workflow. If you&#8217;re adequately visualizing your workflow on a board and diligently measuring and managing work items as they flow through your process, you&#8217;re well on the way to being able to identify where any bottleneck might be occurring. (Note: see my Kanban Board Design Primer under <span style="color: #0000ff;"><a href="http://www.vissinc.com/resources/nuggets/"><span style="color: #0000ff;">Resources/Nuggets here</span></a></span>).&nbsp;<strong><em>That said, don&#8217;t under-estimate the value of using the CFD as well for learning about what happened, is happening, or will happen in your workflow. It can be a very effective tool for creating an easily accessible visual historical record and a trending perspective of a workflow in your context.</em></strong></p>
<h3>What is a Bottleneck?</h3>
<p><img class="size-medium wp-image-2807 alignright" title="rail yard" alt="" src="/wp-content/uploads/2012/11/rail-yard-300x200.jpeg" width="300" height="200" />Let us get a shared understanding of the term &#8220;bottleneck&#8221; by first looking at these selected Wikipedia definitions:</p>
<ul class="viss-ul">
<li class="viss-ul">Metaphorically a <strong>bottleneck</strong> is a section of<strong> a route</strong> with a carrying capacity substantially below that characterizing other sections of the same route. This is often a narrow part of a road, perhaps also with a smaller number of lanes, or a reduction of the number of tracks of a railway line.</li>
<li class="viss-ul">In engineering, a <strong>bottleneck</strong> is a phenomenon by which the performance or capacity of an entire system is severely limited by a <strong>single</strong> component.</li>
<li class="viss-ul">A <strong>bottleneck</strong> in project management is <strong>one</strong> process in a chain of processes, such that its limited capacity reduces the capacity of the whole chain.</li>
</ul>
<p>As we continue our discussion, a key point from these definitions to keep in mind is the &#8220;singular&#8221; characteristic. Additionally, I&#8217;ll infer a &#8220;stationary&#8221; characteristic as well for the bottleneck throughout the time reflected by the example CFDs that follow.<span id="more-2798"></span></p>
<h3>A Bottleneck Without WIP Limits</h3>
<div id="attachment_2919" class="wp-caption alignleft" style="width: 310px"><a href="/wp-content/uploads/2012/11/BottleneckCFD_Run01A.png"><img class="size-medium wp-image-2919   " title="BottleneckCFD_Run01A (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/11/BottleneckCFD_Run01A-300x159.png" width="300" height="159" /></a><p class="wp-caption-text">Figure 1 &#8211; No WIP Limits Used</p></div>
<p>In the first example, the CFD is derived from a workflow that didn&#8217;t utilize WIP limits (see Figure 1, <strong>click image to enlarge</strong>, and note for this post I&#8217;ve chosen to run CFDs with latest date intervals on the right and earlier date intervals scrolling off to the left, which is more common, but again it&#8217;s a preference, not required). The workflow states shown include Design, Code, Test, Deploy, and Done. In this first example, do <em><strong>you clearly see work items are arriving into Design at a rate significantly greater than they are exiting from Deploy</strong></em> and entering the Done state?</p>
<p>What else stands out here? The width of the Design and Deploy states of the CFD remain relatively consistent over the reporting intervals, and they&#8217;re also narrow relative to the other states. In contrast, <em><strong>the Code and Test states get wider over time.</strong></em> What does this tell us? Recall, no WIP limits are being used here, so in this context, upstream of a &#8220;bottleneck&#8221; work items will back up, over time taking longer and longer to get through this point, and through the entire workflow end to end.</p>
<p>But which process state is the bottleneck? Clearly <em><strong>the Test state shows the point in the workflow where the greatest backing up is occurring, or more precisely appears to be the &#8220;single&#8221; component that is severely limiting the entire system.</strong></em> But what else do you see in this CFD?</p>
<p>Note the &#8220;flat-shelves&#8221; that occur on the CFD chart line between the Test and Deploy states (ex.&nbsp;look vertically straight up from Reporting Interval 57). What causes these to appear in this CFD? The &#8220;shelf&#8221; at Reporting Interval 57 shows a &#8220;purple&#8221; gap exists for the Deploy state, but there is no such gap (no purple) for the Deploy state at Reporting Interval 81 and 83. Is there any WIP for the Deploy state near Reporting Interval 81 and 83?&nbsp;Do you see any similar &#8220;shelves&#8221; on the CFD chart line between the Code and Test states (ex. Reporting Intervals 20 and 26)? Do shelves occur less frequently between the Code and Test states and do any show no WIP (no &#8220;green&#8221; gap) existing in the Test state?</p>
<p>When a shelf occurs, no work items are moving from the upstream workflow process state to the adjacent downstream state. When WIP limits are in place, it&#8217;s possible that an upstream state could be &#8220;blocked&#8221; from moving a work item downstream even when all the work for that upstream state is completed for one or more work items. But for this example, <em><strong>since there are no WIP limits being used, nothing is blocking the Test state. When no work items are passed from Test to Deploy during a reporting interval, it is due to none having their testing &#8220;completed&#8221; &nbsp;during that reporting interval.</strong></em></p>
<p><em><strong>We also see the Deploy state is frequently &#8220;starved&#8221;, with no work items (no purple, no WIP) for several reporting intervals.</strong></em>&nbsp;When a process state frequently has no WIP, is this another characteristic to look for in a CFD when determining where a &#8220;significant&#8221; limiting factor might exist for the overall system?</p>
<blockquote>
<p><span style="color: #0000ff;">Note: It would&#8217;ve been time consuming to collect real world project data for each CFD example, and no simple task to manually generate data for a useful number of work items in each example as well. Instead, I utilized an MS-Excel based kanban simulation tool (developed by Mark Robinson, <em>available at <a href="http://www.excelville.com/file/246/Kanban+simulator" target="_blank">Excelville.com</a></em>). Using Mark&#8217;s tool I was able to easily and quickly model the processing of 100 work items through a fixed number of workflow process states (Design, Code, Test, Deploy, and Done) for a number of different runs.</span></p>
<p><span style="color: #0000ff;">The desired example models were created by adjusting the WIP limits and the level of effort limits in each process state of the workflow for the work items. These settings and summary statistics generated for individual runs were captured and placed above each CFD example. Since the output for each run required additional processing to create specific counts and reporting intervals needed to create a CFD, I used an MS-Excel companion workbook to code VBA routines to automate with a button click all the additional processing of the raw data, along with capturing the parameter settings, and generating the CFD.</span></p>
<p><span style="color: #0000ff;">By reviewing these settings for Team Size, WIP Limits, and Min, Max &#8220;level of efforts&#8221; for the various workflow states, and understanding the tool simulates rolling of dice to process work items, and being fairly confident it uses FIFO with no capacity allocated across functions or carried over reporting intervals, you should be able to get any necessary appreciation for how I used it to model the various examples.</span></p>
</blockquote>
<h3><span style="color: #000000;">Using a WIP Limit to Protect and Buffer Your Bottleneck</span></h3>
<div id="attachment_2925" class="wp-caption alignright" style="width: 310px"><a href="/wp-content/uploads/2012/11/BottleneckCFD_Run02A.png"><img class="size-medium wp-image-2925   " title="BottleneckCFD_Run02A (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/11/BottleneckCFD_Run02A-300x159.png" width="300" height="159" /></a><p class="wp-caption-text">Figure 2 &#8211; Protecting &amp; Buffering a Bottleneck</p></div>
<p>Picking up from our first CFD example above, <em><strong>I added a single WIP limit of 2</strong></em> (hint: based on team size, min, max settings for test, and simulating dice rolls)&nbsp;to the Test workflow state (see Figure 2, <strong>click image to enlarge</strong>)&nbsp;. This was in essence to model the accomplishing of a couple of goals.</p>
<p>The first, was <em><strong>to protect the Test state from being overrun.</strong></em> Why? As per the quotes at the top of this post, in a real software development context, that ever growing Test backlog causes problems.&nbsp;Secondly, <em><strong>to provide a buffer for the Test state, against the inherent variability in work item size and arrivals</strong></em>, to ensure it always has work to pull from, since starving the &#8220;bottleneck&#8221; of a system can only lengthen the time it takes to get work items completed.</p>
<p><strong><em>The resulting CFD shows a markedly reduced and uniform width for the Test state</em></strong>&nbsp;indicating the added WIP limit helped reduce the overall time a work item spends in this state. However, notice we still see shelves occurring between Test and Deploy, and where Deploy WIP goes to &#8220;zero&#8221; (starves). Why?</p>
<p><em><strong>Applying a WIP limit and observing lead times decreasing for the Test state does not mean the number of work items per reporting interval (the rate) &nbsp;that &#8220;complete&#8221; (exit) the Test state increases (automatically).</strong></em>&nbsp;In a real world software development context, this single WIP limit would likely help in a number of ways to complete work items in less overall time for the Test state. One obvious way is the WIP limit &#8220;controls&#8221; when the clock starts on tracking time in the Test state, therefore, overall work items spend less time physically &#8220;waiting&#8221; in this state before being &#8220;actively&#8221; worked on. But another possible real world effect might be less overhead (lost capacity) managing a large and mostly idle backlog. Another, might be less context switching (lost capacity) between now fewer &#8220;partially active&#8221; work items, which could likely contribute to less in-process mistakes (improving quality) and less rework (lost capacity). While the rate of work items completing Test might increase due to these real world benefits, for other real world reasons it may simply remain the same (or could even possibly decline). However, a large Test queue here isn&#8217;t without costs either, and an appropriate WIP limit did help to create predictability in the Test state lead times, which in many real world contexts is a step toward balancing the overall system costs. &nbsp;</p>
<blockquote>
<p><span style="color: #0000ff;">Note: The point above regarding the exit rate is a subject worth more discussion, but one I won&#8217;t dive into here. Still, understanding and being aware of this, is important in any real world context. It is also why we continue to see shelves between Test and Deploy in Figure 2. Once a work item reaches the Test state, the simulation tool simply processes the work items as it did before when there wasn&#8217;t any WIP limit controlling the entry. That is, its simple processing rules don&#8217;t model effects like increased capacity benefits from reduced context switching, or reduced overhead and potentially less rework from managing a much smaller backlog. Still, for the purposes of seeing examples of how a bottleneck might appear in a CFD, it is plenty useful.</span></p>
</blockquote>
<p>The other &#8220;obvious&#8221; effect of this single added WIP limit is <em><strong>the Code state now looks like it could be a &#8220;bottleneck&#8221; in our workflow. But is it really a bottleneck?</strong></em> There are now quite a number of noticeable shelves between the Code and Test states in the CFD, much more than we saw in Figure 1. Why? By adding the WIP limit to the Test state, work items in the Code state now have to &#8220;wait&#8221; more often before proceeding to Test. Notice also there are no shelves where the Test WIP goes to &#8220;zero&#8221; waiting for work items from the Code state. Do both of these observations suggest the Code state is not the bottleneck of this workflow?</p>
<h3>Applying WIP Limits Upstream of the Bottleneck</h3>
<div id="attachment_3001" class="wp-caption alignright" style="width: 310px"><a href="/wp-content/uploads/2012/11/BottleneckCFD_Run04B.png"><img class="size-medium wp-image-3001 " title="BottleneckCFD_Run04B (Click Image to Enlarge) " alt="" src="/wp-content/uploads/2012/11/BottleneckCFD_Run04B-300x159.png" width="300" height="159" /></a><p class="wp-caption-text">Figure 3 &#8211; Applying WIP Limits End to End</p></div>
<p>In this next CFD example, <em><strong>WIP limits are applied upstream of the Test state to the Code and Design states as well</strong></em> (see Figure 3,&nbsp;<strong>click image to enlarge</strong>). This models a &#8220;kanban pull system&#8221; from Design thru Test states in the workflow. What immediately stands out?&nbsp;First, just as we saw adding the single WIP limit earlier produced a predictable lead time for the Test state, we now see these additional WIP limits produce a very predictable lead time expectation for work items passing through the entire modeled workflow. Is this beneficial?</p>
<p>Recall, in the earlier examples, the overall WIP of the workflow (from entering Design to exiting Deploy) at any specific reporting interval increased in the subsequent reporting interval. We can infer the lead times for work items passing through the system was &#8220;increasing&#8221; too as we progressed through the reporting intervals. <em><strong>Adding the WIP limits upstream of the Test state, to the Design and Code states, produced a system where the overall WIP at any specific reporting interval, in particular after Reporting Interval 11, stabilized more or less, creating relative lead time predictability as we progressed through the reporting intervals.</strong></em>&nbsp;But where did the &#8220;visible backlog glut&#8221; go?&nbsp;</p>
<p>The work items in this simulated example simply enter the workflow at a slower rate, over a longer period of time taking more reporting intervals to complete all the work items. But, again, this is only a model derived from a simple simulation tool. <em><strong>In a real world software development context, there are likely benefits from reducing and managing overly large queues that can help to increase the rate of completing (quality) work items</strong></em> as I mentioned earlier. While the predictability created is possibly a significant business value on its own (ex. helping to define meaningful lead time SLAs or system throughput measures), it&#8217;s also creates a foundation for meaningful process improvement efforts, a baseline, from which proposed process changes can be objectively measured and evaluated.</p>
<p>The other observation that stands out here is the &#8220;shelves&#8221; now appear frequently and on all the lines of the CFD chart. Why? Again,&nbsp;adding WIP limits causes work items in upstream states to &#8220;wait&#8221; more often before proceeding. Notice too, upstream of the Test state, there are no shelves where there the WIP goes to &#8220;zero&#8221;, these (starving) shelves still only appear for the Deploy state. Look at Reporting Intervals 57, 59, and 61, where the CFD shows clearly the Design and Code states are in a &#8220;holding pattern&#8221; and the Deploy state &#8220;starving&#8221; for work (WIP of zero), all&nbsp;waiting for the Test state to finish up work items.&nbsp;Clearly, the Test state has the characteristics of a bottleneck, right?</p>
<h3>How Might Addressing the Bottleneck Change the CFD?</h3>
<div style="float: left;">
<div id="attachment_3024" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run11D.png"><img class="size-medium wp-image-3024" title="BottleneckCFD_Run11D (Click Image to Enlarge)" alt="" src="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run11D-300x160.png" width="300" height="160" /></a><p class="wp-caption-text">Figure 4A &#8211; First Test State Improvement Effort</p></div><br />
<div id="attachment_3025" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run12D.png"><img class="size-medium wp-image-3025" title="BottleneckCFD_Run12D (Click Image to Enlarge)" alt="" src="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run12D-300x160.png" width="300" height="160" /></a><p class="wp-caption-text">Figure 4B &#8211; Second Test State Improvement Effort</p></div><br />
<div id="attachment_3026" class="wp-caption alignleft" style="width: 310px"><a href="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run13D.png"><img class="size-medium wp-image-3026" title="BottleneckCFD_Run13D (Click Image to Enlarge) " alt="" src="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run13D-300x160.png" width="300" height="160" /></a><p class="wp-caption-text">Figure 4C &#8211; Third Test State Improvement Effort</p></div>
</div>
<p>In this next CFD example, I modeled three successive improvement efforts on the the Test state (see Figure 4A, 4B, and 4C, <strong>click each image to enlarge</strong>). Looking first at Figure 4A, what immediately stands out?</p>
<p>The first, is the shelves appear less frequent. Why? Obviously due to the ability to process work items more quickly through the Test state, the Code state is now blocked less often from passing work items downstream as soon as coding is completed. In turn, the Design state too is now blocked less often by the Code state being blocked.</p>
<p>Secondly, while there are still reporting intervals where the Deploy state is &#8220;starved&#8221;, these periods are now mostly shorter than in the earlier examples. Again, this is due to the improved performance of the Test state.</p>
<p>After two more runs that modeled further improvements to the Test state, the resulting CFDs respectively show even fewer shelves. Notice too the Test state band after the third improvement now becomes fairly narrow relative to the Code state. While there are still reporting intervals where the Deploy state is &#8220;starved&#8221;, they have become even less frequent now.</p>
<p>As a final observation, notice the &#8220;Average time to complete&#8221; metric goes from 12.4 down to 8.0 after the first modeled improvement effort to the Test state, then down to 7.1 after the second modeled improvement effort, then down to 6.3 after the third modeled improvement effort. Does this add even more support that the Test state was in fact the &#8220;bottleneck&#8221; for the modeled workflow?</p>
<blockquote>
<p><span style="color: #0000ff;">Note: After reviewing these three example CFDs closely, I think Figure 4B (derived after the second modeled process improvement effort to the Test state) showed the &#8220;smoothest&#8221; overall workflow even though its &#8220;Average time to complete&#8221; metric is slightly higher than Figure 4C (derived after the third modeled process improvement to the Test state). Again, this is only a simulation, but this observation reminded me that focusing improvement on the bottleneck could &#8220;eventually shift&#8221; where it is in your workflow.&nbsp;After the third improvement, there are reporting intervals where the Test state WIP goes to &#8220;zero&#8221; and it appears to happen more frequently than for the Code state.&nbsp;Does this noticeable &#8220;turbulence&#8221; appearing in the CFD chart lines in Figure 4C relative to the &#8220;smoothness&#8221; in Figure 4B help indicate the third improvement effort on the Test state moved the system close to this shift? &nbsp;What might this &#8220;turbulence&#8221; suggest about the &#8220;bottleneck&#8221; in this workflow example?</span></p>
</blockquote>
<h3>How Might Addressing a Non-Bottleneck Change the CFD?</h3>
<p>I couldn&#8217;t help but run one last CFD example to &#8220;validate&#8221; my expectation about what happens if I had modeled an improvement effort on the Code state instead of the Test state. That is, picking up from the example that created Figure 3 above, if I model an improvement to the Code state, and left the Test state untouched, what might be your expectation? The result of this last example modeled is the CFD below (see Figure 5, <strong>but DON&#8217;T click the image to enlarge just yet</strong>).</p>
<div id="attachment_3080" class="wp-caption alignright" style="width: 310px"><a href="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run17F.png"><img class="size-medium wp-image-3080 " title="BottleneckCFD_Run17F (Click Image to Enlarge)" alt="" src="http://www.vissinc.com/wp-content/uploads/2012/11/BottleneckCFD_Run17F-300x160.png" width="300" height="160" /></a><p class="wp-caption-text">Figure 5 &#8211; Improving a Non-bottleneck state</p></div>
<p>If the Test state is the bottleneck, would a modeled improvement to the Code state reduce the &#8220;Average time to complete&#8221; metric? Looking back at our earlier definitions for a bottleneck would suggest no, right? So, before you click to enlarge the Figure 5 image, one last time are you on-board with the Test state being the bottleneck?</p>
<p>Alright then, with your expectation now firmly in place, click on the image to enlarge and see for yourself what happened to the &#8220;Average time to complete&#8221; metric after I modeled an improvement to the Code state rather than the Test state. &nbsp;</p>
<p>Well, was your expectation met? Look at the chart lines now more closely. How different in terms of the chart line characteristics does the CFD in Figure 5 appear from the CFD in Figure 3?&nbsp;How different are the CFD chart line characteristics in Figure 5 from the CFD in Figure 4A or 4B?</p>
<p>Now, ask yourself, &#8220;where are you making improvements in your workflow today?&#8221; Where in your workflow are these improvements having a desired impact?&nbsp;Are you seeing the benefits from these efforts that you were expecting?</p>
<h3>Closing Thoughts&nbsp;</h3>
<p>If the modeled examples helped you better understand how bottlenecks might appear in a CFD, it would be helpful (and appreciated) to hear from you and learn how they helped, or also hear what is still puzzling.</p>
<p>The last thought I&#8217;ll close with is that a root cause analysis of any bottleneck should still be done carefully. In these examples, the Test state may be where the &#8220;bottleneck&#8221; appears in the CFD but an effective root cause analysis could lead you to something occurring elsewhere in the workflow. Maybe the Code state is producing very poor code. Could some of that &#8220;excess capacity&#8221; in the Code state go toward adding unit testing that would improve the quality and possibly see improvement in the Test state and the overall workflow lead time? Maybe the Design state is producing very hard to test solutions. Could using some of that &#8220;excess capacity&#8221; in the Design state to add some acceptance test driven development (ATDD) to the mix help reduce the testing effort further downstream in the Test state and improve the overall workflow lead time? Anything that directly or indirectly helps to reduce the efforts needed in the Test state in these examples would likely lead to an overall improvement to the workflow lead time, right? &nbsp;</p>
<p>The CFD tool, like other tools, really only helps you see an issue exists and hints where to begin an effective root cause analysis. It can help you get to better questions faster, but as I like to say often regarding any tool, &#8220;Thinking is still required.&#8221;</p>
<p>Take care,</p>
<p>Frank</p>
<p>&nbsp;</p>
<p>Additional helpful references:</p>
<p>David J. Anderson, see these two posts titled “<span style="color: #0000ff;"><em><a href="http://agilemanagement.net/index.php/Blog/2008/04/" target="_blank"><span style="color: #0000ff;">Two Types of Bottlenecks</span></a></em></span>” and “<span style="color: #0000ff;"><em><a href="http://agilemanagement.net/index.php/Blog/2008/04/" target="_blank"><span style="color: #0000ff;">Detecting Bottlenecks in a Kanban System</span></a></em></span>”&nbsp;(they are both at the same location, blog post, April, 2008, scroll down to see the second).</p>
<p>David J. Anderson,&nbsp;<em>Kanban</em>, (2010); foundational book on implementing concepts of limiting work-in-progress in software development context.</p>
<p>Donald G. Reinertsen, <em>The Principles of Product Development Flow: Second Generation Lean Product Development</em>, (2009); indispensable resource for learning about &#8220;the science&#8221; of managing and improving workflows.</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/11/27/bottlenecks-revisiting-the-reading-of-cumulative-flow-diagrams/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Little&#8217;s Law: Isn&#8217;t It a Linear Relationship?</title>
		<link>http://www.vissinc.com/2012/09/07/littles-law-isnt-it-a-linear-relationship/</link>
		<comments>http://www.vissinc.com/2012/09/07/littles-law-isnt-it-a-linear-relationship/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 20:16:58 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Kanban Basics]]></category>
		<category><![CDATA[Kanban Metrics]]></category>
		<category><![CDATA[Little's Law]]></category>
		<category><![CDATA[Data Analysis]]></category>
		<category><![CDATA[Utilization]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=2118</guid>
		<description><![CDATA[“Here’s the bottom line: the number one driver for shipping products quicker is by focusing on the important ones and<a href="http://www.vissinc.com/2012/09/07/littles-law-isnt-it-a-linear-relationship/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>“Here’s the bottom line: the number one driver for shipping products quicker is by focusing on the important ones and killing the unimportant ones.”</em></span></p>
<p><span style="color: #0000ff;"><em>“You might be thinking: ‘True, but couldn&#8217;t we also increase the average completion rate’? You’re right, but the impact of doing that is much lower than reducing the TIP (things-in-process) — that is, influencing the average completion rate is rather difficult and is often a function of available resources, scope creep, market demands and changes, etc.”</em></span></p>
<p><span style="color: #0000ff;">- Pete Abilla, Nov 2006, Little’s Law for Product Development</span></p>
</blockquote>
<p><img class="alignleft size-medium wp-image-2410" title="Little's Law (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/09/vissinc.com_littleslaw_eq-300x222.jpg" width="300" height="222" />A few weeks back Arne Roock (see his posts <span style="color: #0000ff;"><a href="http://www.software-kanban.de/" target="_blank"><span style="color: #0000ff;">here</span></a></span>), a fellow kanban/lean-agile practitioner, pinged me with a question related to Little’s Law and utilization. Paraphrasing, essentially it was <strong><em>“Q</em></strong><strong><em>ueuing theory states that the speed of networks decreases dramatically (non-linearly) as utilization increases more than 80%. But according to Little‘s Law (given a stable system), Lead Time increases linearly if we increase WIP (which increases utilization). Why doesn&#8217;t Little’s Law show lead time going up exponentially from a certain point on (ex. past 80% utilization)?”</em></strong> This resulted in exchanging a couple emails discussing the use of Little&#8217;s Law, and why and how in the software development context an increase in work-in-progress could result in a non-linear increase in lead time. This post captures and reflects some of the thoughts we shared. My assumption is you&#8217;ve wondered too about similar questions. If so, I hope you&#8217;ll find this post interesting and helpful.<span id="more-2118"></span></p>
<h3><strong>Little’s Law: In a Nutshell</strong></h3>
<p>First, starting out we&#8217;ll get on the same page with a quick review of Little&#8217;s Law.</p>
<blockquote>
<p><span style="color: #0000ff;">Note: I see Little’s Law represented and labeled various ways when applied to different contexts and scenarios. The versions here are based primarily on my personal application of it in the software development context.</span></p>
</blockquote>
<p>Little’s Law is typically defined as follows:</p>
<p style="padding-left: 30px;"><em>L</em> = λ <em>W</em></p>
<p>Where:</p>
<p style="padding-left: 30px;"><em>L</em> = average number of work items in a queuing system over a period of time</p>
<p style="padding-left: 30px;">λ = average number of work items arriving into the queuing system over some unit time</p>
<p style="padding-left: 30px;"><em>W </em>= average time a work item spends overall in the queuing system</p>
<p>Applying some basic algebra, Little’s Law is often re-organized and re-labeled for use in the software development context as follows:</p>
<p style="padding-left: 30px;"><em>LT</em> = <em>WIP</em> / <em>Throughput</em></p>
<p>Where:</p>
<p style="padding-left: 30px;"><em>LT</em> = average “lead time&#8221; of how long it takes a work item to move through the workflow from start to delivery</p>
<p style="padding-left: 30px;"><em>WIP</em> = average # of work items you&#8217;ll see in progress at any time in the workflow over some period of time of interest</p>
<p style="padding-left: 30px;"><em>Throughput</em> = average # of work items (exiting) the workflow per some unit time</p>
<p>Observe the changes include substituting <em>Throughput, </em>an &#8220;average completion rate&#8221; (ACR), for an average arrival rate in the original form. In the software development context the work items are typically things like a new user story, a change request, or a bug fix. </p>
<blockquote>
<p><span style="color: #0000ff;">Note: See my earlier post <a href="http://www.vissinc.com/2011/09/29/basics-of-reading-cumulative-flow-diagrams/#anchorpt1" target="_blank"><span style="color: #0000ff;">here</span></a> for a bit more discussion of Lead time versus Cycle time in a software development context and how it might impact a discussion on duration or effort tracking. </span></p>
</blockquote>
<h3>Little&#8217;s Law: A Quick Test Drive</h3>
<p>Now let&#8217;s take the second form of Little&#8217;s Law above for a quick &#8220;classroom context&#8221; test drive. It&#8217;s a simple ratio, so by holding <em>Throughput</em> (the denominator) constant, it&#8217;s easy to see when <em>WIP </em>(the numerator) increases, then <em>LT</em>(the quotient) will increase in a proportional manner. Nothing difficult about this classroom context and scenario, right?</p>
<p><em><strong>But does the assumption that we can hold Throughput constant as WIP increases hold up often?</strong></em>We&#8217;ll revisit this question in a bit, but let&#8217;s also get on the same page with assumptions that Little&#8217;s Law is based on first.</p>
<h3>Little&#8217;s Law: Assumptions</h3>
<p>There are only a few, and here&#8217;s my short version: all three parameters in Little&#8217;s Law have to be in the “same units”, and each must be a “long running” average in a “stable&#8221; system. The first assumption is easy. If you&#8217;re specifying <em>Throughput</em> in work items per day then <em>WIP </em>needs to be measured in &#8220;equivalent&#8221; work items. For example, in a software development context, if you measure an average rate for <em>Throughput</em> using task level work items completed per day don&#8217;t use an average <em>WIP </em>measured in story level work items. </p>
<p>However, the last two assumptions are a bit more complicated because there are nuances specific to different contexts and scenarios. Being aware nuances exist and understanding them is important, but discussing them in detail is beyond the scope of this post. For now, I&#8217;ll point you to this reference for more information on these nuances (see Ch. 5 &#8211; Little&#8217;s Law, by Dr. Stephen C. Graves, Professor of Mechanical Engineering and Engineering Systems at M.I.T.). Still, I&#8217;ll include just-enough-detail here to show why and how they are important. </p>
<h3>Little&#8217;s Law: Long Running Averages and a Stable System</h3>
<p><a href="/wp-content/uploads/2012/09/vissinc.com_littleslaw_watertanks.jpg" target="_blank"><img class="alignleft size-medium wp-image-2231" title="Water Tanks Example (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/09/vissinc.com_littleslaw_watertanks-300x237.jpg" width="300" height="237" /></a>Time to get our feet wet with Little&#8217;s Law and these assumptions using a simple real world context and scenario. My sketch of two water tanks (click on image to enlarge) is inspired by an example of Little&#8217;s Law found <span style="color: #0000ff;"><a href="http://www.squidoo.com/how-to-use-little-s-law-to-improve-production-lead-time" target="_blank"><span style="color: #0000ff;">here</span></a></span>. </p>
<p>In the left tank, water arrives and exits at the same rate (2 gal./hr.), so over time, <em>Throughput</em>,<em> </em>the water exiting remains constant. Also, the water level in the tank, <em>WIP,</em> remains constant over time (5 gal). Since no water gets stuck to the side of the tank, over time the average time, <em>LT, </em>it takes for any one molecule (or a gal.) to pass through the tank is constant. Again, as long as we&#8217;re consistent for both <em>Throughput</em> and <em>WIP</em>, we can use units of molecules, or gals., or whatever is best for our context.  </p>
<p>Applying Little&#8217;s Law we get 5 gal. / 2 gal. per hr. to yield a <em>LT </em>of 2.5 hrs. Let&#8217;s step through this too. If water stopped flowing into the tank, all the water would pass through in 2.5 hours based on the exit rate. Replacing the water at the same rate it exits simply keeps the water level at 5 gal. while water entering passes through the tank on average in 2.5 hours. </p>
<p>Now we&#8217;ll utilize more of the water tank, increasing the flow in until it reaches the new water mark (20 gal.), then back off the flow going in to a rate again equal to the water exiting the tank (2 gal. / hr.). We keep the <em>Throughput, </em>water exiting the tank, constant during this time, so the same number of molecules (or gals.) are exiting the tank as before the water began arriving at a faster rate.</p>
<blockquote>
<p><span style="color: #0000ff;">Note: I&#8217;m focusing on the case as we increase <em>WIP,</em> since this is really the heart of the original question regarding Little&#8217;s Law and a system&#8217;s utilization as it increases. I acknowledge there is another side related to what happens when we lower <em>WIP</em> beyond a certain point, that I&#8217;m not addressing at all in this post.</span></p>
</blockquote>
<p>While water arrives faster than it is exiting, <em>WIP</em> is not a long running average, but is increasing over this time, right? Is the system in a stable state during this time? If we&#8217;re increasing the <em>WIP</em> of water in the tank, by Little&#8217;s Law, we&#8217;d expect an increasing<em> </em>average <em>LT</em> for our water molecules (or gals.), right? But, is it appropriate to use Little&#8217;s Law during this time that water is arriving faster than exiting? </p>
<p><em>Throughput</em> was constant as <em>WIP</em> increased during this time. Still, <strong><em>in our simple water tank example the system becomes &#8220;stable&#8221; again only when the flow of water arriving in the tank returns a rate equal to the water exiting.</em></strong> Once the system is stable, then Little&#8217;s Law yields a new long running average <em>LT </em>at this higher<em> <em>WIP</em></em>. We see 20 gal. / 2 gal. per hr. yields a new long running average <em>LT</em> of 10 hrs. The increase in <em>LT </em>is again proportional with the increase in <em>WIP</em> which is now four times greater.  <em><strong>Note though there&#8217;s no mention of utilization levels in the assumptions that Little&#8217;s Law is based on</strong>.</em> </p>
<h3><strong>Little&#8217;s Law: Utilization Effect</strong></h3>
<p>So, is Little&#8217;s Law a &#8220;linear&#8221; relationship such that an increase in <em>WIP</em> always produces a proportional increase in <em>LT</em>? Let&#8217;s revisit that earlier question, can we assume we&#8217;ll hold <em>Throughput </em>constant in our second form of Little&#8217;s Law as we increase <em>WIP</em>? </p>
<p>The water tank example is a context and scenario for using Little&#8217;s Law that is pretty simple, as it models a fairly &#8220;continuous and uniform workflow.&#8221; The value of walking through this simple example for me is that it helps see the importance of understanding the assumptions. <em><strong>The why and how regarding using same units is pretty evident. Hopefully now, so is the why and how related to having long running averages and a stable system before using Little&#8217;s Law. </strong></em></p>
<blockquote>
<p><span style="color: #0000ff;">Note: For me, another critical point to catch here is the importance of a <em>WIP </em>limit. Even setting just one at the overall system level to start, even if it appears &#8220;impractically high&#8221; at first, a <em>WIP</em> limit helps create and maintain a stable system enabling the (effective) use of this helpful tool (Little&#8217;s Law), for learning, understanding, managing, and more effectively validating if changes improved your workflow.</span></p>
<p><span style="color: #0000ff;">When someone says they&#8217;re not using “explicit” work limits, and claim they’re “successfully” delivering for the most part on-time, and there exists a clear sizeable backlog of pending work,  after “digging” a little deeper I commonly find one or both of these things. </span></p>
<p><span style="color: #0000ff;">The first, someone (usually an experienced, skillful project manager) is employing &#8220;implicit&#8221; work limits, by effectively deferring some work items often through reducing scope or fidelity of features, and making efforts to manage expectations and mitigating visible risks. This is &#8220;good project management&#8221; in my opinion, but I don&#8217;t see this often.  The second is, quality really could be much better and there is a significant amount of &#8220;hero effort&#8221; needed. </span></p>
<p><span style="color: #0000ff;">The disadvantage of an implicit way that I observe is the lack or poor visibility contributes yet even more to a process being subjective, often more political, enables more circumventing, encourages more context switching, often requires more &#8220;unplanned&#8221; over-time, often produces more bugs and  hacks, etc. Yes, I see explicit work limits ignored too with similar results. However, having worked both ways my <em><strong>experience</strong></em> still leads me to <em><strong>believe</strong></em> determining and visualizing <em>WIP</em> limits that closely reflect current capabilities of the environment, then creating <strong><em>behaviors</em></strong> through polices to manage your workflow with respect to these limits, <strong><em>results</em></strong> in a more effective (less subjective) context for surfacing root causes of delay and poor quality, and making and validating helpful changes.</span></p>
</blockquote>
<p>But will workflows in the computer network or software development contexts and scenarios be as uniform or continuous as water? If not, how might this change things with using Little&#8217;s Law? In a software development context, I immediately thought about how context switching, if not managed (with workflow policies) as <em>WIP</em> increased, could make it difficult to keep <em>Throughput</em> constant. </p>
<p>For example, looking back at the second form of the equation again:</p>
<p style="padding-left: 30px;"><em>LT</em> = <em>WIP</em> / <em>Throughput</em></p>
<p>if context switching began occurring heavily as <em>WIP</em> increased causing <em>Throughput</em> to decrease, then we&#8217;d see an increasing numerator over a decreasing denominator. In this case, when (if) the system became stable once again, plugging into Little&#8217;s Law the new higher long running average <em>WIP </em>along with the new lower long running average <em>Throughput, </em>then the quotient, <em>LT</em> will increase non-linearly, not proportionally, relative to this new long running average <em>WIP</em>. Again, <em><strong>when Throughput doesn&#8217;t remain constant but instead decreases as WIP increases we&#8217;ll see a non-proportional increase in LT relative to the increase in </strong><strong>WIP.</strong> </em></p>
<h3><strong>Summary</strong></h3>
<p>The key points from my email discussion with Arne can be summarized as follows: <em><strong>1) it is important to know and understand the assumptions that Little&#8217;s Law is based on including the nuances for your context and scenario; 2) depending on your context and scenario, Little&#8217;s Law can yield a result for LT that is proportional to an increase in WIP as well as one that may be non-linear relative to an increase in WIP.</strong></em></p>
<p>Speaking more specifically for the moment about the second form presented above, we need to make sure our system is stable with long running averages for <em>WIP</em> and <em>Throughput</em> before any calculation of a long running average for <em>LT</em> can be made. If <em>Throughput </em>remained constant as <em>WIP</em> was increased to a new level, then the new value for <em>LT </em>will be an increase proportional to the increase in <em>WIP</em>. However, when an increase in <em>WIP</em> is accompanied with a decrease in <em>Throughput</em> (ex. context switching in a software development context and scenario), the new value for <em>LT</em> will be a non-proportional increase relative to the new increased <em>WIP </em>level.</p>
<p>Over the next few days though I realized there is more to Arne&#8217;s initial question. I felt we didn&#8217;t dig into the first part of the question enough. Yes, while these key points summarized above related to Little&#8217;s Law were helpful to discuss, they don&#8217;t touch on the core of why in a computer network context a non-linear decrease in speed occurs as utilization increased above 80%. In retrospect, maybe this wasn&#8217;t really at the core of Arne&#8217;s question to me either. <strong><em>Still, over the next few days I wondered more about why and how the non-linear decrease of speed in computer networks occurs at higher utilization. More importantly could this be helpful to me in creating and shaping the polices that manage software development workflows at higher WIP levels? </em></strong>As you might guess by now, I&#8217;ve dived into this question too a bit already and learned some interesting  things I think would be helpful to capture and share, but this definitely will have to wait for another post.</p>
<p>Take care,</p>
<p>Frank</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/09/07/littles-law-isnt-it-a-linear-relationship/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Business and Technology Peacefully Co-creating</title>
		<link>http://www.vissinc.com/2012/07/30/business-and-technology-peacefully-co-creating/</link>
		<comments>http://www.vissinc.com/2012/07/30/business-and-technology-peacefully-co-creating/#comments</comments>
		<pubDate>Mon, 30 Jul 2012 18:08:22 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Brickell Key Award Winner]]></category>
		<category><![CDATA[Kanban at Scale]]></category>
		<category><![CDATA[Kanban Transformation]]></category>
		<category><![CDATA[Lean-agile Product Portfolio Management]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Richard Hensley]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=1949</guid>
		<description><![CDATA[Written in direct collaboration with Richard Hensley (McKesson AVP). “Knowledge is an unending adventure at the edge of Uncertainty.” -<a href="http://www.vissinc.com/2012/07/30/business-and-technology-peacefully-co-creating/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<h3><em><strong>Written in direct collaboration with Richard Hensley (McKesson AVP).</strong></em></h3>
<blockquote>
<p><span style="color: #0000ff;"><em>“Knowledge is an unending adventure at the edge of Uncertainty.” -</em> Jacob Bronowski, British mathematician, biologist, historian of science, poet, inventor, author of “The Ascent of Man”</span></p>
<p><span style="color: #0000ff;"><em>“Maturity of mind is the capacity to endure Uncertainty.”</em> &#8211; John Huston Finley, 1938 &#8211; New York Times editor-in-chief</span></p>
<p><span style="color: #0000ff;"><em> “Many high performers would rather do the wrong thing well than do the right thing poorly.”</em> – Thomas J. Delong &amp; Sara DeLong, “Managing Yourself: The Paradox of Excellence”, June 2011 &#8211; Harvard Business Review</span></p>
</blockquote>
<p>It’s common to see an organization (the people in them) focus on building systems with as many features as possible and targeting delivery by a specific due date. Yet, often the result is missing the date while also ignoring other important goals demanded by the businesses such as high levels of product quality, development productivity, planning reliability, employee satisfaction, and customer loyalty. Retrospectives, if done after such an occurrence, surface the dissatisfaction concerning missed dates, poor quality, technical debt, and more, still frequently this pattern repeats. Does this scenario sound familiar to you? If so, why do you think it is so? In a past or maybe your current organization, I’m guessing you&#8217;ve heard or thought, <strong><em>“We need our business and technology people on the same page.”</em></strong> How might “being on the same page” look in your organization? Does your current software development methodology, its principles, processes, and practices, contribute effectively to this objective? Is getting on the “same page” with objectives and goals enough? </p>
<p><strong><em>Over the last three years Richard Hensley, AVP Process at McKesson Health Solutions, has worked to address these challenges within the three business units of the division he works in at McKesson. </em></strong>I’ve been able to catch up with him on several occasions and discuss his efforts over these years. <strong><em>This post is a brief “fly-over” of his experience, capturing some of the key thoughts Richard developed over this time,</em></strong> and shared during our conversations.</p>
<h3><strong>No Silver Bullets Here!</strong></h3>
<p><img class="alignleft size-thumbnail" title="nosilverbullet_socialwantsdotcom" alt="" src="/wp-content/uploads/2012/07/nosilverbullet_socialwantsdotcom-150x150.png" width="175" height="175" />Anyone reading a blog post on getting business and technology people on the same page probably knows there is no “silver bullet” to this challenge. Chances are good you&#8217;ve already been a part of such an effort, right? If so, you know it is not a simple task. Or even if you saw them start out on the same page in your organization, did issues appear that caused this working relationship to return to its earlier challenging state?</p>
<p>In short, Richard suggests, “<strong><em>you won’t find quick fixes for this issue”</em></strong> and his experience indicates it takes a serious effort from both sides. It also requires a continuous commitment over time because<em style="font-weight: bold;"> “getting everyone on the same page is a good start but not sufficient to sustain the business.</em><strong><em>” </em></strong>Yes, getting on the same page upfront, by itself, can be a positive thing as it helps everyone feel good, knowing where others are at and being in the know. If you’re familiar with the practice of daily stand-ups, you can draw a comparison, getting on the same page only is like a stand-up where team members simply provide “status” of their work. It is a good start, but alone it is ineffective for helping to solve real issues. In a similar fashion, getting on the same page with objectives and goals, if that is all you do, doesn&#8217;t help anyone address how things might be done more quickly or more effectively. It is a good start, but more is needed!<span id="more-1949"></span></p>
<h3><strong><a name="anchorpt1"></a>First, A Little History for Context (L&amp;K 2009, LSSC, and LSS)</strong></h3>
<p>In May 2009 the Lean &amp; Kanban Conference was held in Miami, Florida. It was the first ever conference focused completely on applying lean-agile and kanban principles and concepts to the software development field, put on then by the recently formed Lean Software and Systems Consortium (LSSC). The next year this conference was renamed to LSSC 2010 Atlanta, then followed by LSSC 2011 Long Beach, and most recently LSSC 2012 Boston. Though Richard and I both live in the Denver-metro area, the first time we ever met and began discussing his efforts at McKesson was actually at the L&amp;K 2009 conference in Miami.  </p>
<blockquote>
<p><span style="color: #0000ff;">Richard Hensley (Brickell Key Award Winner &#8211; LSSC 2011) has worked twenty-five years in the healthcare technology industry, building systems supporting pharmacies, prescription insurance claims, clinical laboratories, and many more. At McKesson Health Solutions, he leads the lean business and product development transformation, working with business and product development leaders to “pull the quality lever” in a meaningful way. Over the last three years they have worked to transform the development organization responsible for products supporting four major lines of business that contribute significantly to the financial success of McKesson.  </span></p>
<p><span style="color: #0000ff;">Employing the Kanban approach for change management, McKesson implemented new tools selected from RUP, XP, Scrum, and lean—daily focused planning, stand-up meetings, retrospectives, TDD, information radiators, user stories, etc. They automated anything they could and measured everything possible. These efforts have delivered 103 production releases with no significant defects, fulfilled sixteen multi-million dollar contracts, maintained high employee morale, and trained 5,000 users. <em><strong>Most importantly, though, they developed a culture that puts quality and continuous improvement at the forefront.</strong></em></span></p>
</blockquote>
<h3><strong>How Might Business and Technology “Peacefully” Co-creating Look?</strong></h3>
<p>To describe what business and technology “peacefully” co-creating in his organization might look like, Richard suggests you think in terms of <strong><em>“Getting in the same boat!” </em></strong>That is, it doesn’t look like a large boat dragging a dingy. It is clearly the organization’s business people and technology people <strong><em>getting in “one” boat”, the “same boat”, and then everyone paddling in the “same direction.”</em></strong></p>
<p>How does this look on the organization floor? At the highest perspective, Richard says business and technology peacefully co-creating looks like this:</p>
<ol>
<li>Co-making decisions</li>
<li>Co-facing the outcomes and consequences</li>
<li>Developing and using a common language to communicate with each other</li>
</ol>
<p> <br />It is about <strong><em>co-making decisions</em></strong>, with both business people and technology people engaged in identifying and creating a shared understanding of these decisions. This includes identifying key principles and having a common belief in them as a foundation for guiding these shared decisions.</p>
<p>Then, it is <strong><em>co-facing the outcomes and consequences</em></strong> of these decisions, especially during necessary and important learning phases when some of these decisions won’t be perfect and the water gets a little choppy. Without shared creation and shared accountability it’s too easy to slip back to “separate boats” thinking and actions. Again, it’s about being in one boat, paddling in the same direction in the good and easy times and in the tough (learning) and rough times. Richard’s experience indicates you really have to start here with these first two keys to visualize how business and technology “peacefully” co-creating would look in your organization.</p>
<p>A big part of making these first two keys work is the third key that he suggests which is <strong><em>developing and using a shared nomenclature across your organization’s levels</em></strong>. The nomenclature you develop and use needs to be meaningful in your context and it needs to become the primary tool that enables good communication between your organization’s levels. However, it’s important to also allow each level in the organization to develop and have their meaningful part of the nomenclature. That said, a level’s nomenclature must still be understandable and have meaning across the other levels in the organization. We’ll talk more about organization levels in the next section of this post as well.</p>
<blockquote>
<p><span style="color: #0000ff;">As LSSC 2011 Long Beach came to a close, several groups gathered for open space sessions. Several of these sessions soon converged on discussing the challenge of helping higher business levels in the organization learn about the lean-agile principles many of us there were successfully employing at the technical levels within our organizations. Richard began sharing several of the thoughts captured here now in this post. His notion of developing upfront a common nomenclature caught my attention for a couple of reasons. The first is I think this explicitly states a key point (perhaps missing or not explicit enough) related to the ideas I&#8217;ve read about elsewhere for creating a Lean-agile PMO in an organization (see “The Lean-Agile PMO” by Sanjiv Augustine).</span></p>
<p><span style="color: #0000ff;"> But what really hit me about this suggestion was the parallel to the idea of developing a “ubiquitous domain language” related to developing software architecture models used to aid builders (developers) of software with effectively communicating with users and business stakeholders (see “Domain Driven Design” by Eric Evans). In essence, Richard’s thoughts on developing and using a common nomenclature from an “organization architect’s” perspective addresses a similar challenge of facilitating effective communication across the business and technology levels of an organization. </span></p>
</blockquote>
<h3><strong>How Does Business and Technology “Peacefully” Co-creating Occur?</strong></h3>
<p>So you’re in the same boat now, and paddling in the same direction. You&#8217;ve identified some key principles to guide your processes and practices, you’re co-making decisions, and you’re co-facing the outcomes together, both the good ones and the bad ones. And you&#8217;ve developed and are using a common nomenclature to talk about the things important to both the business and technology sides of the house and through the levels in the organization. What’s next?  </p>
<p>Think back to “tough times” you&#8217;ve had when working with others. What do you remember most about these? Was it “frustration” with not being able to help someone “see” your perspective? A large part of keeping things moving in the same direction is handling these tough times constructively. How? A key to addressing this Richard suggests is to <strong><em>“focus on helping others learn by doing (not by teaching).”</em></strong> Why?</p>
<p>It is tempting to think you can “teach” the other side what they don’t know when differences arise. However, teaching doesn&#8217;t guarantee learning occurs (that is, learning by those being taught, even though teaching others about something does often help the “teacher” learn it more deeply). Learning models indicate learning occurs more deeply and effectively by doing (hands-on) in the context of what you are attempting to learn.<sup><strong>1, 2</strong></sup></p>
<p>Richard’s experience leads him to believe the <strong><em>“the necessary education comes after the learning, learning by doing, not before doing, and not by trying to teach it up front.”</em></strong> In fact, he thinks “teaching up front would have likely constrained the solutions (their early efforts) prematurely due to yet incomplete knowledge of problems (their system’s yet undiscovered and not well understood issues).”</p>
<blockquote>
<p><span style="color: #0000ff;">Again, what stands out for me is here regarding Richard’s thoughts, is how they parallel and adapt from what I&#8217;ve read about elsewhere. In this case the impact of focusing on learning upfront before specifying or designing an initial solution is a concept reflected in Michael Kennedy’s work studying the keys of the Toyota Production System<sup>3 </sup>and also reflected in ideas found in David Snowden’s work on complex adaptive systems<sup>4</sup>.</span></p>
</blockquote>
<p>As you go through this process of learning together and, as mentioned earlier, develop your common nomenclature, Richard suggests you continue to <strong><em>”recognize the following different organizational levels and roles.”</em></strong> At McKesson, for his division, he’s identified the following:</p>
<ol>
<li><strong><em>Strategic Level</em></strong> &#8211; Business Leaders</li>
<li><strong><em>Tactical Level</em></strong> &#8211; Product Owners, Business Analysts</li>
<li><strong><em>Execution Level</em></strong> – Developers/Engineers, SMEs (subject matter experts) QA &amp; Testers, Software Architects</li>
</ol>
<p> <br />Business Leaders are responsible for defining “Why” via <strong>“<em>initiatives”</em></strong> needed to achieve the strategic business objectives and goals. In Richard’s context at McKesson these initiatives, this term itself and the language used to describe them, are part of the common nomenclature developed to communicate them to the other levels of the organization.</p>
<p>Product Owners and Business Analysts are responsible for defining “What” via product <strong><em>“features”</em></strong> needed to achieve the business initiatives. In essence, this represents the tactical aspects of achieving the desired strategy developed by the business leaders. These features, this term itself and the language used to describe them, also are part of the common nomenclature developed in Richard’s McKesson division.</p>
<p>Developers/Engineers, QA &amp; Testers, and Software Architects are responsible for defining “how” via technical processes and practices needed to build the specified product features. At this third level, the notion of <strong><em>“stories”</em></strong>, the term itself and the language used to describe them, become part of the common nomenclature, as do many other terms related to processes and practices at this level. For example, terms like “sprint” or “expected lead time”, “flow rate or throughput”, “backlog”, “t-shirt size”, etc. need to be well understood and shared across the necessary levels in the organization too.</p>
<p>One last and very key point Richard makes is related to the terms responsible, accountable, and influence. We&#8217;ve already discussed “responsible” above for each level. But Richard feels it is critical that “<strong><em>no level should define for another level anything that it has no direct ability to truly influence.” </em></strong>For example, how long it takes to complete a requested feature, after the tactical level has specified it, is solely the domain of the execution level of the organization. The tactical level should not attempt to specify both what (the feature), and also how long it will take to develop (executing the building of the feature).</p>
<h3><strong>Next Steps</strong></h3>
<p>In closing, the intent of this post was to be a “fly-over” of Richard’s experience, capturing some of the key thoughts he’s shared with me during our conversations about his efforts over the last three years at McKesson Health Solutions and in his role as AVP Process. In particular, at a high level we’ve talked about how business and technology “peacefully” co-creating might look, identifying three key characteristics, co-making decisions, co-facing the outcomes and consequences, and developing a common nomenclature for communicating between the levels in the organization. We then suggested that business and technology people focus on helping each other learn the other’s differing perspectives in the context of doing and working together on real issues, not by trying to “teach” the other upfront with discussion or debate and why this was important based on learning models. Lastly, we identified three common levels in an organization and highlighted the differing perspective and focus of each and the importance of respecting these differences of responsibility and influence.</p>
<p>Going forward, ideally we’d like to hear from you any specific questions or comments on the concepts and ideas above. Our plan would be to possibly address and include those in a follow-up post maybe even two based on interest and the feedback received. There is certainly more to share about Richard’s experience including a deeper dive into the nomenclature he’s seen developed at McKesson, as well as looking more at how they have visualized their organizational level workflows and the key interactions between these levels. Depending too on interest, another area to explore further might be the key metrics they are using to help identify issues and monitor their improvements. We hope you share your thoughts too and look forward to hearing from you!</p>
<p>Take care,</p>
<p>Frank</p>
<p>&nbsp;</p>
<p>References:</p>
<p><sup>1</sup> For a reasonably short but still usefully in-depth paper as a starting point on understanding how teaching, learning, and learning to learn, might differ, check out &#8220;<a href="http://www.macalester.edu/geology/wirth/learning.pdf" target="_blank">Learning to Learn</a>&#8221; by Karl R. Wirth and Dexter Perkins.</p>
<p><sup>2</sup> &#8221;<a href="http://hbr.org/2011/04/strategies-for-learning-from-failure/ar/" target="_blank">Strategies for Learning from Failure</a>&#8221; by Amy C. Edmondson is a reasonably short but still useful paper on how an organization&#8217;s attitude toward failure can inhibit or promote learning, not just learning, but rapidly learning, and provides insights for strategies in different work settings where learning can occur effectively.</p>
<p><sup>3</sup> See the book &#8220;Ready, Set, Dominate&#8221; by Michael Kennedy; also his earlier work &#8220;Product Development for the Lean Enterprise&#8221; for insights into concepts like set-based design (if you think SBD is only about simultaneously considering multiple potential solutions to a problem and converging to one, you&#8217;re missing a significant part of Kennedy&#8217;s message).</p>
<p><sup>4</sup> Dave Snowden, see<span style="color: #0000ff;"> <em><a href="http://www.youtube.com/watch?v=N7oz366X0-8" target="_blank"><span style="color: #0000ff;">Cynefin Framework</span></a></em></span> (YouTube video) and <a href="http://www.cognitive-edge.com/" target="_blank">Cognitive Edge</a> web site.</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/07/30/business-and-technology-peacefully-co-creating/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lesson from LSSC 2012: Focus on Learning to Learn!</title>
		<link>http://www.vissinc.com/2012/06/04/lesson-from-lssc-2012-focus-on-learning-to-learn/</link>
		<comments>http://www.vissinc.com/2012/06/04/lesson-from-lssc-2012-focus-on-learning-to-learn/#comments</comments>
		<pubDate>Tue, 05 Jun 2012 03:36:08 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[LSS]]></category>
		<category><![CDATA[LSSC]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=1805</guid>
		<description><![CDATA[“The possession of tools, techniques, and technology is not the competitive advantage…it’s the learning you wrap around them before anyone<a href="http://www.vissinc.com/2012/06/04/lesson-from-lssc-2012-focus-on-learning-to-learn/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>“The possession of tools, techniques, and technology is not the competitive advantage…it’s the learning you wrap around them before anyone else.”</em></span><br /> <span style="color: #0000ff;">– Steven J. Spear, Senior Lecturer &#8211; MIT Sloan School of Management &amp; Engineering Systems Division – May, LSSC 2012, Boston</span></p>
<p><span style="color: #0000ff;"><em>“Specifications should come more toward the end of the project not the start…capture knowledge for future use – both successes and failures.”</em></span><br /> <span style="color: #0000ff;">– Michael Kennedy, author of &#8220;Ready, Set, Dominate&#8221;, retired Senior Member, Technical Staff after 31 years at Texas Instruments Defense Electronics – May, LSSC 2012, Boston</span></p>
<p><span style="color: #0000ff;"><em>“I’ll probably annoy a few system thinkers as well as proponents for self-organizing teams, but that means I’m doing my job…extremes of centralization and de-centralization are sub-optimal.”</em></span><br /> <span style="color: #0000ff;">– Don Reinertsen, educator at California Institute of Technology , author of &#8220;Product Development Flow&#8221; – May, LSSC 2012, Boston</span></p>
<p><span style="color: #0000ff;"><em>“Today, I’d like to be provocative, not obnoxious because I think that is the place to be…pushing people to work faster is not as effective as working on the interfaces (the handoffs).”</em></span><br /> <span style="color: #0000ff;">- Gregory A. Howell, educator, author, and co-founder &amp; managing director of the Lean Construction Institute (LCI) – May, LSSC 2012, Boston</span></p>
<p><span style="color: #0000ff;"><em> “Experience is not the same as knowledge (remember from which you are answering a question).”</em></span><br /> <span style="color: #0000ff;">– Yochai Benkler, Professor of Entrepreneurial Legal Studies at Harvard, and faculty co-director of the Berkman Center for Internet and Society – May, LSSC 2012, Boston</span></p>
</blockquote>
<p>If you missed the Lean Software and Systems Consortium 2012 (LSSC 2012) conference in Boston and you’re looking for an overview of the keys from the keynotes, highlights from the presentations, or a taste of the pre and post conference happenings, I can point you to several posts that do that very well <span style="color: #0000ff;"><a href="http://lizkeogh.com/2012/05/17/lssc-2012/" target="_blank"><span style="color: #0000ff;">here</span></a></span>, <span style="color: #0000ff;"><a href="http://blog.marcj.co.uk/2012/05/20/lssc2012/" target="_blank"><span style="color: #0000ff;">here</span></a></span>, <span style="color: #0000ff;"><a href="http://learningagileandlean.wordpress.com/2012/05/18/lssc12-report-batch-1/" target="_blank"><span style="color: #0000ff;">here</span></a></span>, and <span style="color: #0000ff;"><a href="http://blog.jackvinson.com/archives/2012/05/15/drinking_from_the_firehose_-_day_1_at_lssc12.html" target="_blank"><span style="color: #0000ff;">here</span></a></span>. (Note too, going forward the LSSC is now the LSS, the Lean Systems Society, which you can find more about <span style="color: #0000ff;"><a href="http://leansystemssociety.org/" target="_blank"><span style="color: #0000ff;">here</span></a></span>).</p>
<h3><strong>Here’s My Take on the Lean Software Systems Consortium 2012 Conference</strong></h3>
<p><img class="size-medium alignleft" title="LSSC2012" alt="" src="/wp-content/uploads/2012/06/LSSC2012-150x150.png" width="200" height="200" />An alternative perspective of LSSC 2012 that I’ll offer you orbits more narrowly around my single biggest takeaway. It wasn’t a single keynote talk or individual track presentation, it wasn’t some succinct brilliant message appearing in the titles for any of the keynote talks or track presentations, nor was it overtly offered as “the main point” for any of the keynote talks or the track presentations that I saw. It was, for me, an unmistakable message noticeably and repeatedly threaded, as the underlying (core) lesson, into the themes of the keynote talks and several of the presentations I attended. <strong><em>“Focus on Learning to Learn” emerged as my “un-official theme” for the conference and was the key takeaway from LSSC 2012.</em></strong></p>
<p>On the surface that sounds a bit obvious doesn’t it? Learning is the focus or purpose of most any conference, right? Okay, I do wonder about some that occur year after year in the same resort places, but that’s for another time and place. Yes, of course, “learning” is the focus of most any conference. <strong><em>To be clear though, I’m specifically saying, “learning to learn” here, not just “learning.” What’s the difference?</em></strong> <sup>1</sup><span id="more-1805"></span></p>
<h3><strong>My Early Days &#8211; Some Context and Framing</strong></h3>
<p>I attended few conferences for professional development early in my career because I found them more often great for breadth but not much in the way of depth. Instead I mainly attended class-type seminars or courses and focused my learning on IT/IS technologies, technical software development practices, software architectures, and the current business domain I was in at that time. That’s plenty, but there were still other problems to solve! I also observed these problems could often marginalize the best efforts put forth from hard-earned learning and lessons in implementing technologies or technical practices.</p>
<p>In 2004 these types of problems led me to learning and applying lean-agile principles and XP practices in my software development environments. They also helped me begin seeing the need to learn even more about the processes governing the environments I worked in as well. This led me to learning and applying more explicit principles of flow, queueing theory, and pull/kanban methods starting in late 2007. It was then I became even further interested in learning more about processes in the software development context and in the concepts broadly related to learning.</p>
<h3><strong>Another Try: The First Lean &amp; Kanban Conference (L&amp;K 2009)</strong></h3>
<p>These new interests in processes and learning, in particular related to the software development context, led me some three years ago to attend the first ever Lean &amp; Kanban conference in Miami (Lean &amp; Kanban 2009, before the name change to LSSC). I followed that by attending LSSC 2010 in Atlanta, LSSC 2011 in Long Beach, and most recently LSSC 2012 in Boston. In this time I’ve seen this conference grow in number, but more importantly it has grown in quality and learning value. While I think Miami in 2009 will remain my most unique LSSC conference experience, Boston in 2012 is now the high watermark for me personally. In large part I think it is because of the type of thinkers I’m able to meet and talk with in the LSSC community and the message I hear from them, <strong><em>Learning is great, but “learning to learn” is a much more powerful ability to pursue and possess.</em></strong></p>
<p>Think about this for a second. The attendees of the LSSC 2012 conference are principally from the software development context, yet <strong><em>the three keynote speakers and two of the “featured” 90-minute presenters (see quotes above) are all distinguished individuals outside of the software development field. Still, all of their messages were quite valuable, applicable, and useful to me (and I believe most who attended as well). Why?</em></strong></p>
<p>For me, it’s this <strong><em>focus on learning to learn! It&#8217;s this focus that has made the LSSC conference and this community more valuable to me over this time, and in particular LSSC 2012!</em></strong></p>
<blockquote>
<p><span style="color: #0000ff;">Where can you literally turn around in your seat while your waiting for a keynote to start and find Don Reinertsen ready and willing to chat with you one-to-one for 15 minutes about your questions related to what you think are misconceptions in the use of CFDs in the software development context?</span></p>
<p><span style="color: #0000ff;">Where can you find the likes of Greg Howell (co-founder of the Lean Construction Institute) standing a “safe” distance from the pre-dinner reception chatter for the Brickell Key award willing to answer your questions one-to-one for 30 minutes about his project management experiences in the construction field and how what he learned could help you in a software development context?</span></p>
<p><span style="color: #0000ff;">Where could you attend a conference, then catch “the T” to M.I.T. 10 minutes away, and discuss one-to-one for 45 minutes with Dr. Stephen C. Graves (author of Ch. 5 Little’s Law, and Professor of Mechanical Engineering and Engineering Systems at M.I.T.) some about his work in operations management, and his work with John D. Little?</span></p>
<p><span style="color: #0000ff;">The answer for me to all of these questions was LSSC 2012 Boston!</span></p>
</blockquote>
<h3><strong>Connections -Big K Kanban and little k kanban (meta-process)</strong></h3>
<p>This focus on learning to learn I believe too is why over the last few year many in the LSSC community now more often refer to the Kanban Method as a meta-process, what is often called &#8220;big K&#8221; to distinguish it from the &#8220;small k&#8221; when talking more specifically about a &#8220;pull&#8221; system. That is, a meta-process layered on top of your current software development workflow process, not something to &#8220;replace&#8221; your current process. This meta-process is really more about identifying properties that focus on learning to learn about your underlying process, not prescriptive steps for a process. It is this focus on learning to learn that contributes to what is often described as the &#8220;catalyst for change&#8221; to your process. Yes, <em><strong>as you learn to learn more about your underlying process, it should result in changes, real and effective changes based on validated learning, to your underlying process.</strong></em></p>
<h3><strong>Looking Forward</strong></h3>
<p>I see this focus on learning to learn too at the core of several other practices found in our software development context. For example, in the Test-driven Development (TDD) cycle, in the different forms of set-based planning, set-based design, and set-based engineering, and in pull-scheduling systems. So, as I continue to reflect on my LSSC 2012 experience, I&#8217;m pretty sure there is a post or two coming from me in the near future that will be inspired by what I learned at this conference. I can tell from notes I captured during the keynote talks and presentations for any one of those listed above, along with several follow-up conversations I had with some of them since the conference (and not to mention from reading, and re-reading now some of their books), the greater challenge will be narrowing it down to a post or two.</p>
<p>My last two months were pretty full with helping organize and put on our local Mile High Agile 2012 Conference, developing and delivering several training tutorials on the road, and attending LSSC 2012 in Boston as well as co-presenting a tutorial there. So, now, I’m working to get a little slack back into my personal kanban board, including time to revisit my “blog post seed material” folder. I hope you&#8217;ll stay tuned!</p>
<p>Take care,</p>
<p>Frank</p>
<p>&nbsp;</p>
<p>References:</p>
<p><sup>1</sup> For a reasonably short but still usefully in-depth paper as a starting point on understanding how teaching, learning, and learning to learn, might differ, check out &#8220;<span style="color: #0000ff;"><a href="http://www.macalester.edu/geology/wirth/learning.pdf" target="_blank"><span style="color: #0000ff;">Learning to Learn</span></a></span>&#8221; by Karl R. Wirth and Dexter Perkins.</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/06/04/lesson-from-lssc-2012-focus-on-learning-to-learn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Few Basic Ways to Visualize Story Lead Time Predictability</title>
		<link>http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/</link>
		<comments>http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 23:56:44 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Kanban Metrics]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Data Analysis]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Visualizing Data]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=1501</guid>
		<description><![CDATA[“The ability to take data &#8211; to be able to understand it, to process it, to extract value from it,<a href="http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>“The ability to take data &#8211; to be able to understand it, to process it, to extract value from it, to visualize it, to communicate it, it&#8217;s going to be a hugely important skill in the next decades, not only at the professional level but even at the educational level for elementary school kids, for high school kids, for college kids. <strong>Now we really do have essentially free and ubiquitous data. So the complimentary scarce factor is the ability to understand that data and extract value from it</strong>.”</em></span></p>
<p><span style="color: #0000ff;"><em>“I think statisticians are part of it, but it&#8217;s just a part. You also want to be able to visualize the data, communicate the data, and utilize it effectively. But I do think those skills &#8211; of being able to access, understand, and communicate the insights you get from data analysis &#8211; are going to be extremely important. <strong>Managers need to be able to access and understand the data themselves.</strong>”</em></span></p>
<p><span style="color: #0000ff;"> - Hal Varian, Google’s Chief Economist, Jan 2009 &#8211; The McKinsey Quarterly</span></p>
</blockquote>
<p>My previous post discussed how some of my earlier teams used T-shirt sizes for story level work items in their software development planning processes. But T-shirt sizes were only a part of what helped us get effectively predictable. The emphasis on just-in-time (JIT) story creation and story analysis, along with just-enough story and portfolio level backlogs (limiting work-in-progress or WIP), were also significant contributing factors. Two other key factors were de-emphasizing upfront estimating of level-of-effort and duration, and instead placing a greater emphasis on lightweight tracking of real (lead and cycle) times to complete and deliver story level work items. (See my earlier posts <span style="color: #0000ff;"><a href="/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/" target="_blank"><span style="color: #0000ff;">here</span></a></span> and <span style="color: #0000ff;"><a href="/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/" target="_blank"><span style="color: #0000ff;">here</span></a></span> for a bit more context and background on push vs. pull scheduling systems.)</p>
<p>I also discussed how some basic analysis of this lead time data and T-Shirt sizing helped us develop an internal service level of agreement (SLA) for completing story level work items. <em><strong>But this information also guided and shaped the policies we developed to influence the team&#8217;s interactions and specific responses (pulled from our toolbox) in a JIT manner as information unfolded about a story&#8217;s level of effort and duration. </strong></em>My observation is that all this contributed to us becoming predictable in a context where we never had been before using heavier upfront planning strategies. Based on my study of scheduling systems this combination reflected key pull scheduling characteristics, <strong><em>where the role of our software development workflow management changed from determining all operation activities upfront, to one focused much more on setting the rules for interactions (in turn influencing our work environment structures).</em></strong></p>
<p><a href="/wp-content/uploads/2012/02/vissinc.com_rawdata.png" target="_blank"><img class="size-medium alignleft" title="Spreadsheet Snippet (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/02/vissinc.com_rawdata-300x157.png" width="300" height="157" /></a><a href="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes.png" target="_blank"><img class="size-medium alignleft" title="T-shirt Sizes Table (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes-300x75.png" width="300" height="75" /></a>There’s lots more analysis (mathematical and statistical) you can do using the minimal and easily collected data that produced the Basic Story (Lead Time) Metrics table and T-shirt sizes from my earlier post and that will have to wait for another time. For this post I want to focus on visualizing the information in this simple table to see if we might extract a bit more value from the modest analysis investment already expended.</p>
<p>I&#8217;ll also build on this initial visualization, using a bit more (quick) low hanging fruit type analysis of the full raw data set represented by the earlier spreadsheet snippet, to produce a basic temporal (time) perspective of story lead times. Can adding a basic temporal perspective  provide a number of other useful insights into understanding the nature of our workflow&#8217;s story level work item lead times? (Both the earlier table and spreadsheet snippet are included here; <strong>click images to enlarge</strong>). To this basic temporal perspective, with a bit more new analysis on the existing raw data spreadsheet, I&#8217;ll then add new information extracted to give a work item type perspective as well, and then overlay the T-shirt size information to this mix.</p>
<p>Finally, again with just a bit more analysis on the existing raw data, I&#8217;ll visualize two other separate temporal perspectives using both  percentages and frequency counts. Afterwards, let me know what you think. Do one or two of these other ways of visualizing the information in the earlier table and spreadsheet snippets help you and others access, understand, and communicate insights that leads to a more effective predictable workflow in your software development context?<span id="more-1501"></span></p>
<h3><strong>Visualizing T-Shirt Size Frequency and Percentiles (Histogram and Pareto Charts)</strong></h3>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_histogram02.png" target="_blank"><img class="size-medium alignright" title="Histogram 02 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_histogram02.png" width="300" height="131" /></a>The charts in this section don’t reflect the “textbook” definitions of a Histogram and Pareto Chart respectively. Still, I’ll refer to them as such for now and leave it to your curious side to learn why they&#8217;re “pseudo” versions. Enhanced descriptions of the bins appear as the x-axis labels on the histogram, and the counts are pulled directly from the data in the Basic Story (Lead Time) Metrics table above and appear as labels on the individual bars with a frequency scale plotted along the y-axis.</p>
<p>I used color too, in the same way as done in the earlier table, with green shades indicating the more desirable T-shirt sizes for the story work level items in our context. What do you think? Does this visualization of the same data in the earlier table provide improved access, understanding, or better communicate insights into the expected lead times of story level work items? Note: these story level work item lead times are calendar days that include weekends, holidays, any sick days, or vacations, etc.</p>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_histogram03.png" target="_blank"><img class="size-medium alignleft" title="Histogram03 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_histogram03-300x130.png" width="300" height="130" /></a>Next, the individual percentages of each T-Shirt size bin from the table were added to this histogram, which compliments the visual representation of the color bars and gives additional meaning to the absolute frequency counts for each T-shirt size bin and helps in comparisons. Finally, the cumulative percentage values were used to add the &#8220;pseudo Pareto line&#8221; which clearly shows story work level items with a lead time of greater than two weeks really are less common relative to the others. All the information in this pseudo Pareto chart exists in the earlier table, there is no new information here. So, does this visualization give better insights, access, or understanding about potential SLAs, or outliers?</p>
<h3><strong>Temporal Perspectives of Story Lead Times (Scatter Plot Charts)</strong></h3>
<p>For the limited effort required, the histogram and Pareto chart give us a number of useful insights into the distribution of story level work item lead times and have helped us define some meaningful T-shirt sizes (derived from real times and produced from our existing software development workflow process). But, we have no insights into the stability of how our story level work item lead times, or how specific actions along the way impacted them (or didn&#8217;t impact them).</p>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_scatter02.png" target="_blank"><img class="size-medium alignright" title="Scatter Plot 02 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_scatter02-300x130.png" width="300" height="130" /></a>To add a temporal (time) perspective we&#8217;ll use a simple scatter plot of the underlying raw data to visualize story level work item lead times over our reporting intervals. As mentioned earlier, I did a bit more analysis of the raw data spreadsheet to partition lead time data by functional story level work items and infrastructure story level work items. This was quick to do as several existing fields in the underlying raw data spreadsheet distinguished between these two work item types. (Note: I scroll time along the x-axis with most recent information on the left as older information &#8220;falls&#8221; off at the right end, which matches my preference for creating CFDs as well. Again, this is a &#8220;preference&#8221;, and you should flip the direction as needed to fit your context and audience).</p>
<p>What insights about our story level work items does the new temporal perspective in this scatter plot provide us? How does distinguishing between functional and non-functional story level work items help? Do you think the value might be greater or less depending on the context of your software development workflow? Overall we see a number of infrastructure story level work items distributed throughout the full timeline. We also see a higher density of story level work items at the latest end of this time line. What might this mean? It&#8217;s also pretty clear we hit a spot in the overall timeline where our story level work item lead times were quite long in our context. What happened here? Can we look back at our story notes (or reporting interval notes, as we kept them) and explain these cases? Clearly this is where our larger T-Shirt sizes came from, right? Why?</p>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_scatter03.png" target="_blank"><img class="alignleft size-medium" title="Scatter Plott 03 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_scatter03-300x133.png" width="300" height="133" /></a>Now, I&#8217;ll add the T-shirt sizes from the earlier table to this new temporal perspective as solid and dashed colored horizontal lines, in effect adding Pareto type information to the scatter plot. Does this help make it more clear just how few story level work items were taking greater than two weeks lead time to complete? Again, this is lead time, not cycle time, so it includes time starting from when the story was placed into the ToDo process state (and in our context included weekends, holidays, etc.). How about helping to identify outliers? In retrospect, we know from the earlier table there are just under 600 lead times (blue and red dots) plotted on this scatter plot and we can hand count the eleven that have a lead time well above 28 days. This is no more than 3% and we can see for the most part they were concentrated in one area along our 16 months of data. Is that helpful insight in setting SLAs or communicating expectations with others?</p>
<h3><strong>Two More Charts for Fun (Stacked Bar Charts)</strong></h3>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_bar01.png" target="_blank"><img class="size-medium alignright" title="Bar Chart 01 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_bar01-300x136.png" width="300" height="136" /></a>The temporal perspective of the scatter plots above do provide some useful insights. Again, the overall effort required is fairly limited too. However, along the way I wondered if visualizing both the concrete &#8220;counts&#8221; of story level work items being completed and the &#8220;percentages&#8221; of their lead times over time might potentially add some valuable insights. So, I did a bit more analysis on the raw data spreadsheet to partition the months of story level lead time data into four-week intervals (no special reason I picked four weeks, could have been two or six, depending on context, or one might start with two and expand the intervals as more data is collected). </p>
<p>This first stacked bar chart shows percentages for each T-shirt size bin for a number of reporting intervals displayed on the x-axis. (Again, I&#8217;m scrolling latest date on left and earlier date &#8220;falling&#8221; off to the right.) Notice the reporting intervals labeled Wk 25-28, Wk 29-32, and Wk 33-36. What insights do these three stacked bars provide you? There are some larger percentages of story level work items with longer lead times during these twelve weeks. How does this time frame match up with our scatter plots above? Do you see the alignment with the distribution of dots on the scatter plot being higher on the chart? What new insights or value might the temporal perspective of this stacked bar chart of T-shirt sizes provide you? You certainly see less green for these three reporting intervals. </p>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_bar02.png" target="_blank"><img class="size-medium alignleft" title="Bar Chart 02 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_bar02-300x136.png" width="300" height="136" /></a>On the second stacked bar chart I show the counts for each T-shirt bin for a number of the same reporting intervals again displayed along the x-axis. So, what stands out here? Obviously the number of story level work items completed per four week interval is fairly consistent until the last two reporting intervals. What happened in Wks 69-72 and Wks 73-76? I actually have notes on what was happening in our environment but this is a whole other story for another time. The point here is the stacked bar chart certainly provides some new insights and reflects the context of what was happening in our environment at this time.</p>
<p>Look at reporting intervals Wk 25-28, Wk 29-32, and Wk 33-36 again on this chart. While we don&#8217;t have specific percentages, it&#8217; still pretty clear there is less green and more orange and red here indicating longer story lead times, and story counts took a slight dip before rebounding up a bit. Any guesses on what happened? Again, match it up with the scatter plot and notice the time of year. These new insights reflect some of what was happening in our context according to our notes during this time beyond just the usual impact of holidays. </p>
<h3><strong>Closing Thoughts</strong></h3>
<p>While reading this post, it might appear at times the analysis and visualization discussed above was done only in retrospect after all the data was collected. I admit while writing this post looking back myself it was hard not to give that impression or perspective. Yet, to be clear, the analysis and visualization of the results in these charts above occurred and evolved over time, as more and more of the full 16 months of data was collected on this project, and as we learned and observed along the way. Also, I want to be clear that as we collected actual story level work item lead times, among other data too like story cycle times, stories completed per reporting interval and per feature, feature level work item lead and cycle times, and analyzed this data in similar ways as above, the models, the information, and the insights were very valuable in helping us get effectively predictable and confident in what we could commit to delivering in a specific time.</p>
<p>A second point I want to be clear on was we didn&#8217;t use this data or analysis as part of individual or team performance evaluations. The focus and purpose of this data and analysis was primarily on helping to understand and learn about the nature of our software development workflow related to completing and delivering quality story and feature level work items. As mentioned earlier the information was used primarily to help us guide and shape the policies that influenced the team&#8217;s interactions and specific responses in a just-in-time manner as information unfolded about a work item&#8217;s (story, feature, epic) level of effort and duration. The role of our software development workflow management became focused much more on setting the rules for these interactions and in turn influencing our broader work environment structures and interactions, and on shaping (conditioning) the workflow inputs and managing them through the well-known constraints and measured capabilities of our software development workflow process.</p>
<p>Take care,</p>
<p>Frank</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/03/31/a-few-basic-ways-to-visualize-story-lead-time-predictability/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>T-shirt Sizing: Predictability with Pull Scheduling</title>
		<link>http://www.vissinc.com/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/</link>
		<comments>http://www.vissinc.com/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 04:42:34 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Pull Scheduling]]></category>
		<category><![CDATA[T-shirt Sizing]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=1091</guid>
		<description><![CDATA[Note: Post updated on 3/29/12 to correct titles on the three T-shirt size tables and to lighten the blue shade<a href="http://www.vissinc.com/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<p><em>Note: Post updated on 3/29/12 to correct titles on the three T-shirt size tables and to lighten the blue shade on the Medium T-shirt size row in these tables to make it easier to read. </em></p>
<blockquote>
<p><span style="color: #0000ff;"><em>&#8220;We do estimation very badly in the software field. Most of our estimates are more like wishes than realistic targets.&#8221;</em></span><br /><span style="color: #0000ff;"> &#8211; Robert L. Glass, Nov 2002 &#8211; Facts and Fallacies of Software Engineering</span></p>
<p><span style="color: #0000ff;"><em>&#8220;The best way to get a project done faster is to start sooner.&#8221;</em></span><br /><span style="color: #0000ff;"> &#8211; Jim Highsmith</span></p>
</blockquote>
<p><a href="http://www.vissinc.com/wp-content/uploads/2013/04/constellationsav_t-shirt_blank_mod.png"><img class="alignleft size-full wp-image-4435" alt="constellationsav_t-shirt_blank_mod" src="http://www.vissinc.com/wp-content/uploads/2013/04/constellationsav_t-shirt_blank_mod.png" width="294" height="271" /></a>In earlier posts <span style="color: #0000ff;">(<a href="/2011/10/19/it’s-slack-who-can’t-see-that/#anchorpt1" target="_blank"><span style="color: #0000ff;">here</span></a></span>, <span style="color: #0000ff;"><a href="/2011/11/28/unknown-unknowns-using-types-of-uncertainty-to-guide-how-you-manage-your-project/#anchorpt1" target="_blank"><span style="color: #0000ff;">here</span></a></span>, and<span style="color: #0000ff;"> <a href="/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/#anchorpt1" target="_blank"><span style="color: #0000ff;">here</span></a></span>), I commented briefly about moving away from upfront estimating and toward tracking and measuring &#8220;actual&#8221; metrics to complete work items, and using this data as a foundation for predictable scheduling and forecasting. Am I suggesting your software development team can’t achieve effective &#8220;predictable&#8221; scheduling using upfront estimating? No. But first, <strong>to be clear, I’m delineating upfront <em>estimating</em> activities from upfront <em>analysis</em> activities</strong>. The former is associated with predicting the number of calendar days (duration) to complete a work item and the actual hours (effort) expended on a work item. The latter is associated more with partitioning larger work items (epic, feature) into smaller ones (story, task) and determining relationships and dependencies between them to assess complexity or risk.<sup>1</sup> The significance for decoupling these becomes apparent shortly. So, in your context, if teams haven’t achieved effective predictable scheduling using upfront estimating, I am suggesting it might be beneficial to approach project planning from what is likely a different perspective. I’m also suggesting that over time this different perspective may reduce planning effort.</p>
<p>As an example, I&#8217;ll focus on one of the “actual” measurements my past teams collected, in this case Lead times for &#8220;story&#8221; work items, and discuss how we used this data to derive a very predictable range of &#8220;T-shirt&#8221; sizes. This range helped us predictably manage story level work items thru our workflow, and enabled us to identify issues earlier as they emerged for those needing alternative (special) processing or management. Before moving to how and what we did and the benefits obtained, I’ll briefly provide context for why we shifted perspective, which may reveal some insights for benefit in your environment.</p>
<h3><strong>Earlier Times in a Nutshell</strong></h3>
<p>Our development teams were well into implementing agile processes, and demonstrated visible improvements in several areas related to technical practices and our ability to deliver more frequently. However, we continually missed “commitments” for the number of stories to be completed in a sprint whether it was two weeks or 30 days. We were unsuccessful at effectively predicting duration or effort for completing stories using upfront estimating techniques that we had tried including variations of planning poker with ideal days, points, hours, Fibonacci sequences, etc. I won’t go into consequences of these estimating efforts here, but will highlight a key observation made during efforts to mitigate these costs that led to shifting our planning perspective.</p>
<p>As the mid-sprint approached and we saw our commitment at risk, at one point a team decided to assertively reduce (“de-commit”) work items (stories in this case) in their “Doing” state, moving them back to ToDo or to the story backlog. Again and again, when we did this in a sprint, stories remaining in the Doing state would get completed quickly, and then we’d “whip back” the other way and <em>re-pull</em> stories before the sprint end. After of a few of these “herky-jerky” sprints, we did something different and shifted to a “pull-scheduling” perspective.</p>
<h3><strong>Push vs Pull Scheduling?</strong></h3>
<p><img class="size-medium alignright" title="vissinc.com_push_pull_scheduling" alt="" src="/wp-content/uploads/2012/02/vissinc.com_push_pull_scheduling-300x164.png" width="300" height="164" />This image is my summary derived from sources contrasting push and pull scheduling systems.<sup>2</sup> Push scheduling starts with obtaining commitments to upfront estimates of duration and effort, then develops a schedule based on these estimates and seeks predictable outcomes by attempting to adhere to the developed schedule. Pull scheduling starts with obtaining predictability of upfront (measured) capabilities and known constraints, then develops a schedule based on these capabilities and constraints and seeks to achieve commitments to the developed schedule. Is this distinction a bit too intangible for you?<span id="more-1091"></span></p>
<h3><strong>Seeing Pull Scheduling in Action</strong></h3>
<p>The changes included some made upstream related to conditioning the feature level work item backlog in the software development workflow along with establishing some work-in-progress limits.<sup>3</sup> Downstream of the feature backlog, “policy” changes focused upfront planning on the analysis activities of partitioning a “feature” into story level work items. While the Product Owner still created some key stories upfront, now most were discovered just-in-time (JIT) with the full software development team after the feature was pulled to work on.</p>
<p>The initial analysis activity was time-boxed to either identify the first “batch” of 15 to 20 core stories or end after two hours. As a story was created, we did make a good faith attempt to “size” it roughly as a two to four day effort. But this &#8220;sizing effort&#8221; was mostly a simple “head-bob” exercise. We simply asked, “Does this look like two to four days?” If too few heads bobbed “yes”, a “spike” story was attached to this questionable large story, both were placed in ToDo, and any more sizing analysis was deferred until the story was pulled to be worked on. When this combination was pulled from ToDo, a deeper analysis spike activity of a day or two was performed to break down the questionable large story into a number of “more likely” two to four day stories. <strong><em>We clearly expected “new” stories to be discovered after work started on any of the feature’s initial “core” 15 to 20 stories.</em></strong> Again, the upfront activities now were focused on analysis to more fully scope, partition, and understand the feature. They were not to estimate upfront duration or effort, though I’ll touch on these two again just a bit later.</p>
<p><a href="/wp-content/uploads/2012/02/vissinc.com_rawdata.png" target="_blank"><img class="alignleft size-medium" title="Spreadsheet Snippet (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/02/vissinc.com_rawdata-300x157.png" width="300" height="157" /></a>As the team worked on stories, basic metrics were collected (see spreadsheet “snippet” of actual project data, parent MMF/epic identifiers were grayed out intentionally, <strong>click image to enlarge</strong>). From these basic “actual” measurements we were able to (quickly) begin developing a number of useful models including a “T-shirt” model for expected durations to complete a story level work item. Over time, as more data was collected, this model became very stable. These images show the model at 12-weeks, 24-weeks, and then after nearly 16 months of data (see the tables below labeled Basic Story Lead Time Metrics, <strong>click images to enlarge</strong>).</p>
<p>From these models we learned early that nearly 50% of our stories could be expected to be completed in 1 to 4 days, nearly 20%+/- in 5 to 7 days, nearly 20%+/- in 8 to 14 days, and nearly 10%+/- over 14 days. While over time we improved a bit on these performance metrics on the lower end of the duration lengths, <strong><em>the significant point here is early on we learned key capabilities and constraints of our software development system in our context.</em></strong> We were now able to effectively predict durations for completing stories and with much less effort.</p>
<blockquote>
<p><span style="color: #0000ff;">Note: I’m not discussing Cycle time here but a similar distribution data table was also created showing how long it was expected to take for a work item to reach Done after it had arrived in the Doing process state of the software development workflow (development effort). However, see my earlier post <span style="color: #000000;"><em><a href="http://www.vissinc.com/2011/09/29/basics-of-reading-cumulative-flow-diagrams/#anchorpt1" target="_blank"><span style="color: #000000;">here</span></a></em></span> for a fuller discussion of Lead time versus Cycle time and how it might impact a discussion on duration or effort tracking. Also, the question whether to include weekends, holidays, vacations, etc. in Lead or Cycle time calculations is a different discussion in my opinion and one I wont’ get into here either.</span></p>
</blockquote>
<h3><strong>Walking Thru the T-shirt Sizing Table</strong></h3>
<p><a href="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes01-12.png" target="_blank"><img class="size-medium alignright" title="T-shirt Sizes Table Wks 01-12 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes01-12-300x75.png" width="300" height="75" /></a><a href="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes01-24.png" target="_blank"><img class="size-medium alignright" title="T-shirt Sizes Table Wks 01-24 (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes01-24-300x75.png" width="300" height="75" /></a><a href="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes.png" target="_blank"><img class="size-medium alignright" title="T-shirt Sizes Table (Click Image to Enlarge)" alt="" src="/wp-content/uploads/2012/03/vissinc.com_t-shirt_sizes-300x75.png" width="300" height="76" /></a>How did these tables help? First, we now began to expect and communicate to others the “typical” story (50%+/-) was a small size work item and should be done, after entering the ToDo process state in the workflow, in four calendar days. This became the team’s internal service level of agreement (SLA) and it included weekends, holidays, vacations, sick days, staff meetings, HR trainings, etc. for members of the team. The basic metrics we collected (see above spreadsheet) included all these “variables” (numerous small variations) as part of “the system” measured and reflected them in these models. Second, as a story’s duration approached 4 days, it garnered additional attention (analysis) from others on the team and in our daily stand-ups. What is slowing it down? Who might be able to help? Can it be partitioned with some portion being completed and still providing value, while the other pieces gets de-scoped, deferred, or completed later (see concept of fidelity)? <sup>4</sup> This 20%+/- of the “typical” stories we encountered were considered medium size work items completed typically in 5 to 7 calendar days after entering the ToDo workflow process state.</p>
<p>When a story reached eight days days (orange row on the table), it was considered a &#8220;large&#8221; work item and our model showed we’d expect to have 20%+/- of the stories reach this size level. This is when we ramped the analysis up yet another notch and applied other tactics beyond the standard process and practices. For example, we might have multiple pairs swarm on the story, reconsider the initial strategy or solution for the story, consider applying a set-based design or engineering approach, re-evaluate its value and priority in the light of more information about the story, defer it, or even decide to simply continue working on it “normally” understanding it more fully and accepting the “cost”, if any, of the delay. Finally, when a story reached two-plus weeks (red row on the table), it was considered an &#8220;extra-large&#8221; work item and our model showed we’d expect 10%+/- of the stories to reach this size level. These stories typically were those that had dependencies outside of the cross-functional software development team. For example, stories with dependencies on marketing, legal, external engineering or IT departments, 3<sup>rd</sup>-party tools or services, or needing approvals for purchases of tools or 3<sup>rd</sup>-party services, etc. In many cases these stories required more than additional analysis and often were issues related to systemic or organizational challenges requiring higher level management involvement to address. <sup>5</sup></p>
<h3><strong>Bringing It to a Close</strong></h3>
<p>As mentioned earlier, the same basic data collected above was analyzed in various ways to develop additional models (ex. other data distributions, scatter plots, run (trend) charts, etc.) that helped us visualize and understand the capabilities and constraints of the software development workflow (system) in our context. For this post I only focused on the story level work item and used actual story Lead time data in the context of T-shirt sizing as one example of applying a pull scheduling perspective. I showed how we were able to get effective predictability and reduce overall upfront planning activities using an alternative to upfront estimating that was not providing a commensurate level of value (predictability) returned for the effort expended. However, several other similar and useful distribution models (T-shirt sizing style) contributed to our ability to create more effective schedules as well. <em><strong>For example, models for the expected number of stories completed per specified time interval of interest (flow) such as per day, per week, two-weeks, whatever, or models for the expected number of stories completed per feature.</strong></em></p>
<p>We in fact used these additional models to establish similar effective predictable expectations for these metrics as well. In the process, we were able to eliminate the need for a “sprint planning meeting” every two weeks. Instead, we only needed JIT planning sessions approximately every 29 to 32  calendar days, which was the measured typical duration for completing one work item from our feature level backlog. Just as we were now able to identify emerging large and extra-large stories and respond earlier to the associated issues, in a similar fashion a distribution model of story counts per feature allowed us to more effectively determine expected number of stories per feature level work item and recognize an emerging &#8220;large&#8221; feature and respond earlier to associated issues. In essence, this is pull scheduling. We had established predictability upfront based on identifying capabilities and constraints derived from “actual” metrics (measurements) of our software development workflow (system). We developed schedules (expectations) based on these capabilities and constraints. Then we worked to gain commitments to these expectations and to meet them by also using the models to help identify and enable us to respond more quickly as issues emerged rather than continue to try with little success to get better at upfront estimating (predicting the future).</p>
<p>Take care,</p>
<p>Frank</p>
<p>&nbsp;</p>
<p>References:</p>
<p><sup>1</sup> David J. Anderson, &#8220;<span style="color: #0000ff;"><em><a href="http://agilemanagement.net/index.php/site/comments/estimation_versus_analysis/" target="_blank"><span style="color: #0000ff;">Estimation versus Analysis</span></a></em></span>&#8221; (blog post, December 18, 2005).</p>
<p><sup>2</sup> Mary and Tom Poppendieck, <em>Lean Software Development</em>, (2003); <em>Implementing Lean Software Development</em>, (2006); <em>Leading Lean Software Development</em>, (2009); see push scheduling, pull scheduling, push systems, or pull systems in the index of these three books (see their web site <span style="color: #0000ff;"><a href="http://www.poppendieck.com/" target="_blank"><span style="color: #0000ff;">here</span></a></span>).</p>
<p><sup>3</sup> David J. Anderson, <em>Kanban</em>, (2010); foundational book on implementing concepts of limiting work-in-progress in software development context.</p>
<p><sup>4</sup> Dean Leffingwell, <em>Scaling Software Agility</em>, (2007); introduces and discusses the concepts of &#8220;fidelity&#8221; levels (least imaginable, minimum credible, moderate, and best) when delivering software development solutions, and &#8220;committing to the signature of a feature&#8217;s scope&#8221;, not the implementation of the feature. Both are key tools in being able to deliver software predictably in challenging contexts (see Dean&#8217;s web site <span style="color: #0000ff;"><a href="http://scalingsoftwareagilityblog.com/" target="_blank"><span style="color: #0000ff;">here</span></a></span>).</p>
<p><sup>5</sup> Dave Snowden, see <span style="color: #0000ff;"><em><a href="http://www.youtube.com/watch?v=N7oz366X0-8" target="_blank"><span style="color: #0000ff;">Cynefin Framework</span></a></em></span> (YouTube video) and <span style="color: #0000ff;"><a href="http://www.cognitive-edge.com/" target="_blank"><span style="color: #0000ff;">Cognitive Edge</span></a></span> web site; in our context, the Small, Medium, Large, and Extra-Large T-shirt &#8220;sizes&#8221; for story level work items were less likely to infer amounts of &#8220;tasks&#8221; to do (more dirt to shovel) but more likely to be indicative of increasing difficulty in partitioning a story or attaining functional solution desired (simple, complicated, or complex) and as &#8220;duration&#8221; increased our efforts went from standard practices to much more iterative, learning focused, and emergent ones.</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/02/28/t-shirt-sizing-predictability-with-pull-scheduling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Predictability Paradox and Obliquity: Achieve Predictable Outcomes Indirectly</title>
		<link>http://www.vissinc.com/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/</link>
		<comments>http://www.vissinc.com/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 08:03:35 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Pull Scheduling]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=977</guid>
		<description><![CDATA[&#8220;The paradox is that trying too hard to create predictability creates the opposite effect.&#8221; - Mary Poppendieck, Aug 2003 –<a href="http://www.vissinc.com/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>&#8220;The paradox is that trying too hard to create predictability creates the opposite effect.&#8221;</em></span><br /> <span style="color: #0000ff;">- Mary Poppendieck, Aug 2003 – Lean Development and the Predictability Paradox</span></p>
<p><span style="color: #0000ff;"><em>&#8220;If you want to go in one direction, the best route may involve going in the other. </em><em>Paradoxical as it sounds, goals are more likely to be achieved when pursued indirectly.&#8221;</em></span><br /> <span style="color: #0000ff;">- John Kay, Jan 2004 – Obliquity, January (article)</span></p>
<p><span style="color: #0000ff;"><em>&#8220;Rationality is not defined by good processes, irrationality lies in persisting with methods and actions that plainly do not work – including the methods and actions that commonly masquerade as rationality.&#8221;</em></span><br /> <span style="color: #0000ff;">- Johh Kay, Mar 2010 – Think oblique: How our goals are best reached indirectly</span></p>
</blockquote>
<p>If you’ve worked in the software development field for any length of time, I&#8217;m sure you’ve been asked, “When will the project be finished?” I’m also sure you’ve found this question challenging to answer more often than not. Why is this? Estimating, forecasting, projecting, call it what you will, is not easy to do well, or even close to effective, especially as the project increases in size, complexity, or both. In a single post, I’m definitely not diving deeply into how one might estimate, forecast, or project how long a software development project might take to complete. However, keeping in mind the “estimating challenges” we’ve encountered in software development provides a real world context for discussing what I think are a couple of related and intriguing concepts.</p>
<h3><strong>The Predictability Paradox</strong></h3>
<p><img class="alignleft size-full" title="paradox-m_paradoxcompiler" alt="" src="/wp-content/uploads/2012/01/paradox-m_paradoxcompiler1.jpg" width="240" height="184" />In 2003, Mary Poppendieck published a paper titled “Lean Development and the Predictability Paradox.” The lean principles found in this paper appear in a refined and expanded form in Mary and Tom Poppendieck’s book “Lean Software Development: An Agile Toolkit” (2003). However, unless I missed it, the Predictability Paradox, neither as a term or concept, appears explicitly in this book. But, the concept definitely resurfaced in their following book, “Implementing Lean Software Development: From Concept to Cash” (2006), although relabeled as a chapter sub-heading “Myth: Predictions Create Predictability.”</p>
<p>So, what exactly is the Predictability Paradox? <span id="more-977"></span>The paradox, as explained by Mary and Tom Poppendieck in this second book is that <strong><em>“in our zeal to improve the predictability of software development, we have institutionalized practices that have had the opposite effect. We create a plan, and then act on that plan as if it embodies an accurate prediction of the future.”</em></strong> The key point for me here is, developing a plan itself isn’t the issue, but failing to recognize that we act as if this plan could never be wrong is an issue. You might say, “Now wait a minute, if the plan is ever found to be wrong, shouldn’t we then work harder upfront to get better at making sure the plan is more often right?” I’d say, “Sure!&#8221; But then, I’d ask, “How?”</p>
<p>In discussing the Predictability Paradox further, the Poppendiecks list four factors they feel contribute to making the effort of accurately “predicting” the future a difficult one, that is, when what we are trying to predict is one or more of the following:</p>
<ol>
<li>Complex</li>
<li>Detailed</li>
<li>To occur in the distant future</li>
<li>Occurring in an uncertain (changing) environment</li>
</ol>
<p> <br />While I don’t consider this “a complete list”, it’s definitely sufficient to illustrate sources of the challenges we face in any effort to ensure upfront the plan is more often right. But, what if we instead approached a goal of attaining predictable outcomes from another perspective?<em><strong> If we start with the premise that our plans, and in particular our initial and early plans, will not be highly accurate or correct (a high probability in many cases actually), what would we do differently?</strong></em> What if we put more effort, especially early on in the project, into increasing the available response options we’d have if or when we learn the plan is not right?  Could this be a more effective approach to creating predictable outcomes, than applying additional upfront planning or extra efforts needed to adhere to the “original version” of our plan?</p>
<p>The Poppendiecks conclude this section in their book with this thought <strong><em>“an organization that has a well-developed ability to wait for events to occur and then [is able] to respond quickly and correctly will deliver far more predictable outcomes than an organization that attempts to predict the future.”</em></strong> Is this line of thinking something you can or will buy? I’m assuming the first response for some reading this is “This sounds nice in theory, but in my real everyday world I don’t have the luxury of waiting until all hard-to-predict events occur.” In the broader context of the reading I’ve done on lean, and in particular software development, and even in the broader context of the Poppendieck’s book, I understand their message, but that doesn’t mean it is easy to do, and getting to this ability that they speak of doesn’t happen overnight either, does it? Still, thinking about how to increase your options to respond when plans turn out wrong and working toward increasing this ability is a desirable goal and one that you can move toward even if just <strong><em>incrementally (and iteratively) to start</em></strong>. What downsides exist for you that would prohibit considering or taking small steps in this direction?</p>
<h3><strong><a name="anchorpt1"></a>Economic Success, Economic Choices</strong></h3>
<p>In his book “The Principles of Product Development Flow”, Don Reinertsen suggests that <strong><em>pursuing economic success by focusing on efficiency metrics, such as maximizing capacity utilization, or by focusing on conformance to plan, is fundamentally wrong. Instead, he says economic success is more likely to be achieved by making good economic choices,</em></strong> based on the latest most reliable information available, and acknowledging as information changes, the best economic choice may change as well.</p>
<p>Earlier I suggested a key point for me was seeing that planning is not the issue, but it is acting as if the plan could never be wrong. Here, I think <em><strong>the key point again suggests that planning itself is not the issue, but that failing to change the plan when we have later and more reliable information is the issue.</strong> </em>It is not just working on our ability to keep options open longer or to more quickly respond when a glitch occurs, it is also shifting to an economic perspective to guide our choices in how we plan, how much we plan, how we respond to glitches when they occur, and continuing to ask along the way if conforming to the earlier plan still makes sense.</p>
<p>Just thinking about economic models is probably enough to dissuade some, if not most, that adding an economic perspective to planning is not a viable option. I’ve actually met Don on several occasions and have followed his work for several years now. Again, I understand the message here too, but that doesn’t mean it’s easy, does it? Still, at the very least, as you plan, is it possible to start asking where in your planning efforts does it “feel” like you’re not getting a good return on your investment of time, and if possible roughly quantify it? For example, begin with looking for where in your planning today the effort to plan or estimate upfront how long something will take to complete is easily observable to be a significant amount of time relative to the time you think it would take to simply complete the work “that you’re planning.” From an economic perspective, is this <strong><em>trade-off</em></strong> in time for value returned at least worth questioning? As an experiment, for a period of time do no upfront estimating of these types of work items at all. Instead, simply track the actual times, plot the data over time, and see if this trend information provides all that you need for “future planning” of these types of work items. Experiment with other work item types too and identify others that forecast well using this lightweight form of planning.</p>
<h3><strong>Obliquity</strong></h3>
<p>John Kay, a leading British economist, and author of several books, began publishing writings about the concept of Obliquity as early as 2004 (but indicates the term came about earlier). Kay’s emphasis early on was in microeconomics and in particular economics related to businesses. He was particularly interested in answering questions similar to this one, <strong><em>“If two firms face the same basic conditions of supply and demand, and operate within the same market structure, why does one firm do better than another?”</em></strong> In the research he did to answer this question, he studied various businesses and some public agencies, and found <strong><em>the most successful organizations were those that achieved their goals with an indirect approach rather than a direct one</em></strong>. This was even more the case when the systems and the environments were complex and <strong><em>“unpredictable.” </em></strong>You can find examples that he cites in several posts online as well as in his recent book titled “Obliquity: Why our goals are best achieved indirectly” (2010).</p>
<p>Here is another interesting example that demonstrates a twist on obliquity thinking that comes from a study cited in the popular book by Tom DeMarco and Timothy Lister “Peopleware: Productive Products and Teams” (1999). DeMarco and Lister reference a study done in 1985 by two researchers, Michael Lawrence and Ross Jeffrey, at the University of New South Wales. The focus of the study was to see how productive programmers were on projects based on who developed the upfront estimates. There is much more interesting information they reference in this study but I’ll limit my comments related to our discussion on obliquity for now. In short, the study showed that programmers were more productive when they developed the estimates for the work they were asked to do, than if their managers developed the estimates. This is probably not a surprise. However, this study also showed <strong><em>the programmer’s productivity was highest when there were no estimates requested at all.</em></strong> In the desire for achieving greater productivity, a direct approach was taken, based on the belief that asking programmers to estimate their work upfront and then have them work toward their estimates would ensure high productivity (by avoiding gold plating or an assumed to be true Parkinson’s Law type effect). Yet, this study showed an indirect approach, asking for no estimates upfront, actually resulted in higher programmer productivity.</p>
<p>How might taking an oblique (indirect) approach change your planning in the context of “estimating challenges” and a desire to produce predictable outcomes? <em><strong>Do you accept that for some problems the full picture and challenge is revealed only as you actually get into the work to solve them? </strong></em>If so, would predictable solutions be possible earlier, or more economically obtained, using an upfront approach with a focus on learning (experimentation and discovery) rather than one emphasizing upfront planning or estimating (guessing)? How might you communicate when a project will be done with less upfront estimating efforts?</p>
<p>One alternative to the upfront (push) estimating planning approach you might consider is move toward a pull scheduling system. Rather than “predicting” (anticipating demand or delivery), a pull system approach reduces the emphasis on upfront planning or estimating by a shift of emphasis to one on collecting and tracking actual throughput capability of a system over time, and then using this historical (production data, not predictions or guesses) to project (forecast) expected delivery going forward. As more data is collected, trends become more pronounced, and normal delivery capacity becomes better known and documented. This information becomes a solid foundation for predictable outcomes as well as a dependable baseline for assessing the impact of any improvement efforts to the software development process in place.</p>
<h3>Closing Thoughts</h3>
<p>So, in closing, do you think the ideas of the Predictability Paradox and Obliquity have some relevance in helping you improve your ability to answer the challenging question “When will the project be finished?” Do these concepts give you ideas for making changes to your planning approach or estimating, forecasting, and projecting practices? Do you think taking an economic perspective will result in you making some different choices in how much upfront planning or estimating you’ll do or cause you to be more responsive and open to changing your plans as new information becomes available? If so, I hope you&#8217;ll share some thoughts or insights from your experiences.</p>
<p>Take care,</p>
<p>Frank</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2012/01/30/the-predictability-paradox-and-obliquity-achieve-predictable-outcomes-indirectly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unknown Unknowns: Using Types of Uncertainty to Guide How You Manage Your Project</title>
		<link>http://www.vissinc.com/2011/11/28/unknown-unknowns-using-types-of-uncertainty-to-guide-how-you-manage-your-project/</link>
		<comments>http://www.vissinc.com/2011/11/28/unknown-unknowns-using-types-of-uncertainty-to-guide-how-you-manage-your-project/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 05:18:00 +0000</pubDate>
		<dc:creator>fxvega</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Iterations]]></category>
		<category><![CDATA[Milestones]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Risk Management]]></category>
		<category><![CDATA[Variation]]></category>

		<guid isPermaLink="false">http://www.vissinc.com/?p=832</guid>
		<description><![CDATA[“Don’t manage the unknown and unpredictable the same way you manage the known and predictable.” &#8211; Doug DeCarlo, Oct 2004<a href="http://www.vissinc.com/2011/11/28/unknown-unknowns-using-types-of-uncertainty-to-guide-how-you-manage-your-project/" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
				<content:encoded><![CDATA[<blockquote>
<p><span style="color: #0000ff;"><em>“Don’t manage the unknown and unpredictable the same way you manage the known and predictable.”</em></span><br /> <span style="color: #0000ff;"> &#8211; Doug DeCarlo, Oct 2004 &#8211; eXtreme Project Management</span></p>
<p><span style="color: #0000ff;"><em>“Managers must be flexible enough to adopt the right approaches at the right time…to find the balance between planning and learning.”</em></span><br /> <span style="color: #0000ff;"> &#8211; Arnoud De Meyer, Christopher H. Loch, and Michael T. Pich &#8211; Managing Project Uncertainty: From Variation to Chaos</span></p>
</blockquote>
<p><img class="alignleft size-full" title="dice_wildartist" alt="" src="/wp-content/uploads/2011/11/201111_Post01.jpg" width="240" height="200" />Reflecting on the last ten years of my own experience working on projects, early on, I saw mostly “traditional project management.” That is, <strong><em>project management that places greater emphasis on planning upfront, and as a whole, a greater proportion of the total project planning is done very early in the project, and seeks to provide predictability of activities over longer planning horizons</em></strong>. Other terms I’ve heard for this project management style are “predictive” or “sequential (gateway) delivery.” In more recent years, however, my experience has been to see “iterative and incremental” approaches. Again, that is, <strong><em>project management that places less emphasis on planning upfront, and as a whole, a greater proportion of the total project planning is done in small amounts iteratively across the project, and seeks to provide predictability of activities only over shorter planning horizons</em></strong>. Other terms I’ve heard for this project management style are “emergent” and “incremental delivery.”</p>
<p>While this is a minimal level of distinction, for our purposes it will be sufficient. This won’t be a post on “good vs. evil” styles of project management. In fact, I’m advising, that might be a “limiting” perspective. Rather, the “focus” is to view projects from a perspective of uncertainty (as a model) to gain insights into these two project management styles that may help us more effectively manage our projects.</p>
<h3><strong> </strong><strong>Are All Projects the Same?</strong></h3>
<p>In your experience, how often have you seen projects managed differently from one another? Is there “evidence” to suggest, based on how you manage or see projects managed, that all projects are the same?<span id="more-832"></span></p>
<p>Take a look at this list of a few common project management practices. Do any sound familiar to you as some of the “sure ways” to successfully manage projects that you’ve used or seen along the way?</p>
<ol>
<li>Identifying and tracking milestones</li>
<li>Identifying potential issues and developing risk management plans to reduce and mitigate them</li>
<li>Utilizing iterations</li>
<li>Conducting intermittent project plan reviews</li>
</ol>
<p> <br />Why would you choose to use “iterations”, and what makes them “different” than simply a “short” version of a traditional project management approach, what is often referred to as “mini-waterfalls”? Do your planning horizons (or your iteration lengths) ever vary or are they the same length on each project and for all parts of the project? <strong><em>Is there a lack of clarity in the differences of project management styles and reasons for certain practices that results in us more or less using them, or observing others use them, in the same way on any project we work on, and consequently making them less effective at times?</em></strong> We’ll come back to this question, but first, we’ll consider projects themselves a little more.</p>
<h3><strong>Well-Known Projects and Not-Well-Known Projects</strong></h3>
<p>What would a “well-known project” look like to you? For starters, it would be a project where many of the requirements and tasks appear very familiar to you already, where you have previous and extensive experience with projects that are very similar. It could be a project with a relatively small set of requirements and tasks, making it fairly straightforward to identify it as a part of a number of larger and similar projects you’ve managed successfully already. Do you think a well-known project would have a small number of assumptions? It is reasonable to expect that a well-known project would in fact have few assumptions, and any, would be ones that could be validated easily or predictably.</p>
<p>Would a well-known project be one that has a limited number of highly predictable outcomes? A well-known project would likely have a small finite number of dependencies such that the possible outcomes are easily enumerable and highly predictable in terms of some (quantifiable) probability. What else would you add to this list?</p>
<p>Now, consider what a “not-well-known project” might look like to you. For starters, it would be a project with requirements and tasks that you have no or little previous experience managing. It may also be a project with a large number of assumptions, and even if the number of assumptions were small, a number of them might be difficult to validate. It would be a project with a high number of dependencies such that the outcomes are not easily enumerable or a number of the possible outcomes are not highly predictable in terms of some (quantifiable) probability.</p>
<p>But these are characteristics often associated with “innovative or break-through” projects, those “game-changing” projects that create “separation” between you and your competitors. They are projects that seek to accomplish something “never-done” before or to accomplish something in a competitively improved way (technology or process). Then, what about the environments we’re managing our projects in? Consider a project managed in the context of a “merger” or in the context of a just released new competitor offering. These factors as well may put any project into the not-well-known context. Again, what else would you add to this list?</p>
<h3><strong>Another Frame (Lens)</strong></h3>
<p align="left">No surprise, in the context of being well-known or being not-well-known, it’s clear we can see projects are not all the same. So, here’s my earlier question restated in other ways. <strong><em>When was the last time you didn’t “iterate” on a project or managed some part of your project using a “predictive” approach over an “emergent” one?</em></strong> Maybe it is time for a “fresh” look! <strong><em>What makes a “series of mini-waterfall deliveries” different from an “incremental and iterative delivery”, or is it really different?</em></strong> Maybe there is a “new” perspective and different distinction to look for here!</p>
<p align="left">We’ll take another look now at that earlier list of practices, using a different frame (lens). I created this table below as a model for myself, heavily derived from the article “Managing Project Uncertainty: From Variation to Chaos” by Arnoud De Meyer, Christopher H. Loch, and Michael T. Pich. The uncertainty types listed in the middle column are extensively discussed in this article, and while no table exists in the article itself, I feel mine below conveys what I took away from the article. We’ll now go through each row in more detail.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="160">
<p align="center"><strong>Project Management Practice</strong></p>
</td>
<td valign="top" width="160">
<p align="center"><strong>Category of Uncertainty</strong></p>
</td>
<td valign="top" width="160">
<p align="center"><strong>Project Focus</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="160">Milestones</td>
<td valign="top" width="160">Variation</td>
<td valign="top" width="160">SLA Focused</td>
</tr>
<tr>
<td valign="top" width="160">Risk Management</td>
<td valign="top" width="160">Foreseen Uncertainty</td>
<td valign="top" width="160">Insurance Focused</td>
</tr>
<tr>
<td valign="top" width="160">Iterations</td>
<td valign="top" width="160">Unforeseen Uncertainty</td>
<td valign="top" width="160">Learning Focused</td>
</tr>
<tr>
<td valign="top" width="160">Project (Assumptions, Goals) Reviews</td>
<td valign="top" width="160">Chaos</td>
<td valign="top" width="160">R&amp;D Focused</td>
</tr>
</tbody>
</table>
<h3><strong><a name="anchorpt1"></a>Milestones and Variation</strong></h3>
<p>Milestones, in my experience, are intended to represent a necessary outcome for the project success, and it’s understood (or assumed) there are decidedly negative consequences if you miss one. Is your experience similar? If so, I would base a “milestone” then only on something well known to be achievable, and highly predictable, even on a longer planning horizon. It doesn’t mean achievable 100% of the time, but it is more than “a wish” for something to be achieved. That is, when established, the milestone is based on information (evidence) supporting my opinion (judgment) that it is achievable and highly predictable, otherwise “as a label” it is of little value.</p>
<p>This brings us to the first type of uncertainty listed in our table, variation. De Meyer et al., describe one form of uncertainty that exists in projects resulting from combining numerous small influences that individually would be costly to plan for or monitor (due to expense or time). However, many times it is possible to measure this “activity” as a range of values (an overall variation) that in turn can be used to cost effectively plan (manage, not control) with a high level of predictability even at longer planning horizons and also monitor this activity throughout a project. Is variation another way to represent a necessary outcome or something similar and as useful?</p>
<p>Here are a couple examples from real world projects. The first is from direct experience as part of a software development team several years ago. We were using an iterative and incremental development (IID) approach. As part of this IID approach, we’d attempt to “estimate” the work that we “expected” to complete in the upcoming short and uniformly fixed-length time period; this was done attempting to (analyze) and estimate each of the small numerous individual work items. These “estimates” were then used to establish and communicate an overall project release plan, which included “milestones” along the way. However, in our context, time and again these particular  “estimates” proved not to be accurate (training, or effort put into estimating wasn’t the issue).</p>
<p>We tried another approach and began simply tracking the “lead times” for work items (observing how long they took to complete once they were selected for being worked on). In (weeks), we established measures of variation for how long it took to complete individual work items, and how many work items we’d complete per day (per iteration); over (months) we also established a measure of variation for how many work items we’d complete for any project.</p>
<p>We found these measures of variation proved to be very accurate for us and required significantly less time to acquire from the overall team. To be clear, we continued the software development work itself using an IID (emergent) way of working. However, “milestones” for release planning (forecasting) purposes were now based on well-known, measures of variation in this case, and gave us high predictability over longer planning horizons.</p>
<p>The second example comes from my collaboration with a colleague who is working with a client that is using a similar approach in their project planning efforts. However, in their context, his client has been able to establish lead time measures of variation at the project level as well (lead time variations of projects, not just for work items needed to complete a project). They moved away from estimating individual work items 18 months earlier. Now with well known, project level variation measures in this case, they are in a position to further reduce efforts needed for planning “milestones” for forecasting purposes. In fact, they are at a level of predictability to consider providing their business stakeholders something akin to an SLA (service level of agreement), well known, achievable and highly predictable, for completing any project in their organization.</p>
<p>Both show that a project manager can choose to use iterative and incremental delivery (emergent) practices, but it doesn’t exclude managing some aspects using non-iterative (predictive) practices. <strong><em>Manage what is “predictable” in your project (well-known or can easily and quickly become well-known) differently from what is not predictable! </em></strong>Measures of variance can effectively aggregate numerous “hard or costly to predict” small influences into something “visible”, well-known, and predictable over longer planning horizons.</p>
<h3><strong>Risk Management and Foreseen Uncertainty</strong></h3>
<p>Risk management, as practiced in traditional project management, is not often something I see explicitly performed on iterative and incremental projects I’ve worked on recently. I believe the “uncertainty” typically addressed by risk management as practiced in traditional methods is, in large part, implicitly diminished by several software development technical practices commonly found in iterative and incrementally managed projects.</p>
<p>This brings us to the second uncertainty type listed in our table, foreseen uncertainty. De Meyer et al. describe foreseen uncertainty by contrasting it with variation. Unlike variation, which is a measure, a range, of the combined influence of numerous small influences, foreseen uncertainty influences are considered “singly” identifiable (distinct) from each other. Here’s another way to contrast these two uncertainty types: 1) view variation, as we’ve described earlier, as inherent in your system, expected to occur (to exist), and for this reason it is often referred to as “common cause variation” (or common chance variation or quantifiable variation); 2) view foreseen uncertainty as not necessarily inherent in your system, but if it is, expect the numbers of these influences to be smaller, and more significantly, the probability of expected occurrence for each would be low, and for this reason it is often referred to “assignable cause variation” (or special cause variation or non-quantifiable variation). In general, foreseen uncertainty are events that you’ve seen happen in your projects or other projects, so even though rare, you can “foresee” them happening, and therefore plan for them using risk management practices.</p>
<p>When I’ve seen risk management used explicitly to address foreseen uncertainty, the focus is on identifying, classifying, evaluating (quantifying), and then planning accordingly to reduce (avoid) potential for occurring or to reduce (mitigate) the negative effects. This is typical of how you would use “insurance” for example to mitigate the effects of a car accident, a home fire, illness, or an early death, along with of course working to reduce these occurrences through performing regular car maintenance, following safe driving practices, monitoring fire hazards in you your home, having a smoke/CO detector, eating right, and exercising.</p>
<p>In a similar fashion, many (technical) practices are “done implicitly” for the most part in “iterative and incremental” managed projects to address foreseen uncertainty. Some examples include: nightly backups, tested backups, software configuration management, continuous integration, automated unit-testing, automated integration testing, automated acceptance testing, and continuous code refactoring. In fact, the iterations themselves are intended to be a form of risk management. However, iterations address even more the uncertainty type we’ll discuss next.</p>
<p>For now, <strong><em>recognize “iterative and incremental” project management practices can be used to provide risk management implicitly for a number of foreseen uncertainty influences, but explicit risk management is still necessary for some foreseen uncertainty influences on your projects. </em></strong>In particular, look for possible events (rare, but foreseeable influences) in the less-well-known (or not-well-known) parts of your project that are not addressed by the common or similar technical practices listed earlier. You are using a number of those above listed technical practices, right?</p>
<h3><strong>Iterations and Unforeseen Uncertainty</strong></h3>
<p>Iterations, we’ve talked about from the beginning, in particular distinguishing between “iterations” as a series of short “sequential” (mini-water fall) deliveries and “iterations” as a series of “iterative and incremental” deliveries. Since we’re exploring project management with a new frame (lens) here, experimenting a bit, we’ll move forward assuming for the moment we don’t know there is a difference, don’t see one for ourselves, or don’t see a significance (this may be “reality” for most of us). My take, for the moment, from the article by De Meyer et al. is that from a perspective of types of uncertainty, what is key is that a series of “sequential iterations” can be a useful project management practice for addressing the next type of uncertainty we’ll look at in our projects.</p>
<p>This brings us to the third uncertainty type listed in our table, unforeseen uncertainty. De Meyer et al. describe unforeseen uncertainty as influences that can’t be identified in project planning, or if “foreseeable”, they are considered so unlikely you don’t bother with contingencies, or even risk management. This sounds a little odd at first, but contrast this with our earlier context of foreseen uncertainty and “insurance.” You don’t buy insurance for every “conceivable” negative influence remotely possible in your life (in some cases “insurance” doesn’t help you anyway).</p>
<p>These influences, remotely possible, and in some cases never imagined, we’ve seen experienced by others or ourselves, but only faced, when they occurred! During these times focus gets narrowed and acute, perspectives get shifted or re-oriented, and “planning horizons” often get shortened or very short (one day or one week at a time). There is still stability in terms of some assumptions and goals in these instances, but we are in a mode of coping with new situations or information, learning of still more new challenges, and required to explore new and other paths, while forgetting about pursuing others we thought were only recently still possible.</p>
<p>Unforeseen uncertainty results also from an unanticipated combination or interaction of a number of “foreseeable influences.” This is the case that most likely occurs on the not-well-known projects talked about earlier. When unforeseen uncertainty is encountered as we take on a not-well-known project, just as we’d similarly do in our personal lives, our project management practices too need to change to a more narrow focus or “bite-size” approach, and this is where “sequential iterations” come into play more significantly.</p>
<p><strong><em>The more not-well-known the project, the shorter the planning horizons need to be, and the more frequent they must be revised. The project management perspective and role also “shifts away” from planning and monitoring progress of a few large milestones, and is “re-oriented toward” an emphasis on learning, adapting, exploring new paths or solutions, and creating along the way (more just-in-time, and incremental) new and smaller milestones (targets), and to a greater monitoring of assumptions.</em></strong></p>
<p>To be clear here, with unforeseen uncertainty you go beyond using predictive or risk management as you see in traditional project management approaches; you incorporate <strong><em>sequential iterations, making them shorter and more frequent as unforeseen uncertainty influences increase, and you shift your perspective from planning and monitoring long range, to an emphasis of adapting, learning, exploring, monitoring assumptions, and reaching frequent incremental smaller milestones (targets)</em></strong>.</p>
<p>In the software development contexts I’ve most recently worked in over the last seven years, sequential iterations are the predominant project management practice used in particular because much of software development is related to implementing “never-done-before or new-to-us” features and often using “never-used-before or new-to-us” technologies as well. However, in these contexts, we continued to experiment, using variable (not uniform fixed-length) iteration lengths, and have also decoupled various project aspects (planning, development, incremental deliveries, retrospectives, etc.) from each other, as we discovered more effective iteration frequencies (natural “cadences”) for each aspect.</p>
<h3><strong>Project (Assumptions, Goals) Reviews and Chaos</strong></h3>
<p>Project reviews, as often described, are likely to be viewed as a status update on the project or an incremental product review. But in our context of discussing uncertainty types, I’m referring to a “review of the overall projects assumptions and goals.” That is, “re-thinking” the project assumptions or goals in whole, not just a  “refinement” of the project assumptions or goals.</p>
<p>This brings us to the fourth uncertainty type in our table, chaos. At first glance there may not appear to be any value talking about chaos in projects. Again, contrasting often helps us improve our understanding. De Meyer et al. describe chaos as “extreme uncertainty” and contrast it to unforeseen uncertainty by distinguishing along the lines of the project’s assumptions and project goals. Projects with extreme uncertainty have unstable overall assumptions and goals; projects with unknown uncertainty, while they can approach an appearance of being “chaotic” at times, for the most part maintain a degree of stability along key project assumptions and key project goals.</p>
<p>Projects with “extreme uncertainty” are also often referred to as research and development (R&amp;D) projects. In these types of projects, extreme uncertainty is fully understood and expected. Project reviews in this case have little or nothing to do with obtaining status or “refining” stable project assumptions and goals, but rather much more about “re-thinking” and “re-defining” overall project assumptions and goals based on the latest information. <strong><em>Often, from R&amp;D projects the original “objectives and hoped-for results” are not the end product from these efforts</em></strong>.</p>
<p>I don’t have experience working in a full R&amp;D environment. However, I’ve been a part of team that worked on a project where the original goal was something that had not been done in the business domain. Over the course of the project the main overall goal remained stable, but many project assumptions and sub-goals along the way were unstable, and in fact for a time we were working in an R&amp;D (very chaotic) mode. The team delivered on the project’s primary goal, reasonably near (within months, not years) the company’s desired timeframes, and it was in fact a “first ever” type of product release in this business domain.</p>
<p>While the end result was a successful product release, it was also definitely a narrower and “much refined” version from many of the product targets conceived along the way. It too was the most exciting (fun), challenging (demanding) project I’ve worked on, and as you might imagine provided me a great opportunity to learn a tremendous amount about managing (not controlling) and leading a project with a great deal of unforeseen and, at times, extreme uncertainty.</p>
<h3><strong>Closing Thoughts</strong></h3>
<p>Look for “differences” between the projects you manage and be open to considering that even a single project may not be “entirely” well-known or not-well-known. Experiment with using measures of variance to “aggregate” small numerous influences inherent in your project, and eventually across projects, and see if they enable you to create, over time with less effort, more predictable “milestones” over longer planning horizons.</p>
<p>View iterations, and in particular the technical practices they enable and that you’d implement, as implicit risk management to address foreseen uncertainties (negative influences that are rare but you see happen); but, also recognize where explicit “traditional” risk management practices are still needed in your project for these types of uncertainties (insurance where needed). When a project has the characteristics of a not-well-known project we discussed, experiment with iterations, if you’re not already, and shorten planning horizons to a point where you’re more regularly meeting “milestones.” [My first “iterative” effort divided a traditional managed project with a twelve month planning horizon into three iterations, each four months long; in time we did evolve to delivering incrementally in the range of weeks].</p>
<p>But more importantly alter your role (and other’s perspective) to being more focused on adapting, learning, and exploring alternate paths or solutions. Lastly, as you manage your changing projects, continue experimenting and tweaking your practices while keeping the quotes at the top of the post in mind!</p>
<p>Take care,</p>
<p>Frank</p>
  ]]></content:encoded>
			<wfw:commentRss>http://www.vissinc.com/2011/11/28/unknown-unknowns-using-types-of-uncertainty-to-guide-how-you-manage-your-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
