<?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>Liz Keogh&#039;s blog &#187; kanban</title>
	<atom:link href="http://lizkeogh.com/category/kanban/feed/" rel="self" type="application/rss+xml" />
	<link>http://lizkeogh.com</link>
	<description>Software, Training, Coaching, Writing</description>
	<lastBuildDate>Sat, 04 Feb 2012 20:22:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scrum and Kanban: both the same, only different</title>
		<link>http://lizkeogh.com/2011/11/20/scrum-and-kanban-both-the-same-only-different/</link>
		<comments>http://lizkeogh.com/2011/11/20/scrum-and-kanban-both-the-same-only-different/#comments</comments>
		<pubDate>Sun, 20 Nov 2011 22:30:15 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[coaching]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[metathinking]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=748</guid>
		<description><![CDATA[When I started coaching Agile methodologies, I didn&#8217;t know how much I didn&#8217;t know.
I had come from Thoughtworks, a company whose tools and processes are mostly driven by Extreme Programming, aka XP. In that respect, most of what I learnt and coached was very similar to Scrum, albeit with different words. We called them iterations [...]]]></description>
			<content:encoded><![CDATA[<p>When I started coaching Agile methodologies, I didn&#8217;t know how much I didn&#8217;t know.</p>
<p>I had come from Thoughtworks, a company whose tools and processes are mostly driven by <a href="http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658/">Extreme Programming, aka XP</a>. In that respect, most of what I learnt and coached was very similar to Scrum, albeit with different words. We called them <em>iterations</em> instead of <em>sprints</em>, and had <em>stand-ups</em> instead of daily <em>scrums</em>. We had planning meetings, but we didn&#8217;t make commitments &#8211; just estimates. We had collaborative code ownership and a focus on delivery instead of a cross-functional team, which meant that we ended up with flexible and blurred roles anyway. We had the same problems &#8211; getting people co-located, helping business stakeholders become more comfortable with the risk and uncertainty of software delivery, and changing the culture and the infrastructure of the organisations in which we worked. We also had a number of technical practices like unit testing and continuous delivery that aren&#8217;t really prescribed by either Scrum or Kanban, but which both put forward as a Really Good Idea.</p>
<p>In the last few years, I&#8217;ve been privileged to be part of the Kanban community. I don&#8217;t consider myself part of the Scrum community as such, but I&#8217;m part of the larger Agile movement and strongly aligned through my background in XP.</p>
<p>In this post, I&#8217;d like to cover some of the differences I&#8217;ve seen between Scrum and Kanban, and add in some insights from the Cognitive Edge training I&#8217;ve done using Cynefin and complexity thinking. This isn&#8217;t going to be a full description or comparison, but it should hopefully provide some food for thought, and allow people to see some of the different tools available from both approaches.</p>
<p><strong>Disclaimer:</strong> I haven&#8217;t explained every term I&#8217;ve used, or every practice I&#8217;m referencing. I&#8217;m assuming familiarity. If you don&#8217;t have it, you can to run a search on anything I haven&#8217;t linked. I&#8217;m also using the terms &#8220;Scrum&#8221; and &#8220;Kanban&#8221; as aliases for the community and / or leadership, and I haven&#8217;t made much distinction between Scrum.org and the Scrum Alliance. This is deliberate, and I welcome feedback.</p>
<h3>Scrum and Kanban have more similarities than differences.</h3>
<p>Both methodologies put people and their interactions at the heart. Both have a clear focus on value, fast delivery and the continuing growth of the team and its ability to achieve those valuable deliveries. Both contain mechanisms for feedback and improvement, allowing processes to change according to context. Scrum used to have a very prescriptive format &#8211; not dissimilar to XP &#8211; but this has been flexed in recent editions of the <a href="http://www.scrum.org/scrumguides">Scrum Guide</a>, as alternatives to some of the practices have emerged. It&#8217;s not even beyond the realms of possibility that some of the alternatives have emerged from the Kanban movement!</p>
<p>Also recently, Scrum has started to evolve from being a set of processes to being a very loose framework in which processes can themselves evolve. Used this way, it joins Kanban as a meta-process, from which the real process emerges and continues to emerge.</p>
<p>IMO, both are infinitely better than that broken model called Waterfall, and both are better than having no process at all.</p>
<h3>Scrum isn&#8217;t about the Scrum Meetings, and Kanban isn&#8217;t about the Kanban Signal.</h3>
<p>Both methodologies are named after just one small aspect of their whole. In Scrum, the scrum meetings allow the team to share learning and information about how they&#8217;re doing and to make decisions about what to work on next. In Kanban, the kanban signal &#8211; showing that someone is free to help move a piece of work closer to delivery &#8211; provides a similar focus point. Scrum teams frequently use a card wall that&#8217;s similar to that of a Kanban team. Kanban teams frequently have daily meetings like Scrum. To an outside observer, the differences could seem so small as to be irrelevant.</p>
<h3>Kanban measures lead and cycle time, Scrum measures velocity.</h3>
<p>Both Kanban and Scrum have their origins in &#8220;Lean&#8221; thinking. We like to think of &#8220;Lean&#8221; as the set of principles behind the Toyota Production System &#8211; the process by which Toyota builds and churns out its cars &#8211; but both methodologies have an implicit recognition that software development holds <a href="http://lizkeogh.com/2009/10/02/lean-and-kanban-conference-roundup/">more similarities with product development</a> than a production line. In Toyota, kanban cards are used to help eliminate large amounts of spare parts and other inventory building up; providing a buffer which lets work flow through the system. Both Scrum and Kanban value this flow. Kanban suggests limits on the amount of work in progress, allowing constraints to be addressed. Scrum encourages collaboration, causing less work in progress. Scrum uses the proxy of velocity and estimation, which can help to prevent metrics around productivity becoming targets. Kanban uses lead and cycle time, tying its measurements to valuable targets that are hard to game.</p>
<h3>Scrum starts with the right context; Kanban improves the existing context.</h3>
<p>I once asked a Scrum practitioner, &#8220;What do you do if you don&#8217;t have a cross-functional team and you&#8217;re not co-located?&#8221; He told me that that&#8217;s the hardest bit of Scrum &#8211; starting from the right context. I realised that these difficulties, once overcome, also provide significant value. Just starting from the right context might be a good idea!</p>
<p>On the other hand, Kanban is neutral regarding context. Of course we think that being co-located is a good idea. Of course we&#8217;d love to have multi-skilled, flexible, collaborative professionals. If only this was as common in the industry as we&#8217;d like. Kanban&#8217;s focus on metrics and its measurements of lead and cycle time might make the impact of not having these apparent, so it&#8217;s a good place to start. (I used to think it was only suitable for highly skilled, disciplined, advanced teams, but experience and experimentation has taught me otherwise).</p>
<h3>Kanban visualises what&#8217;s happening; Scrum visualises an ideal.</h3>
<p>This is one of the biggest differences for me. The extent to which Kanban visualises reality is extreme enough that the board might not even have linear flow. Whatever the process policies are &#8211; whether helpful or otherwise &#8211; Kanban focuses on making them explicit, so that they can be addressed and improved. If the team happen to work with five different phases, this is reflected. If the team write technical stories, they go on the board.</p>
<p>In contrast, Scrum teams tend to set up a visualisation of an ideal process, helping teams to adopt that process. Done prescriptively, Scrum provides a &#8220;big bang&#8221; starting point. Because it consists of step-by-step practices, it&#8217;s easier for beginners to adopt. That could be Scrum&#8217;s blessing &#8211; but it&#8217;s also its curse.</p>
<h3>Certification and early adoption.</h3>
<p>Scrum has certification. Kanban doesn&#8217;t.</p>
<p>Yet.</p>
<p>In the early days of Scrum, there were few enough trainers and experienced Agilists that no matter who taught Scrum, it was done pragmatically. Early adopters tend to experiment, and those experiments led to a better understanding; to a focus on people and interaction, rather than process. Unfortunately the &#8220;Scrum Master&#8221; certificates are easy to get, compared to any other discipline that asserts a quality of mastery or independence. The training provides simple practices that are relatively easy for teams to adopt. Scrum is taught by a wider group of people, and the quality control over that teaching has become harder to maintain.</p>
<p>As a result, Scrum has been widely adopted and is considered pretty mainstream &#8211; the default Agile methodology &#8211; but the certificates associated with it provide a level of confidence that the training generally doesn&#8217;t support. I&#8217;ve met a couple of excellent Scrum trainers, but I&#8217;ve also seen &#8220;masters&#8221;, armed with their certificates, instituting mini-waterfall and silo&#8217;d teams as they replace those parts of Scrum that aren&#8217;t prescriptive, or that they don&#8217;t understand, or that they can&#8217;t achieve within a context that they can&#8217;t change.</p>
<p>Any examination or certification body suffers from a paradox: while the people who rely on those qualifications need them to be rigorous, the people teaching and taking those qualifications would much rather they were easy. The Scrum Alliance and Scrum.org between them have both helped to set up and reinforce the desirability of their certifications, and I can only imagine the difficulty that their leaders face in balancing the financial incentives involved against the good of the IT community and industry.</p>
<p>In contrast, Kanban is still in an early adopter phase. We&#8217;re still working out, as a community, what&#8217;s possible. Most Kanban practitioners and coaches are bright, experienced, willing to experiment, desiring of feedback and able to share and learn from each other in a relatively small community. Scrum no longer has that luxury. We don&#8217;t know what will happen if and when the Kanban community treads the same path, but we do have the advantage of being able to learn from what&#8217;s happened with Scrum.</p>
<p>You can also bet that the leaders are being watched carefully by the rest of the community to see how they meet this challenge. So far I think they&#8217;re doing an excellent job. So far there are no certificates available. So far.</p>
<h3>Some thoughts spurred by Cynefin.</h3>
<p>The <a href="http://en.wikipedia.org/wiki/Cynefin">Cynefin model of complexity thinking</a> teaches us that in a complex environment &#8211; one in which cause and effect can only be understood in retrospect, and which includes most systems with people in, as far as I can tell &#8211; we should increase the opportunities and incentives for interaction, so that the practices best suited to the context can emerge.</p>
<p>Waterfall treated software development as <em>complicated</em>, using Cynefin&#8217;s domain definition; as though each project was a thing that could be taken apart into many pieces, analyzed, then put back together as a whole. Unfortunately the ability of human beings to make mistakes, combined with our inability to either effectively communicate our intent or see into the future, has meant that this was always doomed to fail. (Most successful Waterfall teams, who complain to me that I label it unfairly, have not practiced it in a pure form, and have included elements of iteration, feedback and common sense. When these are lacking, any methodology is doomed to failure, but Waterfall above all others doesn&#8217;t mandate or even leave much room for them.)</p>
<p>When we look at applying Scrum prescriptively to a Waterfall team, we&#8217;re looking at pushing forward increasing levels of interaction in a context in which interaction is easy &#8211; where teams are co-located, have all relevant skills, are willing to collaborate and can share learning. Scrum&#8217;s acts of estimation and breaking stories into tasks force team members to talk to each other. The act of commitment which Scrum recommends in planning meetings causes a team to discuss their concerns frankly. The cycle of feedback and retrospection allows the team to discuss whether they&#8217;re delivering value and how to do it more effectively.</p>
<p>But Waterfall is no longer the context from which we always come. Many Agile adoptions aren&#8217;t taken up by teams doing Waterfall; they&#8217;re taken by teams who have abandoned their process altogether, and are talking and sharing their learning in order to work out what to do next, while having no metrics against which they can improve or track their progress and risk.</p>
<p>The context in which Scrum starts is not often possible. We&#8217;re not always co-located &#8211; many start-ups and companies now allow developers to work from home, and the industry still seems to suffer from a delusion that offshore work is cheap to obtain. We may not have multi-skilled people &#8211; it takes some time to learn skills. In both the environments which are already more collaborative than Scrum, and the ones which are a long way from being able to do it successfully, Kanban can be useful.</p>
<p>I fear that this may include the majority of environments and the IT industry, and <em>that&#8217;s</em> why I choose to hold myself closer to the Kanban community than the Scrum one. IMO, Kanban works in a larger set of contexts than Scrum does, even though for a subset Scrum might achieve results faster.</p>
<p>They&#8217;re still more similar than they are different&#8230; <a href="http://lizkeogh.com/2009/09/16/scrum-vs-kanban-fight/">and I still like XP too.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2011/11/20/scrum-and-kanban-both-the-same-only-different/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Lean Software and Systems Conference, Atlanta</title>
		<link>http://lizkeogh.com/2010/01/07/lean-software-and-systems-conference-atlanta/</link>
		<comments>http://lizkeogh.com/2010/01/07/lean-software-and-systems-conference-atlanta/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 18:02:58 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[bdd]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=544</guid>
		<description><![CDATA[I&#8217;ve been invited to speak at the Lean Software and Systems Conference in Atlanta, April 21st to 23rd 2010.

BDD, often described as “TDD done well”, is strongly aligned with Lean
principles. It’s a pull-based approach to delivering software that
matters through the whole software lifecycle, from vision to code. It
minimises rework and over-delivery, bakes quality in, and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been <a href="http://atlanta2010.leanssc.org/2010/01/liz-keogh-behaviour-driven-development-a-lean-toolkit/">invited to speak</a> at <a href="http://atlanta2010.leanssc.org/">the Lean Software and Systems Conference in Atlanta, April 21st to 23rd 2010</a>.</p>
<hr />
<a href="http://en.wikipedia.org/wiki/Behavior_Driven_Development">BDD</a>, often described as “TDD done well”, is strongly aligned with Lean<br />
principles. It’s a pull-based approach to delivering software that<br />
matters through the whole software lifecycle, from vision to code. It<br />
minimises rework and over-delivery, bakes quality in, and is founded<br />
on respect for people in their various roles and the language that we<br />
use to collaborate and communicate. BDD has its origins in NLP and the<br />
Sapir-Whorf hypothesis: the idea that the words we use affect the<br />
cognitive model of our work. It decouples the learning associated with<br />
TDD and Acceptance Testing from the word “test”, using the more<br />
natural vocabulary of examples and behaviour to elicit requirements<br />
and create a shared understanding of the domain.</p>
<p>In this talk Liz will introduce BDD, show how to model it using PDCA,<br />
and talk about how its practices can provide quicker feedback and help<br />
us to turn a vision into reality faster.</p>
<hr />
<p>I&#8217;ve been working on this talk for a few months, and hope you enjoy it.</p>
<p>This has been a very special year for me. I&#8217;ve been fascinated by Lean principles for a while, but only recently had the opportunity to do some serious study into them and try out the related practices and tools. It&#8217;s also taken me some time to work out how strongly aligned Lean Thinking and BDD are. The <a href="http://finance.groups.yahoo.com/group/kanbandev/">community around the Lean and Kanban movement</a> has been <a href="http://lizkeogh.com/2009/12/07/a-community-of-thinkers/">very welcoming and respectful this year</a>, and I&#8217;d urge anyone who is interested to make their way over to the <a href="http://www.limitedwipsociety.org/">Limited WIP Society</a>, where some excellent blogs, articles and examples of Kanban boards etc. have been collected for your accelerated learning.</p>
<p>We held a bag-stuffing event at Agile 2009, and used it as an exercise in applying Lean techniques. (<a href="http://codeache.blogspot.com/2009/09/agile-2009-day-0-24th-august-bag.html">Hugo Corbucci</a> and <a href="http://hamletdarcy.blogspot.com/2009/08/agile-2009-day-0-kanban-bag-stuffing.html">Hamlet D&#8217;Arcy</a> both posted excellent write-ups of this). One of my proudest moments this year was when some of the Limited WIP and Kanban community asked me to stand up afterwards as someone who could be approached with questions about Lean and Kanban. I&#8217;m an effective Agile coach, but my knowledge of Lean still felt new to me at that point. To have this kind of validation meant a lot to me.</p>
<p>I appreciate those of you who have helped me in this journey for your extraordinary patience in teaching me and providing feedback on my understanding. You know who you are.</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2010/01/07/lean-software-and-systems-conference-atlanta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kanban thinking: hungry vs. peckish</title>
		<link>http://lizkeogh.com/2009/12/18/kanban-thinking-hungry-vs-peckish/</link>
		<comments>http://lizkeogh.com/2009/12/18/kanban-thinking-hungry-vs-peckish/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 02:18:32 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=516</guid>
		<description><![CDATA[I just read Michael Dubakov&#8217;s excellent post on Kanban psychology, and the shift in thinking from the habits we&#8217;re taught to a more rational behaviour.
This post made me remember what it was like, being a developer who&#8217;s discouraged from sitting and reading blog posts, or books, or learning more about the job, but who can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I just read <a href="http://www.targetprocess.com/blog/2009/12/kanban-psychology-can-you-say-no.html">Michael Dubakov&#8217;s excellent post</a> on Kanban psychology, and the shift in thinking from the habits we&#8217;re taught to a more rational behaviour.</p>
<p>This post made me remember what it was like, being a developer who&#8217;s discouraged from sitting and reading blog posts, or books, or learning more about the job, but who can&#8217;t find much meaningful work to do, so starts on the next most valuable non-valuable thing. The feeling was very similar to the way I feel when I can&#8217;t work out what to do, but it&#8217;s lunchtime soon, I know I&#8217;m not completely stuffed, there&#8217;s a snack machine down the corridor, and I&#8217;ve got into the habit of kinesthetically nibbling on things when I have nothing else occupying my attention.</p>
<p>I can say &#8220;no&#8221;. Here&#8217;s to better dietary habits, for both me and my projects. Long may they last.</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/12/18/kanban-thinking-hungry-vs-peckish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mocks, outside-in, swarming features and guesswork</title>
		<link>http://lizkeogh.com/2009/10/17/mocks-outside-in-swarming-features-and-guesswork/</link>
		<comments>http://lizkeogh.com/2009/10/17/mocks-outside-in-swarming-features-and-guesswork/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 10:37:41 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[bdd]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[stories]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=435</guid>
		<description><![CDATA[The paradox of mocking
When we code from the outside-in in BDD, we start with the layer we know &#8211; the UI, often graphical &#8211; establish collaborators for the UI, establish collaborators for those classes, and work our way inwards until we run out of collaborators we haven&#8217;t coded.
We write examples (tests) for each unit of [...]]]></description>
			<content:encoded><![CDATA[<h3>The paradox of mocking</h3>
<p>When we <a href="http://lizkeogh.com/2009/07/01/pixie-driven-development/">code from the outside-in</a> in BDD, we start with the layer we know &#8211; the UI, often graphical &#8211; establish collaborators for the UI, establish collaborators for <em>those</em> classes, and work our way inwards until we run out of collaborators we haven&#8217;t coded.</p>
<p>We write examples (tests) for each unit of code, all the way down, and we usually <a href="http://lizkeogh.com/2009/07/30/we-dont-design-using-mocks/">express the collaborations with mocks</a>.</p>
<p>The trouble is, we don&#8217;t really know how the class we&#8217;re about to code is going to use its collaborators. We can only guess. When I actually come to code the class, I often find that I want to use the collaborator in a different way to the way I expected. When I come to code the collaborator, I might find that it needs more information than its consuming class is giving it to do its job properly.</p>
<p>In this case, I have to back up and change the way that I&#8217;m expressing the collaboration in the examples. I change method names and signatures for my collaborator according to the things I&#8217;ve learnt from actually using it.</p>
<p>I&#8217;d rather do this &#8211; work out how I actually want to use a class, then change the descriptions &#8211; than be forced to conform to the guesswork that I made.</p>
<h3>Multi-pair stories</h3>
<p>Yesterday, one of the development team said, &#8220;If you&#8217;re doing XP, you only have one pair on each story, so if you have four developers, you&#8217;ll have two stories in play. It doesn&#8217;t make any sense to try to limit it to one.&#8221;</p>
<p>I&#8217;ve heard some of the Kanban community talk about &#8220;swarming&#8221; a feature; getting a whole team of, say, 8 developers to take it on and complete it in a short time. I&#8217;ve also found that some of them prefer not to split up the features as finely as I do, into very thin vertical slices; instead, the teams work on something <em>marketable</em>.</p>
<p>This makes sense, if you&#8217;re going to parcel out chunks of code. The idea of slicing things horizontally goes against most of what I teach about how to write stories &#8211; and yet, it does allow a larger team to get something valuable out the door more quickly than BDD&#8217;s pure outside-in.</p>
<p>It turns out that guessing what might need to happen further down a stack isn&#8217;t much different to guessing what happens with a collaborator, before the class is actually written. Realising this has made me revisit my assumptions about the need to do pure outside-in work. So how can we do this and still call it BDD? How can we gain confidence that we&#8217;re writing software that really matters, and doing so efficiently?</p>
<p>I can remember occasions at Thoughtworks where we did this &#8211; particularly, finishing off features to hit deadlines at the Guardian. Some of the developers at my current client are also working this way, as are <a href="http://availagility.wordpress.com/2009/09/25/xp-as-a-kanban-system/">others in the industry</a>. So, here are my suggestions for making this work.</p>
<h3>BDD for swarms</h3>
<ul>
<li><strong>Use scenarios.</strong> Having a clear understanding of the feature and a set of scenarios to which the team can work to helps keep everyone focused on the actual behaviour needed. This means it&#8217;s less likely that pairs and individuals will write code &#8220;just in case&#8221;. If in doubt, <a href="http://en.wikipedia.org/wiki/YAGNI">YAGNI</a>. The scenarios will tell you if you missed something, once all the chunks are integrated.</li>
<li><strong>Get something working.</strong> Start with the happy path or simplest scenario, and integrate this as soon as you can. This will provide a &#8220;backbone&#8221; for the rest of the scenarios. It also lets the team play through the different scenarios to test their work.</li>
<li><strong>Mock out collaborators.</strong> If you need other classes for end-to-end testing, knock up something really simple or use a mock to allow you to get some feedback. For instance, I make a smiley face appear on my Game of Life exercise when I click the button, just so that I can see that the GUI events are wired up. It takes about 5 minutes to do something like this. Name your simple classes in a way which makes it obvious, so that they don&#8217;t get mixed up with the production code and can be safely deleted later.</li>
<li><strong>Talk to the team.</strong> Conversation around what you&#8217;re doing will be crucial! If an interface has been defined at the boundary of the code, and you need to change it, go tell the other teams. They&#8217;ll be able to adapt to, or at least be aware of, the changes.</li>
<li><strong>The rest of the team is your customer.</strong> When it comes to the name of a method or the value that&#8217;s wanted from that method, the &#8220;upstream&#8221; team &#8211; closer to the outside &#8211; trump the downstream team. When it comes to the information that&#8217;s required to do the job, the downstream team win.<br />
<code><br />
List<Pet> pets = petStore.getPets(String name);<br />
</code><br />
The upstream team can ask to change the <code>List</code> to a <code>Set</code>, or the name of the method to <code>getPetsByName</code>. The downstream team can say, &#8220;Hey, we need the type of pet too; we&#8217;ve got a hamster, a rabbit and a kitten all called Snowy.&#8221;</li>
<li><strong>Prefer code that&#8217;s easy to use over code that&#8217;s easy to write.</strong> If you&#8217;re upstream, trust that the rest of your team will be able to solve the problem you&#8217;re about to set for them. Keep pushing the complexity down, and remember: <a href="http://c2.com/cgi/wiki?TellDontAsk">Tell, don&#8217;t ask</a>.</li>
<li><strong>Use examples to drive your code.</strong> When you code a module further down the stack without looking to see what&#8217;s going to use it, you&#8217;re indulging in guesswork. Write some examples of how you expect the consuming class to be using yours, then revisit them when you have more information.</li>
<li><strong>Write examples to help other people code.</strong> Ideally, the upstream team will provide examples of how they want the collaborator to behave to the downstream team. These examples can be built incrementally, as the upstream team come up with features.</li>
<li><strong>Share code.</strong> If the teams check in before the code is finished, their scenarios will fail. If they check in examples which haven&#8217;t yet been coded, those examples will fail. This won&#8217;t be a problem if no one else is modifying the code base; however, if it&#8217;s a subset of a much larger team breaking the build can cause havoc, and the habit of keeping builds green is a good one. Try <a href="http://mercurial.selenic.com/wiki/">distributed version control</a>, which will allow a team to check in on USB keys or a temporary space until the code works. (There are techniques for getting, say, Mercurial, to work alongside, say, Subversion &#8211; mostly by making each system ignore the other). You could also pass around patch files to keep the code in sync.</li>
<li><strong>Delete unused code.</strong> If at all possible, check the code as it&#8217;s being integrated and delete anything which isn&#8217;t actually being used or going to be used. This might include things like database columns, layers of abstraction which aren&#8217;t actually valuable, etc.</li>
<li><strong>Look for quick feedback.</strong> If you haven&#8217;t integrated your code within a few hours, it&#8217;s probably wrong. Making the assumption that it&#8217;s wrong should help you want to integrate it more frequently.</li>
<li><strong>The more, the merrier!</strong> Look over each other&#8217;s shoulders as you pass! There&#8217;s nothing wrong with tripling or quadrupling instead of pairing, if it means that a pair is more likely to write the right software later.</li>
</ul>
<h3>Edit:</h3>
<p> <a href="http://manicprogrammer.com/cs/blogs/willeke/">Eric Willeke</a> responded to my post with <a href="http://manicprogrammer.com/cs/blogs/willeke/archive/2009/10/17/multi-pair-stories-a-response.aspx">his own perspective on swarming</a>. I very much like the idea of having the skeleton (the simplest scenario?) ready in time for the rest of the team to get on board.</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/10/17/mocks-outside-in-swarming-features-and-guesswork/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scrum vs. Kanban: FIGHT!</title>
		<link>http://lizkeogh.com/2009/09/16/scrum-vs-kanban-fight/</link>
		<comments>http://lizkeogh.com/2009/09/16/scrum-vs-kanban-fight/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 17:27:43 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[kanban]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=432</guid>
		<description><![CDATA[Scrum: Hm, you&#8217;re rather small. Are you sure you want to do this?
Kanban: Bring it.
Scrum: Right. I represent a fundamental mindshift in the way that people do projects.
Kanban: So do I. My mindshift is different to yours; it feels subtler.
Scrum: I doubt that. I help teams collaborate and deliver working software iteratively.
Kanban: As do I. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Scrum:</strong> Hm, you&#8217;re rather small. Are you sure you want to do this?</p>
<p><strong>Kanban:</strong> Bring it.</p>
<p><strong>Scrum:</strong> Right. I represent a fundamental mindshift in the way that people do projects.</p>
<p><strong>Kanban:</strong> So do I. My mindshift is different to yours; it feels subtler.</p>
<p><strong>Scrum:</strong> I doubt that. I help teams collaborate and deliver working software iteratively.</p>
<p><strong>Kanban:</strong> As do I. Unlike you, I don&#8217;t tie people down to fixed iterations; I let them find their own cadence.</p>
<p><strong>Scrum:</strong> You say that like it&#8217;s a good thing! What if people aren&#8217;t even used to delivering iteratively? How can you possibly stop novices from taking weeks over their increments of code?</p>
<p><strong>Kanban:</strong> Well, maybe I don&#8217;t work so well with novice teams. A high-discipline team, though, who can keep their flow consistent, will find themselves more responsive with me than they will with you.</p>
<p><strong>Scrum:</strong> I help new teams get started. I give them easy, simple approaches that they can follow. You&#8217;re all about the maths.</p>
<p><strong>Kanban:</strong> Actually, I&#8217;m all about the theory of constraints. By limiting work in progress, I make the bottlenecks obvious.</p>
<p><strong>Scrum:</strong> I do that by focusing on getting the work through to production. What&#8217;s more, I was designed for software. You&#8217;re just the bastard offspring of manufacturing; you have no relevance!</p>
<p><strong>Kanban:</strong> If I have no relevance, then why do so many people believe that I&#8217;m valuable, and fight to defend me?</p>
<p><strong>Scrum:</strong> They&#8217;re in it for the money&#8230;</p>
<p><strong>Kanban:</strong> Says the world&#8217;s fastest-growing pyramid scheme&#8230;</p>
<p><strong>Scrum:</strong> I resent that! There are plenty of successful Scrum projects out there. We&#8217;re good people; we just want to change the world.</p>
<p><strong>Kanban:</strong> I&#8217;ll settle for continuous improvement, thanks.</p>
<p><strong>Scrum:</strong> We&#8217;ve got that too, except we call them Retrospectives.</p>
<p><strong>Kanban:</strong> You don&#8217;t need to batch up your improvements if everyone is focused on it.</p>
<p><strong>Scrum:</strong> There&#8217;s nothing to prevent us from continually improving.</p>
<p><strong>Kanban:</strong> There&#8217;s nothing to prevent us from having retrospectives, if we need them, or in fact from taking on any of your valuable practices. I&#8217;m just like you, except that I have sensible limits.</p>
<p><strong>Scrum:</strong> You&#8217;re not just like me. You don&#8217;t even worry about estimates half the time.</p>
<p><strong>Kanban:</strong> We estimate in time to deliver, not story points. The business understand this.</p>
<p><strong>Scrum:</strong> The business don&#8217;t trust my teams; they haven&#8217;t delivered successfully for a while. My planning enables them to regain that trust. You can&#8217;t even work without it.</p>
<p><strong>Kanban:</strong> That&#8217;s true. Once we have the trust, though, we don&#8217;t need to waste as much time on planning and estimating as you do.</p>
<p><strong>Scrum:</strong> How can you call a practice that establishes trust wasteful?</p>
<p><strong>Kanban:</strong> You&#8217;re right. We value people too, you know &#8211; we work well with the Lean principles, and &#8220;Respect for People&#8221; is one of the pillars.</p>
<p><strong>Scrum:</strong> Well, that&#8217;s good to know. People are the most important part of the process.</p>
<p><strong>Kanban:</strong> We seem to have quite a lot in common. Thinking about it, you&#8217;d probably make quite a good stepping-stone for people learning to deliver software iteratively for the first time. I guess they could turn to me later, once the discipline is there.</p>
<p><strong>Scrum:</strong> That might work. I know some people have used you in odd ways, and found value. Maybe we should just be friends?</p>
<p><strong>Kanban:</strong> Let&#8217;s call it a draw.</p>
<p><strong>XP:</strong> Let&#8217;s not. You may have the planning and estimation sewn up; you may be shifting your constraints and delivering responsively. Neither of you can survive without my technical practices. Get over here!</p>
<p><strong>FATALITY!</p>
<p>Winner: XP</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/09/16/scrum-vs-kanban-fight/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>A Coaching Kanban board</title>
		<link>http://lizkeogh.com/2009/09/16/a-coaching-kanban-board/</link>
		<comments>http://lizkeogh.com/2009/09/16/a-coaching-kanban-board/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 07:52:58 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[coaching]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[metathinking]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=431</guid>
		<description><![CDATA[Chris McMahon mentioned my example of a coaching kanban board in the second of his series of posts against Kanban. That it comes across as simple and infantile in Chris&#8217;s example is my fault; I only really touched on the &#8220;signal&#8221; aspect of the kanban board in this conversation, and didn&#8217;t go into more detail. [...]]]></description>
			<content:encoded><![CDATA[<p>Chris McMahon <a href="http://chrismcmahonsblog.blogspot.com/2009/09/against-kanban-part-2.html">mentioned my example of a coaching kanban board</a> in the second of his series of posts against Kanban. That it comes across as simple and infantile in Chris&#8217;s example is my fault; I only really touched on the &#8220;signal&#8221; aspect of the kanban board in this conversation, and didn&#8217;t go into more detail. So, in this post, I hope to correct that.</p>
<p>Picture a scene. You&#8217;re one of five coaches, hired to help transform the IT department of Screwfix. As part of this effort, you&#8217;ve set up a lovely story board on which you put the things you&#8217;re working on. This is the kind of thing that we had on our boards (all stories in this post are just examples, I can&#8217;t remember the exact concerns):</p>
<table border="1">
<tr>
<th>Waiting</th>
<th>In Progress</th>
<th>Done</th>
</tr>
<tr>
<td>Run story workshop</td>
<td>Coach team A</td>
<td>Dreyfus models for Devs</td>
</tr>
<tr>
<td>Competition</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Dreyfus models for BAs</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Coach team B</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Coach team C</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Talk to systems team about environments</td>
<td></td>
</tr>
</table>
<p>Each day, the coaching team met for a daily stand-up around this board. Our goal was to put our little avatars on the boards to show what we were working on, and move the stories (on post-its) to &#8220;done&#8221; when we had finished. After a couple of weeks, we realised &#8211; we weren&#8217;t actually using the board.</p>
<p>&#8220;The problem is,&#8221; Andy said, &#8220;half the things that we&#8217;re doing aren&#8217;t the kind of things we can move to &#8216;done&#8217;. They&#8217;re ongoing.&#8221;</p>
<p>&#8220;Right,&#8221; I agreed, &#8220;and half of them aren&#8217;t even on this board. There&#8217;s all kinds of things we&#8217;re doing with respect to the competition, coaching individuals, writing workshops, etc., and they&#8217;re not even up here. I wonder what we can do differently?&#8221;</p>
<p>At the time, I was hearing a lot of buzz around the word &#8220;Kanban&#8221;, and reading the Poppendieck&#8217;s &#8220;Lean Software Development&#8221;. It occurred to me that we might be able to use it to help us manage our coaching efforts.</p>
<p>So, I drew up a new board, and talked to our head coach, Chris, about it. &#8220;I&#8217;ve realised that I can cope with about three concerns at a time,&#8221; I said. &#8220;If you try to get me to worry about a fourth, I&#8217;ll promise to do it, and then something else will drop off the radar. It doesn&#8217;t matter how much I promise to do four things, realistically I&#8217;ll only get three done well at any time. So, I&#8217;m going to limit myself to 3.&#8221; I talked to the other coaches, and we found our own limits: 3 for each of the other coaches, and 1 for our part-time coach, Antony. So here&#8217;s what our new board looked like:</p>
<table border="1">
<tr>
<th>Backlog</th>
<th>Liz (3)</th>
<td>Coach team A</td>
<td>Coach team B</td>
<td>Competition</td>
</tr>
<tr>
<td>Dreyfus models for BAs</td>
<th>Helen (3)</th>
<td>Facilitating retros</td>
<td>Coach team C</td>
<td></td>
</tr>
<tr>
<td>Run story workshop</td>
<th>Andy (3)</th>
<td>Getting acceptance tests working with team C</td>
<td>Cont. Integration</td>
<td>Teaching QAs to code</td>
</tr>
<tr>
<td>Coach new coaches</td>
<th>Antony (1)</th>
<td>Teaching QAs to code</td>
<td colspan="2"></td>
</tr>
<tr>
<td>Phase 3 competition</td>
<td colspan="4"></td>
</tr>
<tr>
<td>Coach team D</td>
<td colspan="4"></td>
</tr>
<tr>
<td>Sort out version control</td>
<td colspan="4"></td>
</tr>
</table>
<p>&#8220;Why, Helen!&#8221; I exclaimed, grinning. &#8220;You&#8217;ve got a space there.&#8221; I took a new post-it and wrote, &#8220;GIVE ME WORK!&#8221; on it, then stuck it in Helen&#8217;s space.</p>
<p>&#8220;What? No!&#8221; Helen exclaimed. &#8220;I can&#8217;t possibly take on any more work!&#8221;</p>
<p>&#8220;Well, either your limit is wrong &#8211; it&#8217;s OK to only manage two things &#8211; or there&#8217;s something you&#8217;re working on that&#8217;s not up there. Team C&#8217;s quite big; is that taking up about twice as much time as normal?&#8221;</p>
<p>&#8220;Not really,&#8221; Helen said thoughtfully. &#8220;There&#8217;s something else I&#8217;m working on. Let me think a moment&#8230; Ah! Of course, I&#8217;m also running the Agile induction course.&#8221; She wrote a post-it to replace mine.</p>
<p>&#8220;That&#8217;s great,&#8221; Chris said. &#8220;Now I can see what you&#8217;re working on, and also what you&#8217;re not working on.&#8221; We had a chat about some of the items in our backlog, and talked about when we might be able to bring them into play.</p>
<p>The board was much more effective, helping us juggle our workload appropriately, until it came close to the time for me to leave. Suddenly, I found I had more work than I could possibly manage.</p>
<p>So I cornered Chris. &#8220;You know how I said if I ended up doing four things, something would drop off the radar?&#8221; I asked.</p>
<p>&#8220;Yes&#8230;&#8221;</p>
<p>&#8220;Well, turns out it&#8217;s my lunch-hour. I&#8217;m exhausted; this isn&#8217;t sustainable. Can we sort something out?&#8221;</p>
<p>&#8220;Of course!&#8221; Chris said. So we got the coaches around the board to look at what we were all working on.</p>
<p>Chris looked at the various teams, competitions, workshops, technological strategies and other coaching concerns. &#8220;I don&#8217;t really care too much about these,&#8221; he said, removing about ten items from our (overly large) backlog. &#8220;And we don&#8217;t need to worry about Team B any more &#8211; I think they&#8217;ve got it. I&#8217;d really like you to run the other coaching workshops before you leave though, Liz.&#8221;</p>
<p>&#8220;Right,&#8221; I said, &#8220;then someone else needs to take over the TDD training.&#8221;</p>
<p>&#8220;I can&#8217;t,&#8221; Helen said, &#8220;I&#8217;m not technical. I&#8217;ve just finished the last Agile induction course, though, so I&#8217;ve got space to pick something else up. Andy&#8217;s been facilitating the retros; why don&#8217;t I take that instead, and then Andy could do the TDD training?&#8221;</p>
<p>&#8220;That works,&#8221; Andy replied. We swapped stories accordingly, moving them into their new places.</p>
<p>&#8220;Fantastic,&#8221; I smiled. &#8220;Anyone fancy some lunch?&#8221;</p>
<p>Having the visual aid helped us prioritise our efforts, as well as letting us share and organise our concerns. The most important aspect of this, for me, was the realistic recognition of our limits, which allowed Chris to direct our focus much more effectively. The Kanban board was just a tool for us, not a process or methodology in its own right. Nor did it replace conversation. It just facilitated it, and acted as a visual radiator. I found it useful, and I hope you enjoyed reading about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/09/16/a-coaching-kanban-board/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Lean software production line</title>
		<link>http://lizkeogh.com/2009/08/19/the-lean-software-production-line/</link>
		<comments>http://lizkeogh.com/2009/08/19/the-lean-software-production-line/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 13:07:25 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=426</guid>
		<description><![CDATA[Andy, the release manager at my current client, asked, &#8220;How can I get the teams to follow a consistent process where readying the release for deployment is concerned? We have different version control systems, different build processes&#8230; how do I make them behave in the same way?&#8221;
Ask for consistent outputs, not consistent processes
In a waterfall-ish [...]]]></description>
			<content:encoded><![CDATA[<p>Andy, the release manager at my current client, asked, &#8220;How can I get the teams to follow a consistent process where readying the release for deployment is concerned? We have different version control systems, different build processes&#8230; how do I make them behave in the same way?&#8221;</p>
<h3>Ask for consistent outputs, not consistent processes</h3>
<p>In a waterfall-ish world, teams hand over the artifacts of their processes to other teams, who take them away and use them. Each team rarely has insight into what the other teams get up to with their artifacts. The team will produce the artifacts whether they&#8217;re needed or not, because they&#8217;re part of the process. Release management&#8217;s artifact has usually consisted of a document detailing the steps to check out, build and deploy an application, signed off by a gatekeeper who may or may not be familiar with the process itself.</p>
<p>In our lean world, the processes which the team goes through are defined by the team themselves; adapted and changed as the team continually improve. As part of that continual improvement the team may discover new and different ways to collaborate with their stakeholders, including the incidental stakeholders, who may not be paying for the project or using it, but who care nontheless.</p>
<p>Andy is one of these incidental stakeholders.</p>
<p>&#8220;If you&#8217;re a stakeholder,&#8221; I suggest, &#8220;you get to put your requirements to the team as well. Ask them for the thing you need. If you need consistency, tell them what consistency looks like. Get them to put the artifacts in a place where you can find them, together with a script that allows you to deploy. Your team are the ones with expertise in deployment, so they might usefully collaborate with the development teams to produce those scripts.&#8221; We talk a little about <a href="http://lizkeogh.com/2008/09/10/feature-injection-and-handling-technical-stories/">using the Feature Injection template for technical stories</a>, continuous integration, and how the build might play into deployment. &#8220;Imagine if you could then just press a button and have those artifacts deploy themselves. How much would that benefit the QAs?&#8221;</p>
<p>&#8220;Right! And we&#8217;d get round the problem we have now, where we don&#8217;t deploy the services together with the applications until System Test, where of course they don&#8217;t work together.&#8221;</p>
<p>&#8220;They still won&#8217;t work together,&#8221; I reply. &#8220;All the mistakes in other processes also happen in Lean and Agile; the only difference is that we expect them. We don&#8217;t hope they won&#8217;t happen &#8211; instead, we know they will. We make it safe to fail, instead of fail-safe. This time, we&#8217;ll find out while the mistakes are still small, and after that every fix we need will also be small. We&#8217;ll also find the mistakes close to the place where they&#8217;re created, and the knowledge of how to fix them will be fresh.&#8221; We talk about Work In Progress as a liability, and move from there onto the similarities between Lean software development and Lean manufacturing.</p>
<h3>Software development is not a production line</h3>
<p>A large number of the metaphors of Lean manufacturing which we bring into software development have to do with the production line &#8211; that conveyor belt with the &#8220;stop the line&#8221; Jidoka handles on which the cars are built. Unfortunately, software development isn&#8217;t like building cars. If we find ourselves building the same software over and over again, perhaps configured slightly differently depending on the customer, then we&#8217;re not creating anything new and we should just use the same software we designed before, or buy something that someone else wrote.</p>
<p>Software development is about creating new things. It&#8217;s more like the product development shop; designing new cars, instead of building the same models over and over again. Ideally, it&#8217;s about trying out risky things &#8211; things which no one has done before. When we try new things, they sometimes don&#8217;t work.</p>
<p>&#8220;Yes,&#8221; Andy comments. &#8220;I&#8217;d love us to learn better from our mistakes.&#8221;</p>
<p>&#8220;They&#8217;re not really mistakes,&#8221; I hazard. &#8220;If we&#8217;re doing things that nobody has done before, then of course some of them won&#8217;t work. If someone is making mistakes it&#8217;s either because they&#8217;re human &#8211; and that isn&#8217;t going to change in a hurry &#8211; or because the system is set up in such a way that it was always going to happen. We can build safety in to catch the human mistakes. If we blame people for getting things wrong then they have a tendency to hide their mistakes. Instead, we want them to try things out. We want them to learn.&#8221;</p>
<p>&#8220;We should focus on the good side of making mistakes,&#8221; Andy muses.</p>
<p>&#8220;Even the act of making mistakes might be considered a good thing. We&#8217;re trying things out and learning from them; that&#8217;s innovation at work. If we change our language, people behave differently. We can focus on exploring ideas instead of avoiding risk.&#8221;</p>
<h3>Integration and deployment is a production line</h3>
<p>Once we&#8217;ve developed some software, we want to get it out into the world. This is where the metaphors of the Lean manufacturing production line come in &#8211; Jidoka, or the act of &#8220;stopping the line&#8221; to fix any problems with it; the button-click from a tester or release manager that signals the need for a fresh deployment, just like Kanban; delivery to the end-customer which provides the feedback to the team.</p>
<p>&#8220;Right now, we&#8217;ve started to introduce good practices into the team but we&#8217;re still not doing automated deployment,&#8221; I explain. &#8220;That&#8217;s like having a high-tech development shop designing the latest cars, then putting them together by hand, using techniques from 1900 &#8211; filing this screw here, hammering this panel to fit into place, every time a different set of problems to adapt to.&#8221;</p>
<p>&#8220;You&#8217;re right. I hadn&#8217;t thought of it like that,&#8221; Andy smiled. &#8220;This is going to make things a lot easier.&#8221;</p>
<h3>Automation doesn&#8217;t make it easier</h3>
<p>Automation introduces its own set of problems. In my opinion, these are much more interesting problems than, &#8220;How do we get our software to work in production?&#8221; Instead, we have, &#8220;How do we configure our webservers remotely? Do we want virtual servers? How big a sample of production data do we need for UAT? How can we get faster feedback from the build? Can we create a preview site?&#8221;</p>
<p>As well as freeing people up to answer these questions, automation allows the release team &#8211; rapidly becoming more of a community than a team, and sharing their expertise as they go &#8211; to collaborate with the developers, creating software that&#8217;s easier to build and deploy, or even coming up with new build tools. The ease of deployment may not increase, but the quality and consistency will.</p>
<p>There are plenty of different types of conveyor belt available &#8211; my favourite software conveyor belt right now is <a href="https://hudson.dev.java.net/">Hudson</a> &#8211; and they can be configured to twist and turn the different artifacts in all the usual ways. Giving the developers a miniature version &#8211; maybe with a smaller data set, or enough to just build their engine or gearbox or whatever module they&#8217;re working on &#8211; can help to ensure that the software is buildable.</p>
<p>Expect, however, that if you&#8217;re doing tricky things with your software that require a unique approach to building it, you may have to spend time designing and building new production line tools.</p>
<p>That&#8217;s all right, because they&#8217;re just software too.</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/08/19/the-lean-software-production-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pulling Power and Kanban experiences</title>
		<link>http://lizkeogh.com/2009/05/29/pulling-power-and-kanban-experiences/</link>
		<comments>http://lizkeogh.com/2009/05/29/pulling-power-and-kanban-experiences/#comments</comments>
		<pubDate>Fri, 29 May 2009 10:07:18 +0000</pubDate>
		<dc:creator>liz</dc:creator>
				<category><![CDATA[bdd]]></category>
		<category><![CDATA[jbehave]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[stories]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://lizkeogh.com/?p=414</guid>
		<description><![CDATA[My first ever article, &#8220;Pulling Power: a new Software Lifespan&#8221; is up on InfoQ. BDD, Feature Injection, Lean and Kanban playing nice together!
Big thanks to Dan North, Chris Matts, David Anderson, Amr Elssamadisy and the amalgam of developers who make up &#8220;Jerry&#8221;; also to the Thoughtworkers who reviewed my article and gave me advice, and [...]]]></description>
			<content:encoded><![CDATA[<p>My first ever article, <a href="http://www.infoq.com/news/2009/05/pulling-power">&#8220;Pulling Power: a new Software Lifespan&#8221;</a> is up on <a href="http://www.infoq.com">InfoQ</a>. BDD, Feature Injection, Lean and Kanban playing nice together!</p>
<p>Big thanks to Dan North, Chris Matts, David Anderson, Amr Elssamadisy and the amalgam of developers who make up &#8220;Jerry&#8221;; also to the Thoughtworkers who reviewed my article and gave me advice, and the Kanbanjins like Eric Willeke who patiently talked me through Lean and Kanban. Several times. Anything I still haven&#8217;t understood is my error, not theirs.</p>
<p>I wish I could have put in everything I&#8217;ve learnt about Kanban, which is far larger than this article allows. It strikes me as a lovely, simple, high-discipline, least-wasteful way to deliver software, and it matches my feeling that you should fit your process to reality, not reality to your process.</p>
<p>My experiments with Kanban boards so far have been highly successful. Now I want to know about the problems, too. Have you tried Kanban? What happened? Did you try to introduce it? Did that work out? If not, why not? Did you think about introducing it, but decide not to? Tell me your stories!</p>
]]></content:encoded>
			<wfw:commentRss>http://lizkeogh.com/2009/05/29/pulling-power-and-kanban-experiences/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

