<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
  
    <title>Agile Management Blog</title>
    <link>http://www.agilemanagement.net/Articles/Weblog/blog.html</link>
    <description>David J. Anderson's Agile Management Blog - The agile manager's recipe for success: focus on quality; reduce work-in-progress; balance demand against throughput; prioritize!</description>
    <language>en-us</language>
    <pubDate>Friday, May 09, 2008</pubDate>
    <image> 
       <title>Agile Management Blog</title>
       <url>http://www.agilemanagement.net/Images/Pictures/ami3.gif</url>
       <link>http://www.agilemanagement.net/Articles/Weblog/blog.html</link>
       <width>25</width>
       <height>19</height>
       <description>Thoughts on management, software, constraints and agility</description>
    </image>

    
      <item>
        <title>APLN Seattle Summit Update: More Speakers Confirmed</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/APLNSeattleSummitUpdateMo.html</link>
        <description><![CDATA[To add to the already stellar list of participants for <a href="http://www.apln.org/summits.html">our event</a> I confirmed today that <a href="http://www.avanade.com/about/team/detail.aspx?id=29">Dale Christian</a>, CIO at <a href="http://www.avanade.com/">Avanade</a> will participate in our CIO Panel Session, and <a href="http://www.netobjectives.com/instructors">Alan Shalloway</a> of <a href="http://www.netobjectives.com/">Net Objectives</a> will join our Think Tank / Open Space sessions as a facilitator. Alan will either assist Mike Griffiths on Agile Program Management or Corey Ladas on Kanban. In the event of the latter, I'll be assisting Mike with the program management topic. <font color="#E3D9D9">Technorati tag: Agile, APLN, Lean, Seattle, Edgewater+Hotel, Avanade, Dale+Christian, Netobjectives, Alan+Shalloway</font>]]></description>
        <pubDate>Friday, May 09, 2008</pubDate>
      </item>
    
      <item>
        <title>APLN Seattle Summit Update: Registration announced</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/APLNSeattleSummitUpdateRe.html</link>
        <description><![CDATA[<p>We have opened up the registration for the APLN Leadership Summit in Seattle on July 17-18.</p>
<p><a href="http://www.apln.org/summits.html">Register now</a> and get the early bird special price of $300.</p>
<p>We have a fantastic program lined up and a uniquely collaborative<br />
conference format.<br />
<br />
Key note speeches from<br />
<br />
<a href="http://managementcraft.typepad.com/management_craft/">Lisa Haneberg</a>,<br />
author of several books including "High Impact Middle Management",<br />
"Focus Like a Laser Beam" and "Two Weeks to a Breakthrough",<br />
<br />
and <a href="http://www.linkedin.com/pub/0/206/480">John Yuzdepski</a>,<br />
Chief Marketing Officer at TestQuest, former VP &amp; GM at Openwave and<br />
prior to that VP &amp; GM of Sprintpcs.com<br />
<br />
a CIO panel - featuring leaders from firms around Seattle,<br />
participants to be confirmed<br />
<br />
Think Tank / Open Space Sessions led by recognized leaders in the<br />
agile field, including...<br />
<br />
<a href="http://www.lukehohmann.com/">Luke Hohmann</a>, Collaboration Games<br />
David Anderson &amp; Corey Ladas, Kanban<br />
Brent Barton &amp; Lance Young (of Solutions IQ), Scrum<br />
<a href="http://mitchlacey.com/">Mitch Lacey</a> &amp; Julie Chickering, Getting Started with Agile<br />
<a href="http://cyrusinnovation.com/website/cyrus_informs.php">Bruce Eckfeldt</a> &amp; Jim Benson, Writing Agile Contracts<br />
<a href="http://www.leadinganswers.com/">Mike Griffiths</a>, Agile Program Management<br />
Chris Matts &amp; Olav Maassen, Real Option Theory<br />
<a href="http://lithespeed.blogspot.com/">Arlen Bankston</a> &amp; <a href="http://www.agileproductdesign.com/">Jeff Patton</a>, Agile User Experience<br />
<br />
On Day 1 each Think Tank facilitator will lead an open space group to<br />
develop new material, thinking and ideas. Participants are free to<br />
choose a single session or wonder freely from session to session<br />
learning and contributing to each.<br />
<br />
On Day 2 each session facilitator will present a 20-30 summary of the<br />
findings from the previous day. The output from all 8 sessions will be<br />
made available to participants.<br />
<br />
Please come and join us. Enjoy the beautiful venue. Enjoy the Seattle<br />
summer weather. Enjoy mixing and networking with leaders in the agile<br />
and board members of the APLN.<br />
<br />
It's a mini-Agile Conference in the Northwest.<br />
<br />
Enjoy the great food at the luxury Edgewater Hotel. Join us for the<br />
cocktail reception in the evening of the 17th. <font color="#E3D9D9">Technorati tag: Agile, APLN, Lean, Seattle, Edgewater+Hotel, Luke+Hohmann, Jeff+Patton, David=Anderson, Lisa+Haneberg</font></p>]]></description>
        <pubDate>Thursday, May 08, 2008</pubDate>
      </item>
    
      <item>
        <title>Help Fill Up the Room on Monday in San Fran</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/HelpFillUptheRoomonMonday.html</link>
        <description><![CDATA[<p>Well it looks like TriFork and Accelinnova have struggled to fill the room in San Francisco for Monday's Leadership Summit event.</p>
<p>If you'd like to meet me in person and ask me anything about Agile Management, Kanban, MSF CMMI, FDD, or what we're doing with Modus Co-operandi, then come listen to me present on Kanban at the JW Marriott in downtown San Fran on Monday. <a href="http://www.jaoo.dk/agile-leadership-sanfran-2008/conference/">Sign up now</a> using code 'd400' to get a $400 discount. <font color="#E3D9D9">Technorati tag: David+Anderson, Software+Engineering, Kanban, Lean</font></p>
<p> &nbsp;</p>]]></description>
        <pubDate>Friday, May 02, 2008</pubDate>
      </item>
    
      <item>
        <title>Two Types of Bottleneck</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/TwoTypesofBottleneck.html</link>
        <description><![CDATA[<p>In some of the early Theory of Constraints literature Eli Goldratt would talk about three types of bottleneck - capacity constrained resources (CCRs), policies and market constraints. In recent, years he changed his mind and simplified the model. Policies are no longer constraints, they are merely exploitation or subordination techniques - elements 2 and 3 of his Five Focusing Steps.</p>
<p>Later in a lecture I remember watching Eli tell a story of how he'd scolded a client (or maybe it was a consultant) for confusing a non-instant availability resource with a capacity constrained resource. He argued that non-instant availability resources are not constraints because they are not capacity constrained. The non-instant availability is the side-effect of a policy that controls the process. However, I believe that we can still call these bottlenecks.</p>
<p>Hence, I now teach that there are two types of bottleneck: capacity constrained resources CCRs; and non-instant availability resources [we need a good acronym (TLA) for these ;-) ???]</p>
<p>Only CCRs should be treated with the Five Focusing Steps: identify the constraint; decide how to exploit the constraint; subordinate all else in the system to the decision in 2; elevate the constraint (i.e. add capacity); do not inertia prevent you repeating by identifying the next constraint and starting again at 2.</p>
<p>Non-instant availability resources exhibit bottleneck behavior but we don't try to exploit them as first step to improving the throughput. The reason there is a lack of throughput is lack of availability. We must identify the policies, transaction costs, coordination costs or other physical constraints that cause the non-instant availability.</p>
<p>For example, an ambulance is a non-instant availability resource because it must be dispatched from a central base like a hospital and it must travel to the location. We can improve availability (response time) by locating ambulances closer to where they might be needed. To illustrate this, imagine a seaside town that is a popular retirement destination such as Largs in Scotland (a town where I lived 20 years ago.) Largs with a population of 11,000 is too small to support a hospital let alone an accident and emergency (ER) department. The closest one was around 20 miles distant. To improve response time for ambulances, the ambulance service stationed vehicles in Largs even though there was no depot or hospital. This is an example of improving availability on a resource that impedes flow of value in the system.</p>
<p>The dispatching of the ambulance and its travel time must be seen (economically) as a transaction cost on the delivery of value. In Lean terms all transaction costs are waste. So non-instant availability is waste. Hence, improving availability is a way to reduce waste. It also improves flow and alleviates a bottleneck.</p>
<p>So how can we describe this generically in order to abstract a set or rules or principles for dealing with non-instant availability bottlenecks in process flow?</p>
<p align="center"><img height="344" alt="" src="http://www.agilemanagement.net/Articles/Weblog/dougburris.jpg" width="527" border="0" /></p>
<p align="center">Figure 1. Doug Burris, build engineer and a kanban board showing the "Build Ready" state</p>
<p align="left">At Corbis, we discovered that our build engineers such as Doug Burris pictured in Figure 1 were a non-instant availability resource.</p>
<p align="left">We had in place a policy which stated that only build engineers could build code and push it from our development code-line in to our test environment. This policy existed in order to maintain the integrity of our test environment. Developers, through prior bad behavior, were not trusted to keep the test environment in working order and the negative effect that this had on the team was sufficient that the policy that only build engineers can touch the test environment had been introduced.</p>
<p align="left">Further, we had a policy that our build engineers were generalists within their own field of configuration management. They each had to work three different types of problem: build code for test; maintain pre-production environments, applying software patches and configurations; and build out new environments. Each of these types of work required different amounts of time and effort: builds approximately 15 minutes to 2 hours; maintenance up to 2 days; and environment builds up to 2 months. In order to cope with the different time scales across the three different types of work, the team members multi-tasked by (effectively) time-slicing their effort across the three types. Hence, build was a non-instant availability resource, as the build could only be undertaken when the build engineer was in "build" mode and not in "maintenance" mode or "environment build" mode.</p>
<p align="left">What is important about all of this is to understand that all of this is controlled by policies, and that management has it within its power to change those policies.</p>
<p align="left">So for example, do we want to have instant availability build engineering? do we really need the policy that developers are considered untrustworthy and are not permitted to build code on their own?</p>
<p align="left">In the end, we settled for a multi-faceted approach to attack this problem: invest in automation - a long term strategy; increase the time slice for build from some of the engineers; relax the no developer can build policy under some circumstances.</p>
<p align="left">I'm still distilling out the abstract set of rules for improving throughput through non-instant availability bottlenecks. I'll publish more as develop it.</p>
<p align="left">For now, it is enough to question: is this bottleneck truly a CCR? or is it a non-instant availability problem? If it is a CCR apply the Five Focusing Steps. If its a non-instant availability problem, examine the policies, transaction costs, coordination costs or physical obstacles that cause it to be non-instant availability and consider what you can change to improve availability. <font color="#E3D9D9">Technorati tag: David+Anderson, Software+Engineering, Kanban, Lean</font></p>]]></description>
        <pubDate>Wednesday, April 23, 2008</pubDate>
      </item>
    
      <item>
        <title>Detecting Bottlenecks in a Kanban System</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/BottlenecksinaKanbanSyste.html</link>
        <description><![CDATA[<p>How do you identify a bottleneck in a kanban system? For the last 5 years, I've been teaching teams to identify bottlenecks using Cumulative Flow Diagrams (CFDs), Figure 1. A growing gap shown as a bulge in a colored section of the graph indicates growth in work-in-progress (WIP). And this illustrates where the bottleneck is to be found.</p>
<p align="center"><img height="358" alt="" src="http://www.agilemanagement.net/Articles/Weblog/CFDBottleneck.png" width="491" border="0" /></p>
<p align="center">Figure 1. Cumulative Flow Diagram showing "design" step as a bottleneck</p>
<p align="left">However, in a kanban system the WIP is limited and the CFD (Figure 2) does not typically exhibit a bulge like the one in figure 1.</p>
<p align="center"><img height="454" alt="" src="http://www.agilemanagement.net/Articles/Weblog/KanbanCFD.png" width="490" border="0" /></p>
<p align="center">Figure 2. Kanban system CFD with no noticable bottleneck indicator</p>
<p align="left">So how do you detect bottlenecks in a kanban system?</p>
<p align="left">Bottlenecks are not indicated by inventory build up. They are indicated by ragged flow of WIP through states in the process. When things are not moving smoothly a bottleneck is indicated. There are two ways to see this. One is dynamic, by looking at the kanban board every day at the standup meeting and observing that things are not moving. The second is to observe vacant space on the kanban board - WIP dropping to zero at a given state or set of states in the process, as seen in Figure 3.</p>
<p align="center"><img height="429" alt="" src="http://www.agilemanagement.net/Articles/Weblog/RaggedFlowExample.png" width="602" border="0" /></p>
<p align="center">Figure 3. Kanban board showing a section of zero inventory indicating a bottleneck in front of this area</p>
<p align="left">As work continues to be pulled through to the end of the board - the software release - a bottleneck will be indicated by an opening gap in WIP. Things cannot be pulled through the system despite downstream capacity because of the bottleneck.</p>
<p align="left">Hence, in a kanban system the CFD behavior is inverted. A band of zero inventory on a CFD would indicate a bottleneck directly before it. (Unfortunately, I don't have a good report graphic to demonstrate this. I'll need to make one.) <font color="#E3D9D9">Technorati tag: David+Anderson, Software+Engineering, Kanban, Lean</font></p>]]></description>
        <pubDate>Wednesday, April 23, 2008</pubDate>
      </item>
    
      <item>
        <title>Keep the Date: APLN Seattle Summit</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/KeeptheDateAPLNSeattleSum.html</link>
        <description><![CDATA[The next <a href="http://www.apln.org/">APLN</a> regional Leadership Summit will be held in Seattle on July 17th and 18th at the <a href="http://www.edgewaterhotel.com/edgewater_home.aspx">Edgewater Hotel</a> on Seattle's seafront. We're going to have an exciting line up of speakers and we're hoping to keep the ticket price low by covering many of the costs with sponsorship. Keep the date. I hope to see many of you join us and enjoy the beautiful North West summer while developing your skills and your personal network and supporting the APLN. What a combination! Hold July 17-18 on your calendar now! :-D <font color="#E3D9D9">Technorati tag: Agile, APLN</font>]]></description>
        <pubDate>Tuesday, April 15, 2008</pubDate>
      </item>
    
      <item>
        <title>Best at QCon London</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/BestatQConLondon.html</link>
        <description><![CDATA[At least one QCon goer shows good taste :-D Adam Shimali votes me <a href="http://witi-work.blogspot.com/2008/03/qcon-best-talk-award-goes-to-kanban.html">Best Talk at QCon London 2008</a>.]]></description>
        <pubDate>Wednesday, April 09, 2008</pubDate>
      </item>
    
      <item>
        <title>Channel 9 Revisited</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/Channel9Revisited.html</link>
        <description><![CDATA[<p><img style="MARGIN-RIGHT: 5px" height="300" alt="" src="http://www.agilemanagement.net/Articles/Weblog/channel9.JPG" width="400" align="left" border="0" />It's been almost 2 years since I did my last interview on Channel 9. Recently, I was reminded of these gems when I was at QCon and Microsoft were giving away these Channel 9 dolls (pictured) on the Visual Studio Team System booth.</p>
<p>It occurred to me that many newer reader may not be aware of my earlier video interviews. The <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=89344">first interview</a> is with Robert Scoble in my office in Building 25 and we mostly talk about FDD, Theory of Constraints and MSF for CMMI Process Improvement. The <a href="http://channel9.msdn.com/showpost.aspx?postid=248335">second interview</a> was done on my last week with Microsoft at my new office in Building 5 when I'd moved in to the Patterns and Practices group. In the second interview, I talk about the future of the MSF process and the TFS process framework under Alan Wills leadership, metrics and objective management in MSF, as well as my new approach to agile change transition and the kaizen culture that I intended to (and later did) create at Corbis.</p>
<p><strong>Channel 9<br /></strong><a href="http://channel9.msdn.com/ShowPost.aspx?PostID=89344">David Anderson - Writing Agile Software</a><br />
<a href="http://channel9.msdn.com/showpost.aspx?postid=248335">David Anderson - Thoughts on Visual Studio Team System</a>&nbsp;<font color="#E3D9D9">Technorati tag: Agile, David+Anderson, Microsoft, VSTS, MSF, Channel9</font></p>]]></description>
        <pubDate>Tuesday, April 01, 2008</pubDate>
      </item>
    
      <item>
        <title>Maturing through the Recipe for Success</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/MaturingthroughtheRecipef.html</link>
        <description><![CDATA[<p><a href="http://www.haloscan.com/comments/agileman/Providing_Value_with_Lean/#508682">Pete Abilla rightly points out</a> that while the <a href="http://www.agilemanagement.net/Articles/Weblog/FeaturedBlogEntries/ProvidingValuewithLean.html">advice I gave yesterday</a>, that in Lean decision making, value trumps flow, and flow trumps waste elimination, this does not mean that in a Lean transition a focus on value happens first or as a priority over a focus on flow and that a focus on smooth flow happens before a focus on waste elimination.</p>
<p>Pete is right!</p>
<p>In fact, in the realization of the <a href="http://www.agilemanagement.net/Articles/Weblog/RecipeForSuccess.html">Recipe for Success</a>, I advise people that they mature down through the list. First <em>focus on quality</em> which is primarily a waste elimination function. Then <em>reduce (or limit) WIP</em> which is both a waste reducing function (as quality improves with smaller batch sizes) and a flow function (as flow improves with smaller batch transfers). Then <em>balance demand against throughput</em> which is primarily a flow function. And finally, when quality is high and flow is smooth, focus on <em>prioritization</em>. It is prioritization that is value focused in the Recipe for Success.</p>
<p>And hence, it appears that while, from a decision standpoint, you read the Recipe for Success from bottom to top, from an implementation standpoint, you read it (and implement it) from top to bottom. The reasons for this are relatively easy to understand and self-evident in practice.</p>
<p>When there isn't a reliable system producing working software, prioritization is problematic because delivery is unreliable - either from a timing or quality perspective. With bad timing or poor quality the true value delivered is different from the intended value. In a true <em>pull</em> system, prioritization is deferred until the last responsible moment, keeping <em>real options</em> open, and allowing the most accurate definition of true value to be determined. With a reliable system of delivery, accurate prioritization decision can be made. Without a reliable system, either due to timing or quality, prioritization decisions will suffer.</p>
<p>One of the biggest impediments to smooth flow, is the stop go effect from rework due to poor quality. A second related problem comes from batch transfers from poor quality - in software, issues with builds and systems integration when batches of code are promoted through a set of environments. Poor quality impedes flow and prevents it from smoothing out. Hence, it makes sense to <em>focus on quality</em> first, before attempting to smooth the flow in the system. The working reality is that both measures start to take effect together, however, management attention and focus should go quality issues first. Not because quality is waste and it should be eliminated but because quality impedes flow.</p>
<p>Hence, organizations mature in to value optimization. It doesn't happen overnight!</p>
<p>Related articles: <a href="http://www.agilemanagement.net/Articles/Weblog/RecipeForSuccess.html">Recipe for Success</a>, <a href="http://www.agilemanagement.net/Articles/Weblog/FeaturedBlogEntries/ProvidingValuewithLean.html">Providing Value with Lean</a>&nbsp;<font color="#E3D9D9">Technorati tag: Agile, David+Anderson, Software+Engineering, Management, Lean, Kanban, Pete+Abilla</font></p>]]></description>
        <pubDate>Tuesday, April 01, 2008</pubDate>
      </item>
    
      <item>
        <title>Providing Value with Lean</title>
        <link>http://www.agilemanagement.net/Articles/Weblog/FeaturedBlogEntries/ProvidingValuewithLean.html</link>
        <description><![CDATA[<p>While I haven't been blogging much over the winter, I wasn't entirely idle. I co-authored two important papers. The second of which is the forthcoming <strong>Technical Note from the SEI</strong> entitled "CMMI and Agile: Why not embrace both?" with Mike Konrad, <a href="http://www.agilecmmi.com/">Hillel Glazer</a> and <a href="http://askthecmmiappraiser.blogspot.com/">Jeff Dalton</a> [More on this when the SEI publishes it.] The first is an academic paper that appeared in the <strong>Journal of Software Process: Improvement and Practice</strong>, co-authored with Merwan Mehta and David Raffo "<a href="http://www.cutter.com/content/itjournal/fulltext/2007/08/itj0708c.html">Providing Value to Customers in Software Development Through Lean Principles</a>." [Unfortunately, this paper though available online is a download from Wiley, both the journal subscription and the paper re-print are very expensive. If you have an interest in this paper, send me an email.]</p>
<p>I'm very pleased with both of these papers. The co-authoring experience in both cases was very enjoyable and rewarding. The outcomes were superior to anything I might have written on my own.</p>
<p>There are many lessons in the Lean paper, but perhaps the most important is this message...</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p align="left"><strong>Value first, then flow, then waste reduction/elimination</strong></p>
</blockquote>
<p>Too often I see Lean being taught as "the elimination of waste" when in fact waste reduction is a tertiary concern. While waste elimination is important, waste should not be reduced in detriment to flow, and smooth flow can be sacrificed to improve value delivery.</p>
<p>So for example, a queue in a kanban system can be considered as waste (probably necessary waste). As queues are a type of waste, it makes sense to reduce or eliminate queues. I see this advice coming from others who talk about Lean in software development.</p>
<p>However, it is important to understand why the queue is there. It is there to absorb variation in size and complexity of work items or in the availability of someone to process those work items. If you reduce the size of the queue or eliminate it altogether, it may impeded the smooth flow of the system, causing a stop-go effect, lowering the overall throughput of the process.</p>
<p>For example, (and I talk about this when I present kanban at conferences) at Corbis we had a non-instant availability bottleneck in build engineering, due to the time-slicing (multi-tasking) required of the build engineers. As a result, we increased the size of the queue in front of build engineering in order to smooth the flow through the whole system. In this example, the variability comes from the availability (or lack thereof) of the resource, not from the sizing of the work items. So we increased the amount of "waste" in the system to smooth flow and increase throughput.</p>
<p>It is also known that expediting is bad. Expediting impedes flow and causes WIP to increase and lead times to lengthen. We have demonstrated this empirically with the kanban implementations we've done so far. If we are to focus on smooth flow we would never expedite.</p>
<p>However, this general rule would be wrong. Occasionally there will be times where an expedite request carries a very high monetary value. The impact on flow and WIP and lead times to other items in progress is outweighed by the monetary benefit of accepting the expedite request. Hence, it makes sense to pursue the value in the expedite request despite its impact on flow and its introduction of waste in the system.</p>
<p>Hence, <strong>value trumps flow</strong> and <strong>flow trumps waste elimination</strong> in all process operation and process improvement decisions. <font color="#E3D9D9">Technorati tag: Agile, David+Anderson, Software+Engineering, Management, Lean, Kanban, David+Raffo, Merwan+Mehta</font></p>]]></description>
        <pubDate>Monday, March 31, 2008</pubDate>
      </item>
        
  </channel>
</rss>
