<?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>Pawel Brodzinski on Software Project Management &#187; project management</title>
	<atom:link href="http://blog.brodzinski.com/category/project-management/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.brodzinski.com</link>
	<description>Dealing with software projects in real life</description>
	<lastBuildDate>Wed, 28 Jul 2010 21:01:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The Kanban Story: When and Why We Abuse Limits</title>
		<link>http://blog.brodzinski.com/2010/07/kanban-abusing-limits.html</link>
		<comments>http://blog.brodzinski.com/2010/07/kanban-abusing-limits.html#comments</comments>
		<pubDate>Fri, 16 Jul 2010 14:57:23 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[kanban board]]></category>
		<category><![CDATA[limits]]></category>
		<category><![CDATA[methodology]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1887</guid>
		<description><![CDATA[We have limits on our Kanban board. This isn’t really a news. Sometimes we abuse them. Since Kanban doesn’t force you to stick to the limits always-and-by-all-means it shouldn’t surprise you much either. However the interesting thing is when, why, how and how often we do it. I think I should start with stating that [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/07/kanban-abusing-limits.html" title="Permanent link to The Kanban Story: When and Why We Abuse Limits"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/kanban.jpg" width="200" height="200" alt="Kanban" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F07%2Fkanban-abusing-limits.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F07%2Fkanban-abusing-limits.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>We have limits on our <a href="http://blog.brodzinski.com/2010/02/kanban-board-revisited.html">Kanban board</a>. This isn’t really a news. Sometimes we abuse them. Since <strong>Kanban doesn’t force you to stick to the limits always-and-by-all-means</strong> it shouldn’t surprise you much either. However the interesting thing is when, why, how and how often we do it.</p>
<p>I think I should start with stating that our limits are rather loose. It is technically possible to have as many as 15 MMFs in progress across the board. It never happened and it won’t ever happen, but still it is technically feasible. That’s crazy huge workload for 5-person team.</p>
<p>But we happen to have limits like that and it’s not without a reason. If you recall our <a href="http://blog.brodzinski.com/2010/01/kanban-iterations.html">pseudo-iterations</a> triggered by <a href="http://en.wikipedia.org/wiki/Version_control_system">VCS</a> issues you know we ship our software in packages of few (typically 2 or 3, sometimes 4) features. This means we sometimes move a group of 4 features across the board. For example it happens after deployment when we move features from testing complete to live stage. OK, enough of introduction about our limits.</p>
<h3><strong>When do we abuse limits?</strong></h3>
<p>It sometimes happens we change content of our deployment package on the fly. For example we have a package of 4 features in testing (either ongoing or completed) and then our crazy product owner (aka me) comes with an idea to add another tiny but super-important and super-urgent feature. Of course we could wait till another pseudo-iteration is deployed but sometimes it just makes more sense to add it to the old package instead of waiting another 13 days for another deployment package.</p>
<p>We also had a painful MMF blocked for long weeks by our subcontractor. This practically reduced our limit in development by 1 for a longer time. It happened once that we decided to break this reduced limit acknowledging the fact we can do nothing more about blocked feature.</p>
<h3><strong>Why do we abuse limits?</strong></h3>
<p>Two words: <strong>common sense</strong>. If it is more reasonable to break the limit than to adjust whole work to our board we don’t try to perform some artificial actions just to be compliant with the process.</p>
<p>We aren’t here for the board. The board is here for us.</p>
<h3><strong>How do we abuse limits?</strong></h3>
<p>First we all discuss the decision. Breaking the limit shouldn’t be treated as a normal thing. It is an extraordinary situation. So we collectively decide whether in this very situation breaking the limit is a better solution or we should rather stick to our constraints.</p>
<p>This serves two purposes: one, <strong>we make this decision very consciously</strong> and two, <strong>we stress that it isn’t a typical and easy-to-accept situation</strong>.</p>
<p>It happened once when I found the board with a broken limit with no discussion whatsoever about the fact. I fired two third of the team and burned whole office&#8230; Well, maybe not really, but man, I wasn’t happy. I wasn’t happy at all.</p>
<h3><strong>How often do we abuse limits?</strong></h3>
<p>This is the question you were waiting for, weren’t you? Pretty rarely I’d say &#8211; <strong>thrice a year</strong>. Well, describing it as an average result is a bit of abuse itself since it was our first year with Kanban. But you can see this is an extraordinary situation.</p>
<p>To summarize, limits on our Kanban board aren’t a sacred cow. <strong>We break them if it does make sense and we decide it is a better solution than sticking to them at all cost.</strong> On the other hand we try to make breaking the limit an uncomfortable situation (you know, all this discussion, talking with each other&#8230; yikes) so we aren’t tempted to do this very often.</p>
<p>So far it works pretty well.</p>
<p>Read the rest of the <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">Kanban Story</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/07/kanban-abusing-limits.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Project Management Basics</title>
		<link>http://blog.brodzinski.com/2010/06/learning-project-management-basics.html</link>
		<comments>http://blog.brodzinski.com/2010/06/learning-project-management-basics.html#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:50:55 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[personal development]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[career planning]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[learning]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1873</guid>
		<description><![CDATA[A question about starting career in project management is heard pretty often. A question about value of different project management certifications usually follows. There is a bunch of standard answers for these questions. Apply for junior role in project management. Attend a course. Help your PM in her job. Get a certificate (this or another). [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/06/learning-project-management-basics.html" title="Permanent link to Learning Project Management Basics"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/2010/01/learn.jpg" width="200" height="200" alt="Learn" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Flearning-project-management-basics.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Flearning-project-management-basics.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>A question about <a href="http://pmstudent.com/help-in-starting-a-career-in-project-management/">starting career in project management</a> is heard pretty often. A question about value of <a href="http://www.theicpm.com/how-to/3186-are-you-new-to-project-management">different project management certifications</a> usually follows.</p>
<p>There is a bunch of standard answers for these questions. Apply for junior role in project management. Attend a course. Help your PM in her job. Get a certificate (this or another). Buy and read a stack of books on project management etc.</p>
<p>I have another answer. Actually the answer isn’t exactly mine. I’ve ruthlessly stolen it from <a href="http://www.scottberkun.com/blog/2009/should-i-become-a-project-manager-mailbag/">Scott Berkun</a>.</p>
<p><strong>Go, run a project.</strong></p>
<p><em>“How? I mean I’m yet trying to get project management job, remember?”</em></p>
<p>Pretty much everything which happens around you is a kind of project. If you invite a group of friend for a dinner it is a project. If that doesn’t sound like a real project think bigger. Maybe you can organize vacations for friends?</p>
<p><em>“Yeah, and what do I learn from such a simple thing?”</em></p>
<p>Don’t tell me it’s easy – I’m just finalizing sailing trip for 25 people. And, believe me, friends aren’t the best clients you can find around. It requires the same skills you’ll be using once you get your PM job to organize this kind of trip.</p>
<p><em>“Maybe that’s a nice idea but I don’t have 25 friends.”</em></p>
<p>That sucks, man. But you definitely have some non-profit organization which would appreciate some help in their projects. And they do have a lot of them. And they’d love your help they’d get for free (non-profit often means non-paying too).</p>
<p><em>“But, you know, this whole non-profit stiff isn’t really something I’d like to work on.”</em></p>
<p>Um, you think once you are a project manager you’ll be able to choose projects you like and reject those you don’t. I have a bad news for you. You won’t. You know life isn’t as nice as they told you.</p>
<p><em>“OK, but how it helps me to learn project management?”</em></p>
<p>You basically organize a group of people to do what you want. They come to a meeting point. They go to target place where they’re warmly welcomed by your hosts. People know when they can go watch latest World Cup match and when they should bring you a cold beer in exchange for organizing this great trip. Earlier everyone paid you their share of costs so you could have paid for your shelter.</p>
<p>This isn’t much different from project management in real world. You make people doing what you want. They work on a project tasks of your choice. Everyone knows when they’re free to learn new technology and when they should focus of finishing before deadline. Earlier people agreed on plan of splitting tasks and build a schedule etc.</p>
<p><em>“What about all the formal stuff? I don’t have to create technical specifications when I organize a trip for friends.”</em></p>
<p>Oh, really? You don’t? That’s interesting&#8230; OK, just joking. All the formal stuff will differ among companies so it isn’t so important anyway. Of course you should know what <a href="http://en.wikipedia.org/wiki/Work_breakdown_structure">WBS</a> is and understand how to find <a href="http://en.wikipedia.org/wiki/Critical_path_method">critical path</a>, but that’s not a rocket science.</p>
<p>What more usually candidates for project management positions lack practical knowledge – lack of understanding of some technical terms isn’t so common.</p>
<p><strong>So go, find a project and run it.</strong> After all there aren’t many things which would match your friends thanking you for a great trip and asking whether you’re organizing it next year too. This single thing is worth the whole effort. The funny thing is it <a href="http://askaboutprojects.com/questions/821/what-does-being-a-project-manager-mean-to-you/822#822">works similarly in projects you run at work</a>.</p>
<p>By the way, I’d use the same method to learn leadership.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/06/learning-project-management-basics.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Agile Isn’t Immune for People Who Don’t Give a Damn</title>
		<link>http://blog.brodzinski.com/2010/06/agile-and-people-who-dont-care.html</link>
		<comments>http://blog.brodzinski.com/2010/06/agile-and-people-who-dont-care.html#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:30:01 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[discipline]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1870</guid>
		<description><![CDATA[I like presenting. I just love the fact that every time I deliver the presentation I find something new in there. It’s like having tiny epiphanies while you’re talking to a crowd. And I’m sure I wouldn’t have them if I didn’t overcome my fears and didn’t start speaking publicly. A thing which hit me [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/06/agile-and-people-who-dont-care.html" title="Permanent link to Agile Isn’t Immune for People Who Don’t Give a Damn"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/2010/02/agile.jpg" width="200" height="200" alt="Agile" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fagile-and-people-who-dont-care.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fagile-and-people-who-dont-care.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I like presenting. I just love the fact that every time I deliver the presentation I find something new in there. It’s like having tiny epiphanies while you’re talking to a crowd. And I’m sure I wouldn’t have them if I didn’t overcome my fears and didn’t start speaking publicly.</p>
<p>A thing which hit me last time I was delivering my <a href="http://blog.brodzinski.com/2010/04/kanban-story-presentation.html">Kanban Story presentation</a> was <strong>how fragile agile is in terms of people who don’t give a damn</strong>. In the summary of presentation I make a point that Kanban may not be for your team if you work with undisciplined engineers.</p>
<p>But what I realized while I was talking it is not only about lack of discipline. It’s about care. In Kanban people have to care about <a href="http://blog.brodzinski.com/2009/11/kanban-story-kanban-board.html">Kanban board</a>. They have to move cards as they progress with features. They can’t abuse limits unless it is agreed among the team and team rules allow to. They should think how they could improve the board. They should keep the board up to date.</p>
<p>Why it is so important? Because the board is single most important information radiator in Kanban teams. <strong>If contents of Kanban board are random you spread random information about project among the team and outside the team.</strong> You pretty much misinform everyone around. And now the important thing:</p>
<p><strong>In Kanban teams anyone can easily abuse Kanban board.</strong></p>
<p>It’s enough someone doesn’t care. He doesn’t care to move cards through the board or put his marker on task he’s working on at the moment or ignore transition criteria or whatever. Suddenly you have random Kanban board and no systemic tools to deal with the issue. People versus Kanban 1:0 at halftime. If you want to know how the match ends, well, you’ll have to read the blog in future since it is a subject for another post.</p>
<p>It’s already half of A4 page and I haven’t really mentioned agile in general. Only Kanban. Kanban this and Kanban that. Don’t I have something else to say? Well, I do, thanks for bearing with me so far.</p>
<p><strong>One of reasons why Kanban is so easily abused by people who don’t give a damn is the fact that Kanban prescribes close to nothing.</strong> But enough of K-word. Scrum is more formal. Actually <a href="http://blog.brodzinski.com/2009/03/agile-means-formal.html">Scrum is pretty formal</a> approach if you ask me. How it deals with the problem?</p>
<p>A bit better. Stand-ups, time-boxing and planning meetings are all practices which help to deal with undisciplined team members. (I wanted to write <em>“engineers”</em> instead of <em>“team members”</em> but I’ve just recalled there are no roles in Scrum besides Scrum Master, Product Owner and Team Member and I prefer not to be killed by some Scrum extremist.) <strong>With these practices it is easier to make someone stick to convert folks who don’t care.</strong> If you work with Scrum you can’t work without time-boxing while the rest of the team has 2-week long sprints. You are asked the same questions as everyone else during stand-ups. There is more of a stick in Scrum than in Kanban. (Have I just said K-word?)</p>
<p>XP goes even further. Rules are surrounding you everywhere, my poor engineer. It almost tells you how to pee. Not in pairs. fortunately If you work with XP and you don’t give a damn you’re probably already fired.</p>
<p>But let’s face it – how many teams out there use eXtreme Programming religiously? Few. More of them follow just a couple of engineering techniques choosing Scrum as their process base. And even then we have whole variety of <a href="http://www.noop.nl/2009/09/scrumbuts-are-the-best-part-of-scrum.html">Scrumbuts, Scrumbans and Scrumwhatevers</a>.</p>
<p><strong>Average agile approach in real world, if there happen to be something like that, would cover a very limited number of rules.</strong> I’d say that there would be less of them than Scrum proposes. And even then rules are often softened or teams choose those which are less painful to adapt.</p>
<p>So we come back to the first point. The fewer constraints (aka enforced practices) we have in place the more easily our process can be abused by people who don’t give a damn. <strong>If your method base on a lot of common understanding instead of tons of process documentations and a number of strict rules buying all people in becomes crucial.</strong> Having few rules means that you give people power to create and adjust your software development/project management approach.</p>
<p><strong>It also means you give them power to destroy and harm it.</strong></p>
<p>If you like this post you should thank <a href="http://twitter.com/mpaluchowski">Michal</a> who <a href="http://twitter.com/mpaluchowski/status/16927139438">took the discussion up</a> on Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/06/agile-and-people-who-dont-care.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Risk Management in Small Teams</title>
		<link>http://blog.brodzinski.com/2010/06/small-team-risk-management.html</link>
		<comments>http://blog.brodzinski.com/2010/06/small-team-risk-management.html#comments</comments>
		<pubDate>Wed, 09 Jun 2010 16:14:23 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[risk management]]></category>
		<category><![CDATA[small project]]></category>
		<category><![CDATA[small team]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1844</guid>
		<description><![CDATA[I was taught risk management the classic way. You know, risk log, voting for probability and impact, finding out which risks are the most painful, deciding on mitigation plan, discussing results etc. A cool thing in this old-school process is that it activates different members of the team. Even those, who wouldn’t be asked otherwise. [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/06/small-team-risk-management.html" title="Permanent link to Risk Management in Small Teams"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/risk.jpg" width="200" height="200" alt="Risk" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fsmall-team-risk-management.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fsmall-team-risk-management.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>I was taught <a href="http://blog.brodzinski.com/2006/08/msf-risk-management-basics.html">risk management</a> the classic way. You know, risk log, voting for probability and impact, finding out which risks are the most painful, deciding on mitigation plan, discussing results etc.</p>
<p><strong>A cool thing in this old-school process is that it activates different members of the team.</strong> Even those, who wouldn’t be asked otherwise. Even those, who would tell you that the project is doomed unless you decide to do something about that performance issue found last month.</p>
<p>At the same time in small teams this kind of process looks like complete overkill. In small teams which deal with small chunks of work knowledge about risks (about everything actually) is often commonly shared. The problem isn’t about bringing individual opinions to the table. <strong>The problem is to make risk management as simple as possible yet still effective.</strong></p>
<p><strong>An easy and powerful approach here is to forget that there is something like risk management at all.</strong> At least to the point where you don’t consider having dedicated formal process to do risk management. Instead you incorporate risk management to everyday tasks: stand-ups, retrospectives, demos, planning meetings etc. You discuss potential risks every time you discuss a task or story. You discuss potential risks whenever you feel about it.</p>
<p>You won’t even need a risk log. If you talk about risks at every occasion you quickly learn how to catch those which may become painful (filtering by type) and those which are likely to hit you (filtering by frequency of mentioning).</p>
<p><strong>When you keep talking about risks all the time people learn to deal with them naturally as they work on their tasks.</strong> Potential performance problem Luke mentioned yesterday? I’ll run some stress tests as I just have a while and maybe Mike would take a look at database as he’s already tweaking it to build that new feature. The trick is we don’t call it a risk. It is just a performance issue. Possible performance issue actually. Luke just thought it might become a problem but in a couple of days the problem will be gone, this way or another. And you don’t need to use the word risk, have a risk log, perform risk assessment, build and implement mitigation plans etc.</p>
<p><strong>The only thing you need to have this kind risk management in place is a bit of trust and open atmosphere.</strong> Oh, <a href="http://blog.brodzinski.com/2009/11/co-location-rules.html">co-location</a> and <a href="http://blog.brodzinski.com/2009/11/how-to-reduce-number-of-meetings-to-one.html">no-meeting culture</a> may help as well but in small teams both are usually in place already.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/06/small-team-risk-management.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Kanban is the Best Choice</title>
		<link>http://blog.brodzinski.com/2010/06/kanban-best-choice.html</link>
		<comments>http://blog.brodzinski.com/2010/06/kanban-best-choice.html#comments</comments>
		<pubDate>Mon, 07 Jun 2010 15:35:17 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[priorities]]></category>
		<category><![CDATA[small project]]></category>
		<category><![CDATA[software maintenance]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1842</guid>
		<description><![CDATA[Kanban, as any other methodology, isn’t a silver bullet. There are situations and teams when it shows its full potential but there are others where its impact will be limited. Where Kanban suits best then? Micro-sized teams It is said Scrum works best with teams of 7 or close to this size. Sometimes we deal [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/06/kanban-best-choice.html" title="Permanent link to When Kanban is the Best Choice"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/kanban.jpg" width="200" height="200" alt="Kanban" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fkanban-best-choice.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F06%2Fkanban-best-choice.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Kanban, as any other methodology, isn’t <a href="http://blog.brodzinski.com/2009/03/pm-methodologies-no-silver-bullet.html">a silver bullet</a>. There are situations and teams when it shows its full potential but there are others where its impact will be limited. Where Kanban suits best then?</p>
<h2>Micro-sized teams</h2>
<p>It is said <a href="http://askaboutprojects.com/questions/874/agile-scrum-is-there-a-size-limit">Scrum works best with teams of 7 or close to this size</a>. Sometimes we deal with smaller groups. 3 people working on a project isn’t something very uncommon. <strong>For such micro-sized teams <a href="http://blog.brodzinski.com/2009/03/agile-means-formal.html">Scrum is often too formalized</a>.</strong> You can limit a number of rules you follow and still keep good quality. And you have a bit more time to do the real work.</p>
<h2>Frequent priority changes</h2>
<p><em>“Walking on water and developing software from specifications are easy if both are frozen.”</em> Unfortunately we deal with a lot of changes as we build software. There are new features; importance of tasks changes, new top priority bugs requires instant attention. Our response is moving to more flexible approaches. We try to avoid <a href="http://en.wikipedia.org/wiki/BDUF">BDUF</a> projects. We switch to agile methods employing short iterations. <strong><a href="http://twitter.com/TotherAlistair/status/7053049196">We even make iterations shorter and shorter</a>. It allows us to change priorities frequently.</strong> Once every couple of weeks if we take typical Scrum implementation.</p>
<p>The problem is when priorities happen to change even more frequently. Once every few days. Or even every single day. And yes, there are such projects. Kanban is a great answer for them. Feel free to change priorities every day. As long as it is well-grounded it shouldn’t ruin your project.</p>
<h2>Maintenance projects</h2>
<p>A typical maintenance project routine looks like this:</p>
<ol>
<li> Whenever high-priority bug is submitted fix it as soon as possible</li>
<li> Low-priority bugs becomes high-priority ones when resolution deadline approaches; then see above</li>
<li> Whenever a client orders change request (CR) and there’s no high-priority bugs – try to do it as soon as possible</li>
<li> If there are more than single concurrent CR ask project manager about priorities</li>
<li> If there are no bugs or CRs do some refactoring or other improvement job</li>
</ol>
<p>Sounds like ideal Kanban playground, doesn’t it? That’s typical case of event-driven development (not <a href="http://en.wikipedia.org/wiki/Event-driven_programming">event-driven programming</a>) where you don’t actually have a roadmap or something but you do whatever new day brings. After all you don’t expect to have a bug submitted tomorrow, or do you?</p>
<h2>Multiple small projects</h2>
<p>Working on several rather small projects or sub-projects with the same team at the same time is pretty difficult. Resources (what a nice name for your people) are usually insufficient since it is harder to synchronize stream of small orders to keep it at the same level all the time and bringing more people just-in-case isn’t the best business strategy around. This ends up with (surprise, surprise) a lot of priority changes and trade-off games. <em>“We can complete this additional project on time but we’d fail to meet a deadline here or there.”</em></p>
<p><strong>With standard structured project management approaches coordinating different threads with ever-changing priorities becomes pretty much a hell.</strong> What Kanban does is it organizes workflow so the main, well almost the only, thing you should care about is setting priorities at the beginning of workflow.</p>
<h2>Common part</h2>
<p><strong>The common part for all of environments above is they don’t require many constraints to work.</strong> Few simple rules which come with Kanban should be enough to get things done. <strong>Another common thing is mid- and long-term planning is hard or even close to impossible,</strong> which is another problem hardly resolvable with more structured approaches. These two things are the most specific for environments where Kanban shows its full potential.</p>
<p>This isn’t really a post which is a part of the <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">Kanban Story</a> but if you found it interesting you should like the story as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/06/kanban-best-choice.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The Kanban Story: Swarming</title>
		<link>http://blog.brodzinski.com/2010/05/kanban-swarming.html</link>
		<comments>http://blog.brodzinski.com/2010/05/kanban-swarming.html#comments</comments>
		<pubDate>Thu, 27 May 2010 15:44:48 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[emergency]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[swarming]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1831</guid>
		<description><![CDATA[If you’re into Kanban you probably have heard the term swarming. Actually chances are good you’ve heard the term despite your lack of interest in Kanban. What is swarming? In short swarming is all about getting more people to do the task than you’d get otherwise, in normal situation. An example: you have a bug [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/05/kanban-swarming.html" title="Permanent link to The Kanban Story: Swarming"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/kanban.jpg" width="200" height="200" alt="Kanban" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-swarming.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-swarming.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>If you’re into Kanban you probably have heard the term <em>swarming</em>. Actually chances are good you’ve heard the term despite your lack of interest in Kanban.</p>
<h4>What is swarming?</h4>
<p>In short swarming is all about getting more people to do the task than you’d get otherwise, in normal situation. An example: you have a bug which normally would be fixed by a single developer, but for some reason you have the whole team working on it. And you already have another question&#8230;</p>
<h4>Why, oh why?</h4>
<p>Why would you want people to swarm around a small task? Typically teams do this when they face either a blocker, which hampers whole team, or a very difficult problem, which is hardly solvable by a single person. Either way you get more people to move things further, which would be impossible or at least very difficult otherwise.</p>
<h4>Swarming in Kanban, part 1</h4>
<p>Up to this point swarming is something teams do intuitively at times. The reason why the term is mentioned so often in the context of Kanban is one of Kanban rules: limiting work in progress. Because in Kanban we want to have as few ongoing tasks as possible, yet as much as it still does make sense, we have limits for different stages of our process. And it when we hit the limit we treat it as a problem which we want to solve and we want to solve it fast. That’s why we swarm.</p>
<h4>Swarming in Kanban, part 2</h4>
<p>There is another thing which you may read about, which I call everyday swarming. Everyday swarming is done by teams which swarm by default, when no emergency situation happens. The reason standing behind this behavior is trying to make cycle time and/or lead time as short as possible thus flow of tasks very rapid and smooth. Oh, and you have fewer ongoing tasks then too, which means you have less work in progress, which means you have less waste, which means you are oh so lean.</p>
<h4>Our story</h4>
<p>I must admit I don’t really like the idea of everyday swarming. I mean cycle time is definitely shorter but I’m so sure about throughput. Flow is smoother but you kick in a lot of micro-switches when a few people need to integrate their work into one piece of code since they all have worked on a single feature. You also may invite some issues with version control this way since you’ll be working on the same chunks of code. For me the net weight of swarming by default is negative.</p>
<p>Basically that’s why we avoid swarming whenever possible. When there is some serious problem to solve and standard approach is not enough we naturally help each other. One person after another joins the rescue team and this basically ends as swarming. But other than that we prefer to have only one person working on the task at the same time. Well, of course there are exceptions like discussing design or testing and bug-seeking/bug-fixing but these all are pretty natural things for any software development team. After all it would be pretty schizophrenic to discuss the design with oneself.</p>
<p>It looks like we <a href="http://finance.groups.yahoo.com/group/kanbandev/message/8080">swarm as David Anderson initially proposed</a>, despite ignoring David’s teachings when it comes to <a href="http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html">lead time</a>. I think this is the most natural way of swarming. But of course you remember the rule to <a href="http://blog.brodzinski.com/2009/12/kanban-story-experiment.html">experiment like crazy</a>, so you may want to try something different in your team.</p>
<p>Read the rest of <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">Kanban Story</a> as well.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 1044px; width: 1px; height: 1px; overflow: hidden;">http://blog.brodzinski.com/2009/10/kanban-story.html</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/05/kanban-swarming.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Internal Audit: Lessons Learned</title>
		<link>http://blog.brodzinski.com/2010/05/audit-lessons-learned.html</link>
		<comments>http://blog.brodzinski.com/2010/05/audit-lessons-learned.html#comments</comments>
		<pubDate>Mon, 17 May 2010 18:14:39 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[feature size]]></category>
		<category><![CDATA[lessons learned]]></category>
		<category><![CDATA[process improvement]]></category>
		<category><![CDATA[project managment]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1808</guid>
		<description><![CDATA[Last week we had an internal audit in our team. If you automatically think “ISO 9001” when you hear “internal audit” let me just state it had nothing to do with ISO. We have a few so called quality requirements in the company and every team should follow them but these aren’t anything like ISO [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/05/audit-lessons-learned.html" title="Permanent link to Internal Audit: Lessons Learned"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/2010/01/learn.jpg" width="200" height="200" alt="Learn" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Faudit-lessons-learned.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Faudit-lessons-learned.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Last week we had an internal audit in our team. If you automatically think “ISO 9001” when you hear “internal audit” let me just state it had nothing to do with ISO. We have a few so called quality requirements in the company and every team should follow them but these aren’t anything like ISO procedures.</p>
<p>The reason why I was interested how the audit would go is we work pretty differently than the rest of the organization so quality requirements aren’t really adjusted to our specifics. I was also curious how our non-standard process would look like in comparison to other teams.</p>
<p>I caught a few things which are worth sharing.</p>
<p><span style="font-weight: bold; font-size: 130%;">Small Features versus Big Features</span></p>
<p>Our currency for functionality is MMF (Minimal Marketable Feature). MMF itself probably doesn’t tell you much and I know different teams use different sizes for MMFs. In our case average MMF can be coded by a single developer in about a week, so they are pretty small.</p>
<p>On the other hand in other projects typical currency for functionality is requirement which is significantly bigger and, as such, less detailed. I’d say that on average it is few times bigger than MMF.</p>
<p>Where’s the difference? I mean, besides the size itself. One very visible difference is we do significantly less paperwork. With features small enough that they can be easily analyzed and decomposed by product owner, developer and tester we don’t need to write low-level design documents or <a href="http://blog.brodzinski.com/2010/04/dont-write-test-cases.html">test cases</a> or <a href="http://blog.brodzinski.com/2010/04/we-dont-write-user-stories.html">user stories</a>. We can spend more time doing the <em>real</em> work instead of creating a pile of documents which tend to become outdated as soon as you hit the save button.</p>
<p><span style="font-weight: bold; font-size: 130%;">Frequent Deployment versus Not-So-Frequent Deployment</span></p>
<p>I guess there aren’t many teams which still treat deployment as one-time effort done at the end of project. But still, frequent deployment is a painful thing, especially when developers work in different team than QA engineers and QA engineers work in different team than release managers. An average project isn’t deployed biweekly. Not even close.</p>
<p>On the contrary we deploy, on average, once every 9 days and I mean calendar days here. Of course it didn’t look like that from the very beginning and it cost us a bit to get there. I would say it took us about half a year to gain this pace.</p>
<p>Where’s the difference? I could tell you about time-to-market, but it really depends on project whether you need time-to-market counted in days or months. The cool thing is somewhere else. With such a short cycle time we don’t have a temptation to incur <a href="http://forums.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx">technical debt</a>. We don’t leave unfixed bugs. We just don’t. After all we might have been discussing about a single low priority bug, not a few dozens of them so the fixing cost would be so low that we don’t even start the discussion in the first place. Even if we hit a dead-end redoing the whole darn feature doesn’t take us a couple of months – it’s just a few days so it’s much easier to accept it.</p>
<p><span style="font-weight: bold; font-size: 130%;">Everyone on the Same Page versus Formalized Process</span></p>
<p>We’re small team and we’re <a href="http://blog.brodzinski.com/2009/11/co-location-rules.html">co-located</a> so we have fairly few communication issues. The process we follow is very simple and, what is even more important, crafted by our team. We all are at the same page.</p>
<p>Most of the teams in the company follow more formalized process. There are different functional teams which are meant to cooperate, there are specific documents expected from each other by people working on projects etc. On the top of that there’s some office politics too and formalized process is used as a weapon.</p>
<p>Where’s the difference? This one was pretty much a surprise for me, but it looks like our process appears as mature and effective even though it isn’t even recorded in any form. We just know what everyone should do. Whenever some obstacle appears on the way people naturally try to help each other as they see and understand what’s happening. And yes, I’m over the top just because no one forced me to write the process description down. On the other hand formalized process is often artificial for other teams who have to follow it and they sometimes focus on being compliant to the process (or fighting with it) instead of building software.</p>
<p><span style="font-weight: bold; font-size: 130%;">What Does It Mean For You?</span></p>
<p>I’m not trying to say here you should now automatically cut every feature you work on in half (at least), deploy three times more frequently than you do now and throw every procedure out. It would probably end with chaos, which your managers might have not appreciated.</p>
<p>I’m not trying to say it was easy to get where we are now. It took great people, some experience, a lot of <a href="http://blog.brodzinski.com/2009/12/kanban-story-experiment.html">experimenting</a> and enough time to get better at what we started doing. A year ago I would have hard time trying to point how our approach might be better than what you could find in the rest of the company.</p>
<p>And I’m not trying to say you should read these advices in “this over that” manner known from <a href="http://agilemanifesto.org/">Agile Manifesto</a>. It’s not only our team which is pretty different than average team in the company but a product is also far from standard projects we build in organization so I compare pretty different environments. I wouldn’t even say that every single team in the company would benefit from implementing our approach, although a few of them definitely would.</p>
<p>These are just things I learned while talking with Ola who audited our team (and many other teams in the company). For me these lessons weren’t obvious. I mean connection between frequent deployment and short time-to-market is pretty clear for anyone who understands what “deployment” and “time-to-market” means, but I’ve never really considered that very short production cycle may help to avoid technical debt too.</p>
<p>And if you’re interested what the audit result was, I’d say it was pretty good. I mean, everyone likes to listen to some compliments from time to time, so we may want to ask for another audit soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/05/audit-lessons-learned.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Kanban Story: Coarse-Grained Estimation</title>
		<link>http://blog.brodzinski.com/2010/05/kanban-estimation.html</link>
		<comments>http://blog.brodzinski.com/2010/05/kanban-estimation.html#comments</comments>
		<pubDate>Wed, 12 May 2010 21:49:50 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[estimation]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lead time]]></category>
		<category><![CDATA[software estimation]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1804</guid>
		<description><![CDATA[Recently I told you what a screwed way we chose to measure lead time in our team. Unfortunately I’ve also promised to share some insight how we use lead times to get some (hopefully reliable) estimates. So here it goes. Simplifying things a bit (but only a bit) we measure development and deployment time and [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/05/kanban-estimation.html" title="Permanent link to The Kanban Story: Coarse-Grained Estimation"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/kanban.jpg" width="200" height="200" alt="Kanban" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-estimation.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-estimation.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>Recently I told you what a screwed way we chose to <a href=" http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html">measure lead time</a> in our team. Unfortunately I’ve also promised to share some insight how we use lead times to get some (hopefully reliable) estimates. So here it goes.</p>
<p>Simplifying things a bit (but only a bit) we measure development and deployment time and call it lead time (and don’t feel bad at all about that). So how do I answer to our customers when they ask me when something will be ready?</p>
<p>That’s pretty easy. If we talk about a single feature and there is no other absolutely top priority task, I take a look at the board to track down a developer who will be first to complete his current task and discuss with him when he expects to finish it. Then I know when we can start working on the new, super-important feature ordered by the client. Then it’s enough to add two weeks (which is our average lead time) and make some effort to look oh, so tired as I’ve just completed such a difficult task of estimation. Oh, I need to tell the customer when they’re going to get the darn feature too, of course.</p>
<p>This however happens pretty rarely. We try to keep our MMFs (Minimal Marketable Features) stick to their name which means they are usually small.  This also means that described situations, when client wants just one feature from us, are pretty much non-existent. That’s why you might have noticed I didn’t take into consideration a size of a feature in described scenario. In the real life we usually talk about bigger pieces of functionality. What we do then is we split the scope into small MMFs and then use two magic parameters to get our result.</p>
<p>One of parameters you already know – it is an average lead time. However there’s one more needed. It takes 13 days for the feature to get from the left to the right side of the board, but how many features are on the board at the same time? I took a crystal orb and it told me that on average we have 4,5 MMFs on the board. OK, I actually did a simple analysis of a longer period of time checking our completed MMFs and I got this result, but doesn’t a crystal orb sound so much better?</p>
<p>Now, the trick I call math. On average we can do 4,5 MMFs in 13 days. Since I have, let’s say, 10 features on my plate I have to queue them. If I worked with iterations it would take 2,2 iterations (10/4,5) which basically means 3 iterations. But since we <a href="http://blog.brodzinski.com/2010/01/kanban-iterations.html">don’t use time-boxing</a> I can use 2,2 and multiply it by 13 days of my lead time and get something about 30 days. Now I don’t start with empty board so I have to add some time to allow my team to finish current tasks. On average it would be half of lead time so we should be ready in, say, 37 days.</p>
<p>And yes, this is rough estimate so I’d probably go with 40 days to avoid being blamed for delivering estimate which looked precise (37 looks <em>very</em> precise) but was just coarse-grained estimate.</p>
<p>That’s basically what I went through before telling my CEO we’re going to complete management site for the product we work on in 3 months. Well, actually I didn’t told him yet, but 3 months there are. No less, no more.</p>
<p>Although this post may look as it was loosely coupled with the <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">Kanban Story</a> it is definitely belongs there. So go, read the whole <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">story</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/05/kanban-estimation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Having Multiple Product Owners Is a Bad Idea</title>
		<link>http://blog.brodzinski.com/2010/05/multiple-product-owners-bad-idea.html</link>
		<comments>http://blog.brodzinski.com/2010/05/multiple-product-owners-bad-idea.html#comments</comments>
		<pubDate>Tue, 11 May 2010 14:48:04 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[priorities]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[product ownership]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1797</guid>
		<description><![CDATA[The other day I had a presentation on Kanban in my company and during Q&#38;A session we were going through the case of one of our teams which, among other problems, has to deal with a few people playing concurrently the role of product owner. It wasn’t much later when I read Johanna Rothman’s post [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/05/multiple-product-owners-bad-idea.html" title="Permanent link to Why Having Multiple Product Owners Is a Bad Idea"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/directions.jpg" width="200" height="200" alt="Directions" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fmultiple-product-owners-bad-idea.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fmultiple-product-owners-bad-idea.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>The other day I had a presentation on Kanban in my company and during Q&amp;A session we were going through the case of one of our teams which, among other problems, has to deal with a few people playing concurrently the role of product owner.</p>
<p>It wasn’t much later when I read Johanna Rothman’s <a href="http://jrothman.com/blog/mpd/2010/04/multiple-product-owners-for-an-iteration.html">post touching the very same subject</a>. Johanna shares some advice how to deal with environment where there are more product owners than teams.</p>
<p><strong>Smaller teams, shorter iterations and smaller stories, which Johanna prescribes, are all means to the same end: avoid having multiple product owners working with a team and with a product.</strong></p>
<p>Having multiple product owners for a single team and/or single product is just a bad idea. Why? I’ll answer with another question: what do product owners (or product managers – I don’t really give a damn about titles) do all the time? At least when they don’t drink coffee? Well, they make decision about their products. This is important but that can be done in “never-never” iteration. This is urgent but that can wait until the weather in Seattle is better. This is a top priority right now but that should be on the top of the <a href="http://www.imdb.com/chart/bottom">Bottom 100</a> list (if there was such thing anyway).</p>
<p><strong>Basically it is product owner who tells the team what they should work on right now (even if it doesn’t happen in such a direct way).</strong></p>
<p>Now, imagine there are a couple of these priority-setters around. And they differ on most decisions. Anyway if they agreed on everything one would be um&#8230; redundant. Which one is the one the team should follow? Now imagine there are three or four of them and they are randomly landing on team meetings throwing their ideas at developers expecting to see working results right after <em>this</em> iteration. Now imagine one of them is C-level exec. Man, that sucks, doesn’t it?</p>
<p>That’s the basic problem when you introduce more than a single person responsible for setting general priorities for a group. When it happens so, you likely need some kind of an arbiter to enforce consensus when decision-makers around can’t find one by themselves. And the guy becomes a kind of Uber Product Owner who does the same job as simple product owner but on a higher level – deciding which product/project gets highest priority at the moment and overriding decisions of plain product owners when necessary.</p>
<p>Another approach which can solve the problem is splitting product and/or team until you can end up with a few pretty independent streams of work and a single priority setter for each stream. This way each group works on their small chunk of work while you keep your finger crossed to avoid having too many integration issues.</p>
<p>Actually both approaches are two different implementations of the same basic concept. There should be a single product owner/product manager per team and per (part of) product. That’s because having multiple product owners is just a bad idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/05/multiple-product-owners-bad-idea.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>The Kanban Story: Measuring Lead Time</title>
		<link>http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html</link>
		<comments>http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html#comments</comments>
		<pubDate>Thu, 06 May 2010 17:20:06 +0000</pubDate>
		<dc:creator>Pawel Brodzinski</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[kanban board]]></category>
		<category><![CDATA[lead time]]></category>

		<guid isPermaLink="false">http://blog.brodzinski.com/?p=1793</guid>
		<description><![CDATA[During AgileCE conference I had a discussion with Robert Dempsey about measuring lead time. I never really thought much about the way we count lead time in our team and talk with Robert triggered some doubts. What We Measure As you already know on our Kanban board we have backlog, todo queue, several steps describing [...]]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html" title="Permanent link to The Kanban Story: Measuring Lead Time"><img class="post_image alignright" src="http://blog.brodzinski.com/wp-content/uploads/kanban.jpg" width="200" height="200" alt="Kanban" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-measuring-lead-time.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.brodzinski.com%2F2010%2F05%2Fkanban-measuring-lead-time.html&amp;style=normal" height="61" width="50" /><br />
			</a>
		</div>
<p>During <a href="http://agilece.com/">AgileCE</a> conference I had a discussion with <a href="http://blog.adsdevshop.com/">Robert Dempsey</a> about measuring lead time. I never really thought much about the way we count lead time in our team and talk with Robert triggered some doubts.</p>
<p><span style="font-weight: bold; font-size: 130%;">What We Measure</span></p>
<p>As you already know on our <a href="http://blog.brodzinski.com/2010/02/kanban-board-revisited.html">Kanban board</a> we have <em>backlog</em>, <em>todo</em> queue, several steps describing our development and deployment process and finally <em>done</em> station.</p>
<p>OK, so when do we stamp the starting date for the feature? We do it when the card goes from <em>todo</em> queue into <em>design</em> station, which is the very first column in our development process.</p>
<p>When do we stamp ending date then? You may take your best guess and um&#8230; you’ll be wrong. No, not when the sticky note is moved to <em>done</em> column. Actually we mark ending date when a feature makes its way to <em>live</em> column which is third station from the right.</p>
<p>And this is different from what you may have heard from Kanban gurus out there. Don’t blame me, I’ve already told you <a href="http://blog.brodzinski.com/2010/03/agile-leaders-knowledge.html">thought-leaders don’t know it all</a>.</p>
<p><strong>What we measure is time which passes before we start actual work on feature to the moment it goes live.</strong></p>
<p><span style="font-weight: bold; font-size: 130%;">What We Don’t Measure</span></p>
<p>What is left behind then? First and the most important thing is the time feature spends in <em>todo</em> queue waiting for some developer to become free and start working on it. If you were trained by the father of Kanban – <a href="http://agilemanagement.net/index.php">David Anderson</a> – you’ve probably heard something different but stay with me, I have a good explanation. Or so I guess.</p>
<p>Another thing which is left outside is the last part of our process. There is <em>documentation</em> station where we (surprise, surprise) update documentation. This is done after pushing new version to production.</p>
<p>It looks like we cut something on both ends to make our lead times look better, doesn’t it? Anyway what we gather as lead time doesn’t really describe time which passes from the moment of decision to build the feature to the moment it is done-done. Thus another question arises.</p>
<p><span style="font-weight: bold; font-size: 130%;">Why, Oh Why?</span></p>
<p>The way we measure lead time came in natural way but chat with Robert forced me to make some explanation up to justify our practice.</p>
<p><strong>Time Spent in <em>Todo</em> Queue</strong></p>
<p>We left time spent in <em>todo</em> queue out basically because content of this station is changing pretty often. Sometimes feature lives there just for a day or so just to go back to <em>backlog</em> when priorities change. And believe me they do change every now and then. Sometimes a feature stays in <em>todo</em> queue for a longer time as it is always pushed to the second or third place because, well, priorities change.</p>
<p>There is another reason too. The basic reasoning for adding time spent in <em>todo</em> queue to lead time is that you should be able to tell your customer how long it would take from the day 0 (when they tell you they want the feature) to the moment they get it in production. It is pretty rare case when developers are able to start working on a new feature immediately so it is natural that some delay will appear when feature is waiting for a free developer.</p>
<p>I’m not convinced though. Actually very much depends on additional circumstances. The feature the client is asking for may be the only high priority thing to do at the moment but it is pretty unlikely. If the client asks just for one feature lead time will be different than if they asked about a list of ten features. If you have limit of 3 in <em>todo</em> queue you would need to put 7 features in <em>backlog</em> anyway and time they spend in <em>backlog</em> won’t be measured.</p>
<p>If you have a few clients and you need to balance your workload among them it becomes even more complicated since product owner (or whoever is your priority setter) has to decide which feature can be put on the top of the <em>todo</em> queue, which can occupy second or third place and which has to go into <em>backlog</em>.</p>
<p>Basically in any situation but the simplest measuring time spent in <em>todo</em> queue wouldn’t help us much and that’s why we decided to exclude it from lead time.</p>
<p><strong>Time Spent on Documentation</strong></p>
<p>With <em>documentation</em> the situation is a bit different. Documentation isn’t a real part of our product. We create it for our internal reasons – to make life of our sys admin easier and to avoid problems if he was hit by the bus. This means that, from client perspective, our product is complete as soon as it goes live. Even though we have to do some housekeeping later it doesn’t affect our ability to deliver.</p>
<p>Theoretically it might be a problem if documentation phase would be time-consuming and would steal time we’d prefer to spend for something else, namely deployment or testing. However looking at the past in the team it isn’t a problem so we may safely throw <em>documentation</em> out of lead time.</p>
<p>The next thing is using lead time to create some estimates but that’s the subject for another post.</p>
<p>If you liked this post you should like the whole <a href="http://blog.brodzinski.com/2009/10/kanban-story.html">Kanban Story</a> too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.brodzinski.com/2010/05/kanban-measuring-lead-time.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
