<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Thoughts of a Goldfish by Daniel Brolund</title>
	<atom:link href="http://danielbrolund.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://danielbrolund.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 23 Sep 2009 19:00:51 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='danielbrolund.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/972358fa709ab05ffdcb1818bd9e23ea?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Thoughts of a Goldfish by Daniel Brolund</title>
		<link>http://danielbrolund.wordpress.com</link>
	</image>
			<item>
		<title>Technical debt</title>
		<link>http://danielbrolund.wordpress.com/2009/09/23/technical-debt/</link>
		<comments>http://danielbrolund.wordpress.com/2009/09/23/technical-debt/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:00:51 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[debt]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=250</guid>
		<description><![CDATA[My preferred definition of technical debt is:
Technical debt is existing (technical) structures that stand in the way of making the next change. The interest is the cost of having to deal with those structures in your day-to-day work, and the down payment is the cost of making the structures apt for use.
Debt can be intentional [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=250&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>My preferred definition of technical debt is:</p>
<blockquote><p><em>Technical debt</em> is existing (technical) structures that stand in the way of making the next change. The <em>interest</em> is the cost of having to deal with those structures in your day-to-day work, and the <em>down payment</em> is the cost of making the structures apt for use.</p></blockquote>
<p>Debt can be intentional in that you take shortcuts to meet an important deadline or to hit a market window. In this case you have an expected ROI for the loan you take, one that you hope will pay off more than the cost of later fixing the shortcuts taken.</p>
<p>Debt can also be the unintentional, and here it gets interesting. One type of debt is that which results from sloppiness, usually resulting in a messy code base. This type is not related to any kind of investment, hence there is no expected ROI, it is just like  a loan for consumption of drugs; it will destroy you (your code) and your economy if it doesn&#8217;t stop.</p>
<p>By the definition above, debt can also be the result of external events, sometimes out of your control. Your perfect system can suddenly become your largest debt if you go from one to several customers, the company strategy changes, the market changes or laws change.</p>
<p>Some people, among them Uncle Bob in <a href="http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt">this article</a>, argues that messy code is not debt. I disagree, for the reasons above. I think Uncle Bob and others confuse debt that results from loans taken to make an investment, and debt resulting from neglect, lack of experience or incompetence. The cause is totally different, but you&#8217;re still in debt.</p>
<p>There is no reason to make a messy system, since there simply is no return on that investment. Accept debt only to take loans that enable you to make a sound investment.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/250/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/250/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/250/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=250&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/09/23/technical-debt/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>You are a leader. Yes, you!</title>
		<link>http://danielbrolund.wordpress.com/2009/06/13/you-are-a-leader-yes-you/</link>
		<comments>http://danielbrolund.wordpress.com/2009/06/13/you-are-a-leader-yes-you/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 10:37:11 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[organizations]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[devils advocate]]></category>
		<category><![CDATA[leadership]]></category>
		<category><![CDATA[leadership activities]]></category>
		<category><![CDATA[modern leadership]]></category>
		<category><![CDATA[peacemaker]]></category>
		<category><![CDATA[responsibility]]></category>
		<category><![CDATA[team]]></category>
		<category><![CDATA[team-work]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=233</guid>
		<description><![CDATA[A couple of years ago I was attending the course &#8220;Secrets of Agile Teamwork &#8211; Beyond Technical Skills&#8221; by Esther Derby and Diana Larsen. It was a brilliant course, and so far, I have had more use of it than any other course I have attended or book I have read. In the special Esther-and-Diana-style [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=233&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A couple of years ago I was attending the course <a href="http://estherderby.com/workshops/secrets.htm">&#8220;Secrets of Agile Teamwork &#8211; Beyond Technical Skills&#8221;</a> by <a href="http://estherderby.com/">Esther Derby</a> and <a href="http://futureworksconsulting.com/">Diana Larsen</a>. It was a brilliant course, and so far, I have had more use of it than any other course I have attended or book I have read. In the special Esther-and-Diana-style (you must try it if you get the chance), we learned about communication, conflict, feedback, change and leadership. We also learned a lot about ourselves from reflecting over how we behaved in different situations. Highly recommended!</p>
<p>One section in the course was &#8220;Team Leadership Activities&#8221; and that would prove a real eye-opener to me. It is a great tool to view a team through, to understand what makes a team move forward towards their goal and how you can contribute.</p>
<p><span id="more-233"></span>[spoiler alert: this will reveal the goal of one of the exercises in the course]</p>
<p>Early in the course, the class was assigned a task: Sort a zillion playing cards of different shapes, sizes and types. We should complete the task together as a group, and so we did (to the surprise of Esther and Diana, if I recall correctly).</p>
<p>Afterwards, we were asked what we did to make the group reach its goal. We jotted down our actions on post-its.  It was obvious things like &#8220;Sorting cards&#8221; and &#8220;Clarifying requirements&#8221;, but also things like &#8220;Step back and get an overview&#8221;. We were then asked to place these post-its under some categories:</p>
<ol>
<li>Instructor &#8211; coaches others</li>
<li>Follower &#8211; provides encouragement, conforms to agreements</li>
<li>Pioneer &#8211; looks for new ideas and ways</li>
<li>Influencer &#8211; initiates team culture</li>
<li>Commentator &#8211; puts in context</li>
<li>Coordinator &#8211; aligns team activities</li>
<li>Peacemaker &#8211; works for harmony and common ground</li>
<li>Promoter &#8211; supports quieter team members</li>
<li>Critic &#8211; looks for risks and weaknesses</li>
<li>Gatekeeper &#8211; maintains working agreements</li>
<li>Reviewer &#8211; assure meeting of acceptance criteria</li>
<li>Monitor &#8211; maintains team relationships</li>
<li>Devils advocate &#8211; deliberately seeks other views</li>
</ol>
<p>These are the <strong>Team Leadership Roles</strong>. They can be further categorized into the activities <strong>Direction</strong> (1-4),  <strong>Guidance</strong> (5-8) and <strong>Evaluation</strong> (9-13).</p>
<p>Up until that moment I had defined leadership in terms of <em>taking the lead</em>. Esther and Diana re-defined leadership as <em>making a group reach its goals</em>. This means that you can take <em>leadership responsibility</em> for your team and your goals even when you support another persons ideas, or when you play the Devils advocate, or when you negotiate a compromise (Peacemaker).</p>
<p>Over time in a successful team these roles <em>must be filled</em>, and <em>anyone can fill a role</em>, they are not bound to a specific individual. It is not even desirable that a single person fills the same role time and time again, since after a while, people will stop listening. An example of this is if the same person plays the Devils advocate too many times, he or she will just be considered negative in general.</p>
<p>It is also important to actively let people shift roles, e.g. the <em>promoter</em> can help a <em>follower</em> to take on an <em>influencer</em> role if that is what he/she would like to try.</p>
<p>I would say that this is an essential part of <strong>modern leadership.</strong> It has made me more comfortable in day-to-day team work because I can just support another idea and still know I practice leadership. In the same way, we all can practice good leadership in our own way, because we are all leaders. You are a leader.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/233/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/233/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/233/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=233&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/06/13/you-are-a-leader-yes-you/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Jambda 0.1</title>
		<link>http://danielbrolund.wordpress.com/2009/05/23/jambda-0-1/</link>
		<comments>http://danielbrolund.wordpress.com/2009/05/23/jambda-0-1/#comments</comments>
		<pubDate>Fri, 22 May 2009 23:11:23 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[bumblebee]]></category>
		<category><![CDATA[curry]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[fold]]></category>
		<category><![CDATA[fp]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[generics]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Jambda]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[option]]></category>
		<category><![CDATA[sequence]]></category>
		<category><![CDATA[union]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=230</guid>
		<description><![CDATA[I just released Jambda on Github, a small project in which Johan Kullbom and Joakim Ohlrogge has taught me all I can absorb about functional programming. I have mostly contributed with documentation using my tool Bumblebee in order to learn the concepts. The code is mostly written by Johan.
Jambda is a small Java library with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=230&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just released <a href="http://github.com/brolund/jambda/tree/master">Jambda</a> on Github, a small project in which <a href="http://blog.hoomla.se/">Johan Kullbom</a> and <a href="http://johlrogge.wordpress.com/">Joakim Ohlrogge</a> has taught me all I can absorb about functional programming. I have mostly contributed with documentation using my tool <a href="http://www.agical.com/bumblebee/bumblebee_doc.html">Bumblebee</a> in order to learn the concepts. The code is mostly written by Johan.</p>
<p>Jambda is a small Java library with typesafe implementations of options, unions, curryable functions, and a bunch of sequence functionality, like map, fold and filter.</p>
<p>The result is also a rather interesting use of Java generics where we probably have pushed the generics implementation to the limit (I say &#8220;we&#8221; but mostly I mean Johan).</p>
<p>The documentation is available <a href="http://www.agical.com/jambda/">here</a>. Check it out! Any feedback is welcome.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/230/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/230/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/230/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=230&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/05/23/jambda-0-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Pancake programming</title>
		<link>http://danielbrolund.wordpress.com/2009/05/21/pancake-programming/</link>
		<comments>http://danielbrolund.wordpress.com/2009/05/21/pancake-programming/#comments</comments>
		<pubDate>Thu, 21 May 2009 13:32:57 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[pancake programming]]></category>
		<category><![CDATA[pomodoro]]></category>
		<category><![CDATA[rhythm]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=225</guid>
		<description><![CDATA[About an hour ago I was again making pancakes while programming. 1 minute in the pan on each side for programming time, then 20 seconds of flipping our pouring in a new one as break or retrospective. This resembles the Pomodoro Technique, but at a much higher frequency.
I found the rhythm rather comfortable. I want [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=225&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>About an hour ago I was again making pancakes while programming. 1 minute in the pan on each side for programming time, then 20 seconds of flipping our pouring in a new one as break or retrospective. This resembles the <a href="http://blog.staffannoteberg.com/2008/02/22/pomodoro-technique-in-5-minutes/">Pomodoro Technique</a>, but at a much higher frequency.</p>
<p>I found the rhythm rather comfortable. I want to believe that in an uncertain environment short feedback cycles are more beneficial than longer, and I wasn&#8217;t quite sure where to go with the code at the time.</p>
<p>There could also be some primal resonance with the 1 min 20 sec period, but I haven&#8217;t done any research on that.</p>
<p>It could also be that I have a brain disorder, but I&#8217;ll ignore that possibility for now.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=225&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/05/21/pancake-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting HTML element screen position</title>
		<link>http://danielbrolund.wordpress.com/2009/04/16/getting-html-element-screen-position/</link>
		<comments>http://danielbrolund.wordpress.com/2009/04/16/getting-html-element-screen-position/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 14:55:51 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[bumblebee]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[selenium]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=206</guid>
		<description><![CDATA[In my struggle to make Bumblebee fit for documenting web sites using Selenium, I need to crop screen-shots to show only a certain element of a web page, e.g. a certain menu or a cell in a table, instead of showing the whole screen every time. In order to do so I need to know [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=206&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div>In my struggle to make <a href="http://www.agical.com/bumblebee/bumblebee_doc.html">Bumblebee</a> fit for documenting web sites using <a href="http://seleniumhq.org/">Selenium,</a> I need to crop screen-shots to show only a certain element of a web page, e.g. a certain menu or a cell in a table, instead of showing the whole screen every time. In order to do so I need to know the position of an element <em>relative to the screen.</em></div>
<div><span id="more-206"></span>This proved to be more difficult than I though, and this was how I eventually did it. It is not beautiful, e.g. it quickly opens and closes a window to get a reference, but it seems to work for my purposes in Firefox 2.  Inlined are comments to explain what is being done:</div>
<div>(note: some lines are wrapped for presentation)</div>
<pre>&lt;script type="text/javascript"&gt;
// Open a dummy window without navigation bar to
// get a reference.
dummy = window.open('url', 'windowname',
'height=200,width=200,status=0,toolbar=0,' +
'menubar=0,resizable=0,scrollbars=0');
// Calculate bottom bar height
bottomBarHeight = dummy.outerHeight-dummy.innerHeight;
dummy.close();
// Calculate the navigation bar height
topNavigationHeight =
  window.outerHeight-window.innerHeight-bottomBarHeight;

// Create a function to use repeatedly
function findScreenPos(obj) {
	// Calculate the total screen offset
	screenTopOffset = window.screenY
                          + topNavigationHeight;
	screenLeftOffset = window.screenX;
	pagePosition = findPos(obj);
	return [screenLeftOffset+pagePosition[0],
                screenTopOffset+pagePosition[1]];
}
// Gotten from http://www.quirksmode.org/js/findpos.html
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj &amp;&amp; obj.offsetParent) {
	    do {
	         curleft += obj.offsetLeft;
	         curtop += obj.offsetTop;
	     } while (obj = obj.offsetParent);
    }
    return [curleft,curtop];
}
&lt;/script&gt;</pre>
<p>Thanks to <a href="http://www.quirksmode.org/js/findpos.html">QuirksMode</a> for the function that provides the position within the document.</p>
<p>If you know how to do this in a better (or more beautiful) way, please write a comment. I spent several hours on Google just to get here. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/206/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/206/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/206/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=206&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/04/16/getting-html-element-screen-position/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Start Paying your Technical Debt &#8211; The Mikado Method</title>
		<link>http://danielbrolund.wordpress.com/2009/03/28/start-paying-your-technical-debt-the-mikado-method/</link>
		<comments>http://danielbrolund.wordpress.com/2009/03/28/start-paying-your-technical-debt-the-mikado-method/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 16:15:08 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[debt]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=183</guid>
		<description><![CDATA[A couple of years ago, Ola Ellnestam and I was working on a project where the code was a big ball of mud, or at least well on the way there. Global variables and singletons all across the code base, circular dependencies, deep and fragile inheritance hierarchies etc. The Technical Debt was everywhere.
Copy&#8217;n'paste?
All of a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=183&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A couple of years ago, <a href="http://ellnestam.wordpress.com/">Ola Ellnestam</a> and I was working on a project where the code was a <a href="http://en.wikipedia.org/wiki/Big_ball_of_mud">big ball of mud</a>, or at least well on the way there. Global variables and singletons all across the code base, circular dependencies, deep and fragile inheritance hierarchies <em>etc. </em>The Technical Debt was everywhere.</p>
<p><strong>Copy&#8217;n'paste?</strong></p>
<p>All of a sudden we were supposed to deliver to a new client and the interest on our loan went through the roof. The reptile response from several developers on the team was to copy most parts of the code base to a new project and modify the code there. This would double our debt, but decrease the interest temporarily, until the next client would drop in. We fought with all we got to avoid doubling our debt and in the end we had convinced everybody that we could re-factor the code-base, just give us a week or two&#8230;</p>
<p><span id="more-183"></span></p>
<p><strong>The Hydra</strong></p>
<p>Our approach was that we should do what we needed to do, fix all the compiler errors, run all the tests, check-in, done. Yeah, right&#8230;</p>
<p>We did what we wanted to do, got about 20 compiler errors and started fixing them. When we were just about done, the compiler could move a step forward and showed us yet another bunch of errors. When trying to fix them we had to make new re-factorings, that in turn created new errors.  So we went on, and every day on the daily stand-up we said that &#8220;We just have a couple more errors to fix, but we will probably be done today or tomorrow&#8221;. Yeah, right&#8230;</p>
<p>After more than two weeks of working like this, with 1200+ files checked out, 200+ compiler errors we had to face it. We would never make it. We were trying to behead the <em>Software <a href="http://en.wikipedia.org/wiki/Lernaean_Hydra">Hydra</a></em>, but for every head we cut off two more grew out. We had to make the tough decision to revert everything we had done. But, as <a href="http://www.poppendieck.com/">Tom Poppendieck</a> always say: There is no failure but the failure to learn. And did we ever.<!--more--></p>
<p><strong>Go with the flow</strong></p>
<p>We had realized that we had been walking with the refactoring dependencies, i.e. we tried to re-factor a part of the code that was depending on that another refactoring already had been done, which it hadn&#8217;t. If we could just walk with those dependencies, or prerequisites, until we reached a re-factoring that had no prerequisites, a <em>leaf</em> in the dependency graph, then we could just do that refactoring without any hassle. And by doing that, we would have fulfilled the prerequisites of another re-factoring that now had become a leaf, ready for execution. By doing so with all prerequisites, eventually our goal would be met!</p>
<p><strong>The Mikado Graph and the Mikado Method</strong></p>
<div id="attachment_185" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-185" title="refactoring-graph-process-description-q40-005" src="http://danielbrolund.files.wordpress.com/2009/03/refactoring-graph-process-description-q40-005.jpg?w=300&#038;h=225" alt="The Mikado Graph" width="300" height="225" /><p class="wp-caption-text">The Mikado Graph </p></div>
<p>When we presented this method at <a href="http://www.scandevconf.se/">SDC2009</a>, <a href="http://bossavit.com/thoughts">Laurent Bossavit</a> suggested that this dependency graph and dependent refactorings had great similarities with how the <a href="http://en.wikipedia.org/wiki/Mikado_(game)">Mikado Game</a> is played. In order to get to &#8220;The Emperor&#8221;, you cannot just pick-up that stick. First you have to pick up all the sticks that in some way is above that stick. We thought it was an excellent observation and we now call it <em>The Mikado Method</em> and the dependency graph is called <em>The Mikado Graph</em>, as suggested by Laurent.</p>
<p><strong>The Naive Approach</strong></p>
<p>In our real-world case, we drew the Mikado Graph on a whiteboard, step by step. To do that, you naively start with the thing you want to achieve and draw that on your Mikado Graph, typically a business goal. Try to implement that change. If that goes all well, you are done. Check-in. Congratulations!</p>
<p>In most cases, however, you end up with compiler errors or tests that don&#8217;t run. Examine the errors and failed test and come up with measures that would have prevented those errors or test failures. This is often other refactorings in the application. Those measures become sub-goals to you business goal. Draw them on the graph as well, with arrows pointing from the business goal to the sub-goals. Revert the code to the previous working version.</p>
<p>Now, for each of the sub-goals repeat the process by naively trying to achieve them. Draw the solutions to the new issues as new sub-goals, revert the code, attack new sub-goals and so on. In the end, you can actually implement a leaf sub-goal while the application still works. Great! You just got one step closer to achieve your business goal.</p>
<p>By doing the refactorings from the leaves and in the opposite direction of the dependency arrows, you will eventually achieve your set out business goal.</p>
<div id="attachment_185" class="wp-caption alignright" style="width: 310px"><img class="size-medium wp-image-185" title="refactoring-graph-process-description-q40-015" src="http://danielbrolund.files.wordpress.com/2009/03/refactoring-graph-process-description-q40-015.jpg?w=300&#038;h=225" alt="The Mikado Graph Done" width="300" height="225" /><p class="wp-caption-text">The Mikado Graph Done</p></div>
<p>Good luck!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=183&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/03/28/start-paying-your-technical-debt-the-mikado-method/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>

		<media:content url="http://danielbrolund.files.wordpress.com/2009/03/refactoring-graph-process-description-q40-005.jpg?w=300" medium="image">
			<media:title type="html">refactoring-graph-process-description-q40-005</media:title>
		</media:content>

		<media:content url="http://danielbrolund.files.wordpress.com/2009/03/refactoring-graph-process-description-q40-015.jpg?w=300" medium="image">
			<media:title type="html">refactoring-graph-process-description-q40-015</media:title>
		</media:content>
	</item>
		<item>
		<title>Speaking at SDC2009!</title>
		<link>http://danielbrolund.wordpress.com/2009/02/21/speaking-at-sdc-2009/</link>
		<comments>http://danielbrolund.wordpress.com/2009/02/21/speaking-at-sdc-2009/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 10:38:29 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=176</guid>
		<description><![CDATA[Together with Ola Ellnestam, I will host a session at the Scandinavian Developer Conference 2009: Start paying your technical debt! at 17.15 in the Development Process &#38; Methodology track.
We will talk about how to get organized around paying back technical debt that requires several iterations of work, while still delivering value and without having a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=176&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Together with <a href="http://ellnestam.wordpress.com/">Ola Ellnestam</a>, I will host a session at the <a href="http://www.scandevconf.se/">Scandinavian Developer Conference 2009</a>: <a href="http://www.scandevconf.se/conference/detailed-program/">Start paying your technical debt!</a> at 17.15 in the Development Process &amp; Methodology track.</p>
<p>We will talk about how to get organized around paying back technical debt that requires several iterations of work, while still delivering value and without having a broken code base in the process.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=176&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/02/21/speaking-at-sdc-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Physical visible workspace is just more robust!</title>
		<link>http://danielbrolund.wordpress.com/2009/02/18/physical-visible-workspace-is-just-more-robust/</link>
		<comments>http://danielbrolund.wordpress.com/2009/02/18/physical-visible-workspace-is-just-more-robust/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 22:05:07 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=170</guid>
		<description><![CDATA[Did you ever end up feeling crippled with yet another &#8220;agile&#8221; story management tool?
I seem to do that from time to time. As soon as you need to handle a case a little out-of-the-ordinary, the tool breaks. Where should you put this thing? How should you present it? What looked like a walk in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=170&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Did you ever end up feeling crippled with yet another &#8220;agile&#8221; story management tool?</p>
<p><span id="more-170"></span>I seem to do that from time to time. As soon as you need to handle a case a little out-of-the-ordinary, the tool breaks. Where should you put this thing? How should you present it? What looked like a walk in the park suddenly becomes a mess.</p>
<p>If you have a whiteboard you just draw a square somewhere and put a post-it or a note there, and just by doing so you have communicated &#8220;This is a one-off, but its important since it is on the board&#8221;. The team-members will see it and understand. Elapsed time: 1 minute.</p>
<p>In the case that the tool is flexible you can probably configure it. But then it is usually configurable beyond all reasonable limits. Tools must have &#8220;ticks in all the boxes&#8221; to compete with all the other unreasonably configurable tools. This configuration, including learning how to configure it, takes a lot of time since the tools are very configurable. And it might not be possible to do what you want anyway. Elapsed time: days? weeks?</p>
<p>The tools try to cover all possible future cases of configuration, based on <em>previous</em> projects and not the current. Hmmm, this sounds familiar. Waterfall, anyone?</p>
<p>The funny thing is that you get the same characteristics from such a tool as from the waterfall process, or from trying to control any <a href="http://en.wikipedia.org/wiki/Empirical_process_(process_control_model)">empirical process</a> using only <em>feed-forward control, i.e. &#8220;</em>planning ahead&#8221;.<em> Small irregularities can make a big impact</em>.</p>
<p>The meta-process of configuring your process is also empirical. If you use a whiteboard you adapt the board and your process only to the <em>current</em> project. This makes using a physical visible planning tool <em>more robust</em> in the face of irregularities.</p>
<p>For the record, the tools usually provide a lot of interesting functionality that can be useful, but you&#8217;d better have an off-line option to handle the quirks. But then you have two systems, and that might not be optimal either.</p>
<p>Also, for globally distributed teams the argument is that &#8220;you need a tool&#8221;. I rest my case there, just asking if you really need a globally distributed team? But that is probably another blog entry&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=170&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/02/18/physical-visible-workspace-is-just-more-robust/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>You get what you measure</title>
		<link>http://danielbrolund.wordpress.com/2009/02/14/you-get-what-you-measure/</link>
		<comments>http://danielbrolund.wordpress.com/2009/02/14/you-get-what-you-measure/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 12:16:50 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[organizations]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[lean principles]]></category>
		<category><![CDATA[local optimization]]></category>
		<category><![CDATA[measure]]></category>
		<category><![CDATA[measure up]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[micromanagement]]></category>
		<category><![CDATA[net promoter score]]></category>
		<category><![CDATA[running tested feature]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=160</guid>
		<description><![CDATA[Yesterday I watched Grand Designs on TV where a couple restored an old 1600-century house. They found that at least one window was shut with bricks and concrete (or the equivalent used at that time), but when they opened it up the whole room changed and the light and the view the window provided was [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=160&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Yesterday I watched <a href="http://www.channel4.com/4homes/on-tv/grand-designs/" target="_blank">Grand Designs</a> on TV where a couple restored an old 1600-century house. They found that at least one window was shut with bricks and concrete (or the equivalent used at that time), but when they opened it up the whole room changed and the light and the view the window provided was beautiful.</p>
<p>The reason for shutting the window, as Kevin McCloud told, was that long ago there was a window-tax (!!) in England, hence a lot of windows where shut this way.</p>
<p><em>You get what you measure.</em></p>
<p><span id="more-160"></span>If you find an old Swedish mirror of some size, you will see that the mirror glass is often split in two or more pieces. When I first saw this I assumed it was because they didn&#8217;t know how to make larger pieces of mirror glass.</p>
<p>But, the real reason for this was, as in the case with the English windows, there once was a mirror tax in Sweden for mirrors larger than a certain size, hence mirror glass were cut in smaller pieces to avoid the tax.</p>
<p><em>You get what you measure.</em></p>
<p>In the average company, the same behavior is often seen where managers try to control their organizations by detailed measuring. In software development it is common to measure things like lines of code produced, number of people in a project, or produced documentation. This usually renders in&#8230; many lines of code, lots of people in the projects and piles of documentation. Wasteful and without customer value.</p>
<p><em>You get what you measure.</em></p>
<p><strong>So, what <em>should</em> you measure?</strong></p>
<p>In lean organizations, and promoted by lean software development, <em>measure up </em>is an important principle to avoid local optimizations. Local optimizations are bad because they consume resources that could be better used at other places, and they could create bottlenecks and lock-ups and it is likely to result in dysfunctional organizations.</p>
<p><a href="http://www.xprogramming.com/xpmag/jatRtsMetric.htm"><em>Running Tested Feature</em></a> (RTF) is one way of measuring up in a software developing organization. It lies above all detailed code metrics and it measures the whole development effort. The RTF index should be constantly increasing, otherwise there is a problem.</p>
<p><em><a href="http://en.wikipedia.org/wiki/Net_Promoter_Score">Net Promoter Score</a> </em>(NPS) is another way to measure up. Ask the user of a product &#8220;On a scale from 0-10, how much would you recommend this product to your friends and family?&#8221;. Promoters and detractors are detected this way. Promoters are also likely to be a good source of information for how to improve the product since they are more likely to have used the product extensively.</p>
<p>If you think RTF or net promoters is a good thing, start measuring those things instead of detailed, micro-managing metrics that will result in bad behavior and local optimizations.</p>
<p><em>You get what you measure. In a good way this time.</em></p>
<p>There are of course other ways of measuring up in a healthy way. If you have come across someting that you find interesting and useful, please make a comment.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/160/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/160/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/160/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=160&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2009/02/14/you-get-what-you-measure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
		<item>
		<title>Two steps to become agile</title>
		<link>http://danielbrolund.wordpress.com/2008/11/18/two-steps-to-become-agile/</link>
		<comments>http://danielbrolund.wordpress.com/2008/11/18/two-steps-to-become-agile/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 13:25:53 +0000</pubDate>
		<dc:creator>danielbrolund</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[continuous improvement]]></category>
		<category><![CDATA[organizations]]></category>
		<category><![CDATA[retrospecitives]]></category>
		<category><![CDATA[retrospective]]></category>

		<guid isPermaLink="false">http://danielbrolund.wordpress.com/?p=140</guid>
		<description><![CDATA[A lot of companies today wants to become &#8220;agile&#8221;. The $100.000.000 question is: How do you become agile?
These are the two steps you need to do:

 Arrange totally honest retrospectives every week
Execute, with no exception nor delay, all the solutions, impediment removals and improvements as suggested by the retrospectives

If you do this, you will be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=140&subd=danielbrolund&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A lot of companies today wants to become &#8220;agile&#8221;. The $100.000.000 question is: How do you become agile?</p>
<p><span id="more-140"></span>These are the two steps you need to do:</p>
<ol>
<li> Arrange totally honest retrospectives every week</li>
<li>Execute, with no exception nor delay, all the solutions, impediment removals and improvements as suggested by the retrospectives</li>
</ol>
<p>If you do this, you will be doing agile.</p>
<p>Simple? I doubt it&#8230;</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/danielbrolund.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/danielbrolund.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/danielbrolund.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/danielbrolund.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/danielbrolund.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/danielbrolund.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/danielbrolund.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/danielbrolund.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/danielbrolund.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/danielbrolund.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=danielbrolund.wordpress.com&blog=1508881&post=140&subd=danielbrolund&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://danielbrolund.wordpress.com/2008/11/18/two-steps-to-become-agile/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/58d99e391130383a77a54785f306da0e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">danielbrolund</media:title>
		</media:content>
	</item>
	</channel>
</rss>