<?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/"
	>

<channel>
	<title>Positive Incline</title>
	<atom:link href="http://positiveincline.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://positiveincline.com</link>
	<description>Mike Burrows (@asplake) moving on up</description>
	<pubDate>Wed, 04 Aug 2010 19:14:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scaling Kanban (or Agile or Scrum) - what is it you need exactly?</title>
		<link>http://positiveincline.com/?p=735</link>
		<comments>http://positiveincline.com/?p=735#comments</comments>
		<pubDate>Wed, 04 Aug 2010 19:14:43 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=735</guid>
		<description><![CDATA[Situation: what to do when we have multiple development teams servicing multiple stakeholders?
Some advocate hierarchical approaches such as multi-tiered Kanban or Scrum of Scrums, keeping what feel to me like an old-school programme office busy with daily updates, at non-negligible cost to the subordinate development teams. But when the WIP at granularities coarser than Feature [...]]]></description>
			<content:encoded><![CDATA[<p>Situation: what to do when we have multiple development teams servicing multiple stakeholders?</p>
<p>Some advocate hierarchical approaches such as multi-tiered Kanban or Scrum of Scrums, keeping what feel to me like an old-school programme office busy with daily updates, at non-negligible cost to the subordinate development teams. But when the WIP at granularities coarser than Feature don&#8217;t change that quickly, isn&#8217;t that just wasteful?  Aren&#8217;t these approaches designed serve the needs of particular organisational structures created on the IT side over those of the paying stakeholders (or for that matter the development teams)?</p>
<p>So if you&#8217;re considering implementing such a structure, ask yourself: what is the problem you are trying to solve?  Is this the solution you really need?</p>
<p>I&#8217;m all for <a href="http://twitter.com/asplake/status/19842899554">making work visible</a>: not just the in-progress features but the initiatives that they belong to too.  And to all stakeholders together, keeping work visible until it is implemented, bedded down and delivering value, closing a loop between prioritisation and benefits realisation.  Facilitating a process that happens as much on the business side as it does in IT.  Blurring the lines even.</p>
<p>But with WIP at each level limited aggressively - including only a small buffer of prioritised but unstarted work - and the level of reporting detail chosen appropriately, is it really such a big deal?  As reporting problems go, it&#8217;s easy!  The rubber hits the road in facilitating that next priority call, understanding the bottlenecks, holding out for better outcomes.  No system will do those things for you, so don&#8217;t over-complicate things; concentrate instead on making that difference.</p>
<p>Or am I missing something?</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=735</wfw:commentRss>
		</item>
		<item>
		<title>Learning together: Kanban and the Twelve Principles of Agile Software</title>
		<link>http://positiveincline.com/?p=727</link>
		<comments>http://positiveincline.com/?p=727#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:36:31 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[leadership]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=727</guid>
		<description><![CDATA[This post is a spin off from the recent Scrum/Kanban debate.  Not  wanting to let a situation go to waste, it seems a good time to affirm  shared values, which I do here via the Twelve Principles behind the Agile manifesto.  I&#8217;m grateful  to Joshua Bloom for his  excellent input.
Commentary on [...]]]></description>
			<content:encoded><![CDATA[<p>This post is a spin off from the recent Scrum/Kanban debate.  Not  wanting to let a situation go to waste, it seems a good time to affirm  shared values, which I do here via the <a href="http://agilemanifesto.org/principles.html">Twelve Principles</a> behind the <a href="http://agilemanifesto.org/">Agile manifesto</a>.  I&#8217;m grateful  to <a href="http://www.google.com/profiles/cyetain">Joshua Bloom</a> for his  excellent input.</p>
<h3>Commentary on the twelve principles of agile software</h3>
<blockquote><p>Our highest priority is to satisfy the customer through  early and continuous delivery<br />
of valuable software.</p></blockquote>
<p>Kanban: Check. We pull business value through the system, creating  flow.  It should be recognized however that sometimes we create value by  means other than delivering software (sometimes even by <em>not </em>delivering  software!).  Furthermore, the act of improving the system generates  value as it increases the capability of the wider organisation to generate value.</p>
<blockquote><p>Welcome changing requirements, even late in development.  Agile processes harness change for the customer&#8217;s competitive advantage.</p></blockquote>
<p>Kanban: Check. We actively limit work-in-progress (WIP), facilitating  late prioritisation and minimising the impact of change on lead times.   We actively work to clarify the customer&#8217;s priorities so  that the team  can manage risk by properly sequencing work.</p>
<blockquote><p>Deliver working software frequently, from a couple of  weeks to a couple of months, with a preference to the shorter timescale.</p></blockquote>
<p>Kanban: Check. We make deliveries at intervals consistent with  customer need and transaction cost.  We seek to minimise transactions  costs attributable to the software development process, thereby making  shorter delivery intervals economically optimal.  Highly advanced teams  look towards continual deployment concepts to  limit the inventory of  complete yet not deployed software. We believe  the best requirements  come from software already depoyed being exercised by the   customers/users. Achieving flow to the end-user generates higher value   faster.</p>
<blockquote><p>Business people and developers must work together daily  throughout the project.</p></blockquote>
<p>Kanban: Check. The development team and customer must learn together,  in relation to both the problem domain and the delivery process.  The  visual element of Kanban promotes transparency and creates triggers for  customer interaction.</p>
<blockquote><p>Build projects around motivated individuals. Give them  the environment and support they need, and trust them to get the job  done.</p></blockquote>
<p>Kanban: Check. Build processes that respect individuals; empower them  to learn and to improve the system.</p>
<blockquote><p>The most efficient and effective method of conveying  information to and within a development team is face-to-face  conversation.</p></blockquote>
<p>Kanban: Check. Visualization and models allow face-to-face  conversations to scale effectively.  Limiting WIP prompts teams to have conversations DURING difficulties.</p>
<blockquote><p>Working software is the primary measure of progress.</p></blockquote>
<p>Kanban: Delivered business value is the primary measure of progress.</p>
<blockquote><p>Agile processes promote sustainable development. The  sponsors, developers, and users should be able to maintain a constant  pace indefinitely.</p></blockquote>
<p>Kanban:  We work within and share responsibility for the capability  of our system; sustained long-run capability cannot be built at the  short-term expense of the individual.</p>
<blockquote><p>Continuous attention to technical excellence and good  design enhances agility.</p></blockquote>
<p>Kanban: Check.  And we look to increase capacity by identifying and reducing the  failure demand that results from inattention to quality.</p>
<blockquote><p>Simplicity - the art of maximizing the amount of work not  done - is essential.</p></blockquote>
<p>Kanban: Check.  Furthermore we actively manage work-in-progress,  minimizing work not finished.</p>
<blockquote><p>The best architectures, requirements, and designs emerge  from self-organizing teams.</p></blockquote>
<p>Kanban: Check, and process too. Leaders (inside and outside the team)  must foster emergence, not squash it.</p>
<blockquote><p>At regular intervals, the team reflects on how to become  more effective, then tunes and adjusts its behavior accordingly.</p></blockquote>
<p>Kanban: Check. Continually even.</p>
<h3>Conclusions</h3>
<p>So there you have it, no fundamental conflict but a couple of clarifications and some changes of emphasis too.  It has to be said that these small differences do add up to a shift of mindset, but it is one that much of the Agile community has taken on board as a result of the increasing influence of Lean.</p>
<p>If I were to pick out a key thought it would  be this:</p>
<blockquote><p>The development team and customer must learn  together, in relation to both the problem domain and the delivery  process.</p></blockquote>
<p>This lesson would be recognised by much  of the Agile community I&#8217;m sure.</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=727</wfw:commentRss>
		</item>
		<item>
		<title>Book review: &#8220;Kanban&#8221;, by David J Anderson</title>
		<link>http://positiveincline.com/?p=721</link>
		<comments>http://positiveincline.com/?p=721#comments</comments>
		<pubDate>Wed, 16 Jun 2010 16:07:46 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Books]]></category>

		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=721</guid>
		<description><![CDATA[A big thumbs up for @agilemanager&#8217;s book!  If Don Reinersten&#8217;s &#8220;Principles of Product Development Flow&#8221; (which I raved about here) provides the foundations, this is the practical, experienced-filled go-to book.   It feels very authentic, full of relevant examples and managing to be both measured and positive at the same time.  It will be the definitive [...]]]></description>
			<content:encoded><![CDATA[<p>A big thumbs up for <a href="http://twitter.com/agilemanager/">@agilemanager</a>&#8217;s <a href="http://www.amazon.co.uk/Kanban-David-J-Anderson/dp/0984521402/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1276705111&amp;sr=8-1">book</a>!  If Don Reinersten&#8217;s &#8220;Principles of Product Development Flow&#8221; (which I raved about <a href="http://positiveincline.com/?p=522">here</a>) provides the foundations, this is the practical, experienced-filled go-to book.   It feels very authentic, full of relevant examples and managing to be both measured and positive at the same time.  It will be the definitive Kanban book for a long time to come I&#8217;m sure; I sincerely hope that it goes on to achieve the status of &#8220;Agile classic&#8221; too.</p>
<p>Key chapters for me:</p>
<p>Chapter 3, <strong>A recipe for success</strong>.  The recipe has been developed significantly since this <a href="http://www.agilemanagement.net/index.php/blog/Recipe_For_Success">blog post</a> (which is still worth a read).  I&#8217;ve followed much of recipe myself (some of it pre-Kanban), and it rings true to my own experience.  But full credit to David - if there exists a more effective version of the recipe than his, I would very much like to see it!</p>
<p>Chapter 11, <strong>Establishing service-level agreements</strong>.  I had heard about this and the related concept of &#8220;classes of service&#8221; before but it&#8217;s all a lot clearer now since reading the book.  It&#8217;s a thought-provoking chapter but I had the nagging feeling that it was just a stepping stone to something else (a prioritisation and scheduling mechanism based on risk-adjusted cost of delay) and David kinda <a href="http://twitter.com/agilemanager/status/16149975359">confirms</a> <a href="http://twitter.com/agilemanager/status/16150039107">this</a>.  That&#8217;s not to play down the importance of this chapter though - it definitely adds real sophistication to the generally-accepted core of Kanban, and if a practical guide can lead on to new thinking, that&#8217;s a thoroughly good thing.</p>
<p>Chapter 14, <strong>Operations review</strong>.  This sounds mundane, but it illustrates how a single Kanban implementation can seed something much bigger right across a business unit, breaking out of the confines of IT.  A very timely read!  Taken with the surrounding chapters we have here as good a guide to scaling agile development as you&#8217;re likely to read, and it reaches much further than that.</p>
<p>The final few chapters (Part four, <strong>Making improvements</strong>) are also worth mentioning together.  They take us back to Kanban&#8217;s roots in TOC and Lean (particularly Lean product development à la Reinertsen) and the influence of Deming, all in the process of giving yet more great advice.  Nicely done!</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=721</wfw:commentRss>
		</item>
		<item>
		<title>What are your &#8220;red button&#8221; phrases?</title>
		<link>http://positiveincline.com/?p=715</link>
		<comments>http://positiveincline.com/?p=715#comments</comments>
		<pubDate>Wed, 19 May 2010 06:39:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[leadership]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=715</guid>
		<description><![CDATA[&#8220;Self-management&#8221; is one of mine.  A blog  post on 5whys.com didn&#8217;t take the trouble to fully explain the concept in a way I approved of, and it provoked a less-than-charming tweet.  Sorry.  Very graciously though, Roy Osherove (the target of my disdain) gave me a the opportunity of a guest post:
Leadership and the mature team
Please [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<em>Self-management</em>&#8221; is one of mine.  A blog  post on <a href="http://5whys.com">5whys.com</a> didn&#8217;t take the trouble to fully explain the concept in a way I approved of, and it provoked a less-than-charming tweet.  Sorry.  Very graciously though, <a href="http://5whys.com/blog/author/fivewhys">Roy Osherove</a> (the target of my disdain) gave me a the opportunity of a guest post:</p>
<p style="text-align: left; padding-left: 30px;"><strong><a href="http://5whys.com/blog/leadership-and-the-mature-team.html">Leadership and the mature team</a></strong></p>
<p>Please give it a read. And be nice to Roy, he deserves it!  For the record, I actually agree with much of his <a href="http://5whys.com/blog/the-3-maturity-stages-of-a-software-team-and-how-scrum-fails.html">original post</a>, most especially in the value of coaching as a leadership model.</p>
<p>Another favourite red button of mine is &#8220;<em>strategic</em>&#8221; - a while back I had a team that in my presence would refer to it as the &#8220;the &#8216;S&#8217; word&#8221;.   It bugs me particularly when it is used to refer to technologies or applications, and &#8220;X is strategic&#8221; means &#8220;our strategy is to use X&#8221;, and that, sadly, is the sum total of any strategic thinking.</p>
<p>So what are your red buttons, particularly in the realms of software development, IT leadership and leadership/organisation in general?</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=715</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and treatments - 6 of 6: Failure to launch</title>
		<link>http://positiveincline.com/?p=708</link>
		<comments>http://positiveincline.com/?p=708#comments</comments>
		<pubDate>Fri, 30 Apr 2010 13:00:06 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=708</guid>
		<description><![CDATA[Oh dear, the most embarrassing of lead time diseases!  There&#8217;s a black hole lurking at the bottom of your CFD, on your Kanban board tokens are piling up under &#8220;Ready for Release&#8221;, and your &#8220;Released&#8221; and &#8220;Implemented&#8221; columns look depressingly empty.
Common root causes:

Inattention to the release and implementation process
Lack of capacity (whether on the [...]]]></description>
			<content:encoded><![CDATA[<p>Oh dear, the most embarrassing of <a href="http://positiveincline.com/?p=654">lead time diseases</a>!  There&#8217;s a black hole lurking at the bottom of your CFD, on your <a href="http://positiveincline.com/?p=636">Kanban</a> board tokens are piling up under &#8220;Ready for Release&#8221;, and your &#8220;Released&#8221; and &#8220;Implemented&#8221; columns look depressingly empty.</p>
<p>Common root causes:</p>
<ol>
<li>Inattention to the release and implementation process</li>
<li>Lack of capacity (whether on the part of the project team or customer) to release &amp;/or implement</li>
<li>The system as built isn&#8217;t the one expected by the customer</li>
<li>The world has changed</li>
</ol>
<p>Clearly the first two aren&#8217;t mutually exclusive.  Fail to plan or to reach agreement, and you may find that your customer or some critical resource on which your release depends is unavailable, perhaps for a long time.  Lesson: take nothing for granted.</p>
<p>Agile methods have the most to say about the third cause.  Forget blaming the specification if you get into this situation - products (not just documents) must be developed in partnership with the customer and the risk shared.</p>
<p>Sometimes there&#8217;s not much you can do about that last one.  Volcanos, credit crunches, takeovers, high level changes of budget or focus do happen, and generally speaking it&#8217;s not worth trying to mitigate against them.  But we live in a changing world, and projects need to be managed flexibly, serving the greater interest.  Embrace change!</p>
<h3>Symptomatic relief</h3>
<p>Putting the (sometimes correct) &#8220;abandon&#8221; option to one side, extricating a project out of this situation involves both hard work and creativity.  Do (or do again) what should have been done earlier: start with the customer, work backwards on implementation and release plans, revisit requirements as necessary.  Try parallel running, emailed spreadsheets or screenshots, re-purposing, &#8220;re-customering&#8221; even - whatever it takes to get eyeballs on the system.</p>
<p>During this period you may be able to deliver positive business value even before systems are officially switched on, with (for example) data quality or business process issues revealed and addressed that might otherwise have gone undiscovered.  This has happened for me on multiple occasions, so don&#8217;t despair, keep a positive eye open.</p>
<h3>Prevention</h3>
<p>We know already that the answers lie in small batches (&#8221;release early, release often&#8221;), visibility, engagement, automation.  Taking a Lean approach, strive continually to reduce transaction costs - in this context, mainly testing, release and implementation costs - and (more sophisticatedly) factor risk into the batch size calculation.  Both will lead to yet smaller batches, shorter cycles and a much reduced likelihood of project failure. Once again: go for flow!</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=708</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and remedies - 5 of 6: Kept on hold</title>
		<link>http://positiveincline.com/?p=698</link>
		<comments>http://positiveincline.com/?p=698#comments</comments>
		<pubDate>Tue, 27 Apr 2010 16:09:56 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=698</guid>
		<description><![CDATA[Still suffering volcano aftermath, I and my co-driver took the borrowed car back to Budapest from the UK, arriving before dawn this morning. So I&#8217;m making this one short:  a tip and a regret.
Tip: Consider adding &#8220;On Hold&#8221; columns to your Kanban board, especially &#8220;Development On Hold&#8221;.  When you have too much in play, it [...]]]></description>
			<content:encoded><![CDATA[<p>Still suffering <a href="http://positiveincline.com/?p=682">volcano aftermath</a>, I and my co-driver took the borrowed car back to Budapest from the UK, arriving before dawn this morning. So I&#8217;m making this one short:  a tip and a regret.</p>
<p><strong>Tip</strong>: Consider adding &#8220;On Hold&#8221; columns to your Kanban board, especially &#8220;Development On Hold&#8221;.  When you have too much in play, it pays dividends to make explicit what work is to be put to one side .  At worst, you prevent the waste of talking about it every day; at best, you create real capacity.  Reinstate work only when it becomes genuinely top priority again, and no copping out with &#8220;background projects&#8221;!</p>
<p><strong>Regret</strong>: The &#8220;counting tickets in columns&#8221; method for generating CFDs (see <a href="http://positiveincline.com/?p=636">Kanban in a nutshell</a>) is nice and easy, but I have to admit that I wish now that I had better control over the display of data from abandoned (one, small) and reorganised (e.g. adopted or outsourced) projects.  They have annoying negative effects on the chart that are difficult to remove retrospectively.  But would I go back 8 months and use an electronic Kanban board?  Maybe, not sure - I still love my wall!</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=698</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and remedies - 3 &#038; 4 of 6: Two sides of the same coin</title>
		<link>http://positiveincline.com/?p=682</link>
		<comments>http://positiveincline.com/?p=682#comments</comments>
		<pubDate>Thu, 22 Apr 2010 14:45:12 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=682</guid>
		<description><![CDATA[The testing bottleneck episode came out mid-way through a fantastic week&#8217;s skiing in Val Thorens; since then I got stranded by in Budapest by the volcanic ash cloud, made it home (5 days late) after an epic 25-hour drive, and I have a borrowed car to return next week!  So to get the Lead time [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://positiveincline.com/?p=675">The testing bottleneck</a> episode came out mid-way through a fantastic week&#8217;s skiing in Val Thorens; since then I got stranded by in Budapest by the volcanic ash cloud, made it home (5 days late) after an epic 25-hour drive, and I have a borrowed car to return next week!  So to get the <a href="http://positiveincline.com/?p=654">Lead time diseases and treatments</a> series back on track I&#8217;m combining the closely-related episodes 3 and 4.  I&#8217;ll introduce them separately before discussing them together.</p>
<h3>3. Feature starvation</h3>
<p>I don&#8217;t recall seeing projects suffer for lack of needed features, but what happens when there has been a failure to prioritise and articulate clearly the next few features for development?  Developers tend not to sit on their hands doing nothing, so work expands to fill the available effort.  This plays out in several ways:</p>
<ul>
<li>Gold-plating work currently in progress</li>
<li>Implementing non-urgent features</li>
<li>Inventing un-needed features</li>
<li>Indulging in standalone refactorings, framework-building, etc</li>
</ul>
<p>In other words a tendency to add bloat, risk and downstream workload for marginal or even negative benefit.  Not only is the delivery of value sub-optimal, lead times will increase in ways that are hard to pinpoint. The smart product manager needs to recognise and treat the problem at source, which will be uncomfortably close to home!</p>
<h3>4. The overwhelming backlog</h3>
<p>Maybe it&#8217;s just me, but &#8220;backlog&#8221; seems to come with an implication that the work contained therein does actually need to be done (and soon), and therefore carries overtones of &#8220;push&#8221; rather than &#8220;pull&#8221;.  I try to avoid the term therefore, and my advice to backlog worriers is simple: don&#8217;t!</p>
<ul>
<li>Don&#8217;t be overwhelmed (yeah, right)</li>
<li>Don&#8217;t think in terms of clearing the backlog</li>
<li>Don&#8217;t over-prioritise</li>
<li>Don&#8217;t over-engineer - sometimes synergistic features line up at the right time but don&#8217;t force it; <a href="http://c2.com/cgi/wiki?YouArentGonnaNeedIt">YAGNI</a></li>
</ul>
<p>The first two are a prelude to shifting to a mindset of prioritising for delivered business value, letting go of the rest.  The last two are about controlling work in progress even in those early <a href="http://positiveincline.com/?p=636">Kanban</a> columns, not committing prematurely, going for flow.  But realise that the combination of low WIP and an obsession for business value demands timely and high quality interaction with stakeholders; this may prove to be a significant constraint.</p>
<h3>Two sides of the same coin</h3>
<p>So&#8230; under-prioritisation tends to lead to bloat and (indirectly) to longer lead times; over-prioritisation also leads to longer lead times (this time through increased WIP) -  it&#8217;s an optimisation problem.  It&#8217;s a high stakes game, controlling perhaps the most powerful short-term lever on your development process.  Exciting!</p>
<p>Ultimately though, the lead time metric is only a proxy for real measures of success; the latter lie in the domain of the customer&#8217;s business.  <a href="http://twitter.com/DReinertsen">Don Reinertsen&#8217;s</a> superb book <a href="http://www.amazon.co.uk/Principles-Product-Development-Flow-Generation/dp/1935401009/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1271948983&amp;sr=8-1">Principles of Product Development Flow</a> goes much further than process-centric metrics and describes an economic approach to prioritisation; for introductions to the subject see articles from <a href="http://scalingsoftwareagility.wordpress.com/2010/04/08/prioritizing-features/">Dean Leffingwell</a> and <a href="http://toolsforagile.com/blog/archives/293">Silver Catalyst</a> (the second hot off the press from last night&#8217;s LeanSSC <a href="http://atlanta2010.leanssc.org/home/don-reinertsen/">keynote</a> - I would so loved to have been there!).  But even if your organisation isn&#8217;t ready for an explicitly economic model, I hope that you find - as I did - that the concepts are helpful and motivating as well as enlightening.</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=682</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and remedies - 2 of 6: The testing bottleneck</title>
		<link>http://positiveincline.com/?p=675</link>
		<comments>http://positiveincline.com/?p=675#comments</comments>
		<pubDate>Tue, 13 Apr 2010 16:19:48 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=675</guid>
		<description><![CDATA[Why is testing so often a bottleneck?  Silly question really - it&#8217;s that way because we make it so!
In my previous post, I described a situation in which the testing bottleneck revealed by our Kanban board and CFD was more imagined than real: the work was getting done but completion criteria were inadequate; some clarity [...]]]></description>
			<content:encoded><![CDATA[<p>Why is testing so often a bottleneck?  Silly question really - it&#8217;s that way because we make it so!</p>
<p>In my previous post, I described a situation in which the testing bottleneck revealed by our <a href="http://positiveincline.com/?p=636">Kanban</a> board and CFD was more imagined than real: the work was getting done but completion criteria were inadequate; some clarity and some WIP limits soon fixed things.</p>
<p>Addressing mistakes like that early on in a project is easy, but here are a just a few of the ways in which we have contrived to make life on our projects difficult for ourselves over the years:</p>
<ol>
<li><em>&#8220;</em><em>Hey guys, we want to do a release soon.  Can everyone please do some testing?&#8221;</em></li>
<li>Analysis (and some design), development, testing and rollout in syncronised, pipelined phases</li>
<li>An impressively large automated test suite with a hopeless failure rate</li>
</ol>
<p>Let&#8217;s look at these from a lead time perspective.</p>
<h3>1. <em>&#8220;Can everyone please do some testing?&#8221;</em>, or sequential phases</h3>
<p>Glossing over the apparent cluelessness, there are problems here common to any approach that has the same set of developers doing a large amount of development (over several months in this case), then downing their IDEs to start testing.  Features developed at the start of the development phase (including some of the most important ones) are already several months old before testing begins in earnest.  This adds a significant context switch overhead even where the original developer is now doing the testing (not something that can be guaranteed over these timeframes), added to which is the worry that the foundations on which that feature was built have since changed.  And those foundations aren&#8217;t merely technical - the business context in which the feature was conceived and development will have moved on too.  In other words, the wastefulness of long lead times is compounded by change, both planned and unplanned.</p>
<p>So if sequential phases are a problem, how about doing them in parallel?</p>
<h3>2. Syncronised, pipelined phases</h3>
<p>This is an approach that may seem attractive to teams that have the luxury of dedicated analysts, testers and release managers.  Why not let each team keep busy on what they do best and allow analysis, development, testing and rollout to happen concurrently?  So while we&#8217;re rolling out release 1.1 (on top of release 1.0), we can be testing 1.2, developing 1.3 and readying ourselves for 1.4.  Efficient, right?</p>
<p>Efficient it might be, but from a lead time perspective it&#8217;s dangerous.  What happens when one of these activities slips?  The others either stall or take on extra work to fill the slack period.  Taking the latter, &#8220;efficient&#8221; route adds to the workload of subsequent phases, thereby making the longer cycle the new normal and a descent to low performance begins.</p>
<p>I should mention that I have seen this pattern twice now: the first time it was entered into quite deliberately and lived with for a long time; the second time it was the consequence of allowing testing activities to spill over from one short development sprint to the next.  Those downward descents are so much easier to enter than to leave!</p>
<h3>3. Automation (hopeless or otherwise)</h3>
<p>However good its coverage, a test suite with an 85% pass rate is a burden, not a help; any new failure is lost in the noise.  Taking that figure to 99.<em>something</em>% was a challenging but worthwhile exercise, but I now take a hard line and insist on 100%, all the time.  &#8220;All the time&#8221; means that a failure becomes (in Lean-speak) a &#8220;stop the line&#8221; event.  Furthermore, the depth of the test suite needs to be such that the focus of the team&#8217;s manual testing activities can move from repetitive regression testing to focussed learning about the system, warts-and-all (&#8221;exploratory testing&#8221; in testing-speak).</p>
<h3>Pulling it together</h3>
<p>Recap: long, sequential phases are bad, whether syncronised or not.  Short cycles are better but aren&#8217;t immune to problems, especially if testing can&#8217;t be completed right away.  Automation is a help, except when it isn&#8217;t.</p>
<p>So: test as soon as features are developed, both by adding to the automated suite and via serious exploratory testing.  Make the regression test a non-event by running it all the time; stop the line when there&#8217;s a problem.  In short: practice Continuous Integration (CI) seriously, make learning part of the process, go for flow!</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=675</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and remedies - 1 of 6: Learning curves</title>
		<link>http://positiveincline.com/?p=660</link>
		<comments>http://positiveincline.com/?p=660#comments</comments>
		<pubDate>Tue, 06 Apr 2010 14:41:18 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=660</guid>
		<description><![CDATA[Consider the following CFD, based on data from the early part of a new build project:

There are several interesting features to point out:

A somewhat S-shaped overall profile
The stepped profile at the project&#8217;s start
The &#8220;bulge&#8221; of items stuck in the Testing state

Each of these represents a learning phase; let&#8217;s examine them in turn.
The S-shaped profile
I had [...]]]></description>
			<content:encoded><![CDATA[<p>Consider the following CFD, based on data from the early part of a new build project:</p>
<p><img class="alignnone size-full wp-image-664" title="image009" src="http://positiveincline.com/wp-content/uploads/2010/04/image009.gif" alt="image009" width="578" height="356" /></p>
<p>There are several interesting features to point out:</p>
<ol>
<li>A somewhat S-shaped overall profile</li>
<li>The stepped profile at the project&#8217;s start</li>
<li>The &#8220;bulge&#8221; of items stuck in the Testing state</li>
</ol>
<p>Each of these represents a learning phase; let&#8217;s examine them in turn.</p>
<h3>The S-shaped profile</h3>
<p>I had a strange flashback when I first noticed this shape - having encountered it before in <a href="http://en.wikipedia.org/wiki/Earned_value">Earned Value</a> charts, where the shape represents the fact that when tracking completed deliverables against a project plan you often see ramp-up and ramp-down periods.</p>
<p>Here though, the overall height of the CFD at any point measures all known work, whether that&#8217;s work done, work in progress, work that&#8217;s prioritised, and even work that just on the &#8220;maybe&#8221; list.  Isn&#8217;t the overall work required fixed for the life of the project?</p>
<p>There are at least three drivers to this particular ramp-up:</p>
<ol>
<li>As our understanding of the problem space increases, so does the known number of features required (or possibly required).  This process can get off to a slow start.</li>
<li>As development gets properly underway, the number of features increases because large features (the &#8220;epics&#8221;) are split into several smaller ones.</li>
<li>Feedback: what we learn from building and demonstrating the system creates opportunities for new and better requirements.  This process slows down as we get close to something releasable.</li>
</ol>
<p>None of these disturb me fundamentally (I&#8217;m not of the &#8220;scope creep&#8221; school) but it does demonstrate the dangers inherent in making projections if it&#8217;s clear that requirements are still to be discovered.  There&#8217;s a tradeoff: if you want learning you lose some certainty.</p>
<p>I won&#8217;t deny that there are projects where certainty is of paramount importance (I&#8217;ve led some, with hard timelines mandated externally), but in most cases I would much rather take the learning approach.  You get to start earlier and deliver earlier, and there are opportunities to incorporate valuable (sometimes project-critical) feedback early, not just from within the confines of the project but from a changing business environment too.</p>
<p>[And yes I'm familiar with the argument that we should move away from organising work around projects, but that's definitely for another post]</p>
<h3>The early stepped profile</h3>
<p>Early in this particular project we tended to follow a regular pattern that looked a bit like planned sprints.  I had just come off a project that worked to time-boxed iterations whose CFD would have been similar,  but here this shape was merely a symptom of my unconventional working arrangements - I spent alternate weeks in and out of the offfice and planning activities were concentrated around set times.</p>
<p>It&#8217;s actually rather gratifying that this disappears over time as we establish good working patterns independent of my physical location.  Even so there&#8217;s still an unnecessary amount of work sitting in the Ready for Dev state at any given time (arguably the same could be said of Prioritised too), but we&#8217;ll revisit that issue later in this series.</p>
<h3>The Testing &#8220;bulge&#8221;</h3>
<p>I was happy to explain away first two CFD features but this bulge reflects a genuine problem.  Work really was piling up in the Testing column, flattering our development throughput whilst doing bad things to lead times overall.  We&#8217;ll focus on testing in the next post, but for now it&#8217;s fair to say that this reflected two wider problems, namely the absence of strong controls on WIP and the lack of clear exit criteria for each step in the value chain.</p>
<p>As a team we identified both issues in one of our retrospectives, the outcome of which was to define (1) WIP limits (see <a href="http://positiveincline.com/?p=636">Kanban in a nutshell</a>) and (2) how &amp; when code review and feature demonstrations were to be conducted.  We addressed both sets of issues at the same time so we can&#8217;t measure their impacts separately, but it&#8217;s apparent from the CFD that the overall problem was reversed very quickly.</p>
<h3>Points to take away</h3>
<ol>
<li>You can expect your CFD to reflect something of your project&#8217;s style</li>
<li>After a while it tells a story; feed this back into your project retrospectives</li>
<li>Changes in working practices can be reflected back surprisingly quickly</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=660</wfw:commentRss>
		</item>
		<item>
		<title>Lead time diseases and treatments - 0 of 6: Natural variation?</title>
		<link>http://positiveincline.com/?p=654</link>
		<comments>http://positiveincline.com/?p=654#comments</comments>
		<pubDate>Thu, 01 Apr 2010 10:38:27 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
		
		<category><![CDATA[Kanban]]></category>

		<category><![CDATA[Project Management]]></category>

		<category><![CDATA[lean]]></category>

		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://positiveincline.com/?p=654</guid>
		<description><![CDATA[So you have your Kanban board (mine is a wall covered in Post-It notes), you&#8217;re maintaining a CFD and you&#8217;re measuring your development process&#8217;s lead times.  But despite the best intentions of you and your team you see your lead times creep up.  What to do?
Don&#8217;t panic
There will be some natural variation in even the [...]]]></description>
			<content:encoded><![CDATA[<p>So you have your <a href="http://positiveincline.com/?p=636">Kanban</a> board (mine is a wall covered in Post-It notes), you&#8217;re maintaining a CFD and you&#8217;re measuring your development process&#8217;s lead times.  But despite the best intentions of you and your team you see your lead times creep up.  What to do?</p>
<h2>Don&#8217;t panic</h2>
<p>There will be some natural variation in even the best-regulated of processes, and it&#8217;s inevitable in a creative process like software development. Some (for example the <a href="http://en.wikipedia.org/wiki/Statistical_process_control">Statistical Process Control</a> crowd) will tell you not to worry unduly about variations within so many standard deviations of the mean, sensible advice that may stop you from wasting effort on investigations that may yield little benefit.  But still raise it with your team (it&#8217;s a great standing topic for regular project retrospectives), try to work it out together.  &#8220;<a href="http://en.wikipedia.org/wiki/Common-_and_special-causes">Special causes</a>&#8221; may be mundane (unplanned absence or environmental unavailability, say) or remain as minor unsolved mysteries with no lasting impact.</p>
<h2>But don&#8217;t get too comfortable either</h2>
<p>Don&#8217;t rationalise away every problem and as a result miss opportunities for lasting improvement.  Even those seemingly mundane special causes may have serious underlying root causes that represent significant risks to your project.</p>
<p>What&#8217;s more, don&#8217;t compound that error by allowing a drift to low performance (very well described in Dana Meadow&#8217;s book <a href="http://www.amazon.co.uk/Thinking-Systems-Donella-H-Meadows/dp/1844077268/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1269978824&amp;sr=8-1">Thinking in Systems</a>).  Instead, surround your project with an expectation of improvement.  Free your team to be the engine of that improvement.  Review the data together in your retrospectives; experiment!  Establish performance baselines from your recent history (don&#8217;t set arbitrary targets - insert <a href="http://www.amazon.co.uk/Freedom-Command-Control-Better-Make/dp/0954618300/ref=wl_it_dp_o?ie=UTF8&amp;coliid=I2IUP91DMVPOBH&amp;colid=3UFCAME69TBXO">obligatory Seddon reference</a> here!); you can let them and your <a href="http://en.wikipedia.org/wiki/Control_chart">tolerances for variation</a> ratchet down over time as each improvement kicks in.</p>
<h2>Learn to diagnose</h2>
<p>Looking back over past projects, I recall some times of less-than-spectacular project performance, impacted by process issues that I&#8217;m sure will have been encountered countless times elsewhere.  I have seen them across a range of situations: in mature teams that I&#8217;ve inherited, in project turnarounds, and in new developments that I&#8217;ve led from the start.  I need not spell out here which disease belongs to which situation and thereby the degree of my culpability; it is better simply to assume that each was my fault!</p>
<p>These issues are like diseases - they have recognisable symptoms, common root causes and it&#8217;s often possible to recommend treatments.  So watch this space for these future articles:</p>
<p>1. <a href="http://positiveincline.com/?p=660">Learning curves</a><br />
2. <a href="http://positiveincline.com/?p=675">The testing bottleneck</a><br />
3. <a href="http://positiveincline.com/?p=682">Feature starvation (with 4)</a><br />
4. <a href="http://positiveincline.com/?p=682">The overwhelming backlog </a><br />
5. <a href="http://positiveincline.com/?p=698">Kept on hold</a><br />
6. <a href="http://positiveincline.com/?p=708">Failure to launch</a></p>
<p>Of course other diseases are known, and more still are yet to be discovered, named and documented.  If you would like to add to my list, leave a comment here or drop me a line and I will discuss them when I wrap up this series.</p>
]]></content:encoded>
			<wfw:commentRss>http://positiveincline.com/?feed=rss2&amp;p=654</wfw:commentRss>
		</item>
	</channel>
</rss>
