<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Highway 74</title>
	<atom:link href="http://ellnestam.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ellnestam.wordpress.com</link>
	<description>Thoughts and insights about software development</description>
	<lastBuildDate>Mon, 01 Aug 2011 14:26:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ellnestam.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/aac64e9c76cd0b12e38fe10d18d34ca5?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Highway 74</title>
		<link>http://ellnestam.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ellnestam.wordpress.com/osd.xml" title="Highway 74" />
	<atom:link rel='hub' href='http://ellnestam.wordpress.com/?pushpress=hub'/>
		<item>
		<title>What I&#8217;ve learned about self organization</title>
		<link>http://ellnestam.wordpress.com/2011/07/29/what-ive-learned-about-self-organization/</link>
		<comments>http://ellnestam.wordpress.com/2011/07/29/what-ive-learned-about-self-organization/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 10:32:18 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[team dynamics]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[cross functional]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[group dynamics]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=441</guid>
		<description><![CDATA[Cross functional teams I guess we can all agree that any task that needs to be carried out requires an adequate skill set in order to be completed. Should the task be more complex or less trivial, a broader set of skills or a more proficient person carrying it out is needed. When I look [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=441&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Cross functional teams</h2>
<p>I guess we can all agree that any task that needs to be carried out requires an adequate skill set in order to be completed. Should the task be more complex or less trivial, a broader set of skills or a more proficient person carrying it out is needed. When I look at software development I see a mix of non triviality and complexity, since it&#8217;s usually a long series of pretty difficult tasks. These characteristics and the creative aspect that comes from someone finding my work useful is what attracts me to the software business. In addition to that I find it rewarding and interesting to work with others. My guess is that this is what makes people group together and form teams when they develop large software systems and applications.</p>
<p><span id="more-441"></span></p>
<p>In order to address all challenges and aspects of software development these teams usually consists of several persons. Our wish to do a proper job leads us to this. Who can blame us, there&#8217;s plenty to consider &#8212; right? We need to analyze the business case, create a usable system and store data just to mention a few important things. These multi skilled teams are often called cross functional, referring to the combination of skills that can be put to use by the group.</p>
<h2>A non linear challenge</h2>
<p>However, these cross functional teams comes at a price: interaction challenges. The more people there are, the more difficult communication becomes. This communication challenge is very closely related to the number of relations in a group, which is a non-linear function by the way. It can be expressed as: f(n) = n * (n &#8211; 1) / 2, where n is the number of persons in the group. This function tells us that a group of three people has three unique interpersonal relations: 3 = 3 * (3 &#8211; 1) / 2. A group of 4 has 6 relations, whereas a group of 5 has 10, and it quickly adds up. A ten people team has no less than 45 unique relations between its team members. But the number of relations isn&#8217;t our only challenge, lets dig a bit deeper.</p>
<h2>Distortion and noise</h2>
<p>Interaction gets complicated really fast, partly because people continuously need to digest new information, discuss new ideas and act on them respectively. And partly because the interpersonal relations themselves require attention. The function above doesn&#8217;t show information distortion like different views, different opinions or different backgrounds. Nor does it effectively convey how communication &#8216;noise&#8217; like stress, different work hours or multi tasking affects the work.</p>
<p>Nevertheless, they both matter and they have a big impact on our communication.</p>
<p>So, how should we handle all these distorted, noisy paths of communication and interaction, that seems to grows uncontrollably as we add people to our teams?</p>
<h2>Self organization and leadership</h2>
<p>I&#8217;ve been part of a multitude of different groups and teams. Every single one of them, especially the ones where we actually completed something there was leadership..If the task was even remotely creative I&#8217;m arguing that the amount of leadership was higher.</p>
<p>Suppose you were a fly on the wall and could observe all my previous doings in all those different situations. When you sit on a wall for a moment, you can&#8217;t see titles, wouldn&#8217;t know about formalities nor culture. So what would you see? Well, as a fly you would see people, engaging in several different activities, this is what flies does all day so they&#8217;re pretty good at it. You&#8217;d probably see some actions that looks like they lead to something else, while some doesn&#8217;t seem to have any effect at all. But all you see is interaction between people. Would you still be able to tell if I was the leader? Someone else? I think you could &#8212; but how?</p>
<p>I&#8217;ve found that the activity part is crucial, the actions is what makes an individual a leader for a brief moment, not their title or label. And this is why I argue that it has to be easy to engage in any activity. Then the probability dramatically increases that the desired behavior emerges and then &#8212; leadership can be distributed. I want shared leadership and emergent behavior because I see them as the base for self organization.</p>
<h2>What activities then?</h2>
<p>The base, especially the shared leadership part, isn&#8217;t possible if someone in a group is held back by something or someone. Let&#8217;s see why.</p>
<p>Back in 2007 I attended <a title="Esther Derby" href="http://www.estherderby.com/" target="_blank">Esther Derby&#8217;s</a> and <a title="FutureWorks Consulting" href="http://futureworksconsulting.com/" target="_blank">Diana Larsen&#8217;s</a> excellent workshop &#8212; <a title="Secrets Of Agile Teamwork" href="http://www.estherderby.com/workshops/secrets-of-agile-teamwork" target="_blank">&#8216;Secrets Of Agile Teamwork&#8217;</a>, where one of the exercises focused on leadership activities. After the exercise we discussed what we just did, our actions, how we interacted and in particular the activities that stood and out and made people leaders or enabled leading. That was a real eye opener for me and it made me realize that I want to focus on the activities we engage in.</p>
<p>Some of the activities Esther and Diana pointed out were:</p>
<ul>
<li>Instructing</li>
<li>Following</li>
<li>Peacemaking</li>
<li>Coordinating</li>
<li>Monitoring</li>
<li>Influencing</li>
<li>Promoting</li>
<li>Criticizing</li>
<li>Reviewing</li>
<li>Commenting</li>
</ul>
<p>When I saw these the first time I found some a lot more obvious that others. What do you think?</p>
<h2>An overlooked dimension</h2>
<p>I&#8217;ve used this exercise as a reference and reflected over other situations over the years and many other groups I&#8217;ve been a part of. Repeatedly I&#8217;ve come back to how every difficult situation seemed to lack an important piece. All the problems seemed to stem from the same source.</p>
<p>What had held me or my team back was the fact that someone couldn&#8217;t, wouldn&#8217;t or didn&#8217;t to step forward and engage in some important [leading] activity. This lead me to believe that every team needs to be cross functional in at least two dimensions; technically and interactively. The former is the ability to execute a task and is what we usually focus on when constructing a team. The latter is how you can enable others trying to complete that same task and we need to be equally strong here. We need people that are comfortable with; instructing, following, promoting etc.</p>
<h2>A simple example</h2>
<p>During the exercise in the &#8216;Secrets &#8230;&#8217;-workshop described above, I had a disagreement with someone. We had a lengthy dialog during which we failed to realize that we were about to spend a disproportionate amount of time on a simple matter, until someone pointed that out by simply stating: &#8216;You seem to disagree&#8217; (commenting &amp; peacemaking). We couldn&#8217;t spot that ourselves, but that small interruption snapped us out of discussion mode and turned us to reflection instead. We could then easily see that this question was best answered by a third person, so we turned to them for their opinion and the matter was solved in seconds.</p>
<p>Commenting and peacemaking &#8212; simple and really powerful.</p>
<h2>Another simple but hard to do example</h2>
<p>A few years ago I found following really hard as I felt I had to &#8216;lead&#8217; in order to be in control. Following is now my current favorite activity, even though I still have problems with it on occasions. I&#8217;m not totally over trying to control others, but I practice every day by letting other people coordinate, promote or instruct me. Following more has gradually helped me get used to not being in control and I don&#8217;t feel I have to lead to the same extent. Nowadays I pause more often when I talk, pause when I show others how I do things and wait for reactions when I make a comment. 5 seconds is usually enough but that still feels like an eternity sometimes.</p>
<p>I will keep experimenting with following because I&#8217;m convinced other crucial behavior depends on it and won&#8217;t emerge unless there&#8217;s room for other peoples actions and thoughts. And if I lead all the time, the groups I&#8217;m a part of might not learn as much and more importantly, I won&#8217;t learn at the same pace because I wouldn&#8217;t have any time to reflect and see what my own actions lead to.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/441/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/441/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/441/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=441&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2011/07/29/what-ive-learned-about-self-organization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>Becoming Agile</title>
		<link>http://ellnestam.wordpress.com/2011/03/20/becoming-agile/</link>
		<comments>http://ellnestam.wordpress.com/2011/03/20/becoming-agile/#comments</comments>
		<pubDate>Sun, 20 Mar 2011 21:13:54 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[becoming agile]]></category>
		<category><![CDATA[comic strip]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=433</guid>
		<description><![CDATA[A couple of weeks ago I found a little note that I scribbled down a year ago. Instead of turning it into a blog which I intended in the first place I drew a little comic strip. Today I finally got my hands on a scanner and decided to share it with you.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=433&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A couple of weeks ago I found a little note that I scribbled down a year ago. Instead of turning it into a blog which I intended in the first place I drew a little comic strip. Today I finally got my hands on a scanner and decided to share it with you.</p>
<p><a href="http://ellnestam.files.wordpress.com/2011/03/becoming.jpg"><img class="size-medium wp-image-434 alignleft" title="Becoming Agile" src="http://ellnestam.files.wordpress.com/2011/03/becoming.jpg?w=300&#038;h=113" alt="" width="300" height="113" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/433/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/433/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/433/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=433&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2011/03/20/becoming-agile/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>

		<media:content url="http://ellnestam.files.wordpress.com/2011/03/becoming.jpg?w=300" medium="image">
			<media:title type="html">Becoming Agile</media:title>
		</media:content>
	</item>
		<item>
		<title>Precise or accurate &#8211; or, How to miss a goal</title>
		<link>http://ellnestam.wordpress.com/2009/12/21/precise-or-accurate-or-how-to-miss-a-goal/</link>
		<comments>http://ellnestam.wordpress.com/2009/12/21/precise-or-accurate-or-how-to-miss-a-goal/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 14:35:20 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[collaboration]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[accuracy]]></category>
		<category><![CDATA[customer]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[precision]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=411</guid>
		<description><![CDATA[Rather early in my career as a programmer I learned a few rather important characteristics about software development requirements as well as how important delivering to an end user can be. Way back, more than 10 years ago, when people still argued if Internet could be used to do other stuff than transferring JPGs, me [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=411&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Rather early in my career as a programmer I learned a few rather important characteristics about software development requirements as well as how important delivering to an end user can be.</p>
<p><span id="more-411"></span></p>
<p>Way back, more than 10 years ago, when people still argued if Internet could be used to do other stuff than transferring JPGs, me and a colleague got involved in a small project. We where supposed to convert an MS Access application to a web ditto. The whole idea was basically that more users should be able to run the application and future upgrades would be a lot smoother. The current application had a few know bugs and those should be addressed as well.</p>
<h3><strong>Smooth sailing</strong></h3>
<p>In those days fancy web frameworks weren&#8217;t available, JavaScript implementations in browsers were rocky and their compliance to web standards was coincidental at best. Even so, a couple of weeks after we kicked development off we were well on our way and it looked like we could meet the expected delivery date. We worked at rather comfortable pace and finished the project one week late.</p>
<p>The late delivery wasn&#8217;t a big deal, no something else was.</p>
<p>A couple of months later we had developed a perfect replica according to our specification and the web app was installed and ready to be used. I later learned that the fact it was a perfect replica was the actual problem. Apart from the obvious bugs we removed we hadn&#8217;t realized that there were some more serious flaws in the current implementation.</p>
<h3><strong>First Demo</strong></h3>
<p>The implementation of the process flow didn&#8217;t fit reality which forced the users to go through unnecessary steps and procedure to work around a major design flaw. This became painfully obvious when I sat down with the customer during a demo. At first I felt rather proud of what we had achieved during the weeks of development but as the demo drew to and end the users that where present got more and more agitated. They where supposed to be impressed I thought to myself as I started to break some sweat.</p>
<p>10 minutes before the end I was trying to sum things up as a lady said: <em>&#8216;What about the work flow &#8230;&#8217;</em>. <em>&#8216;Yes, how about the issues with the work flow &#8230;&#8217;</em> another one pitched in. I was baffled; <em>&#8216;Yeah, what about it?&#8217;</em></p>
<p><em>&#8216;You haven&#8217;t fixed the work flow?!&#8217; </em></p>
<p>I hadn&#8217;t &#8230; because I didn&#8217;t know I was supposed to.</p>
<h3><strong>In retrospect</strong></h3>
<p>Looking back I can see how easy it would&#8217;ve been to start pointing fingers and blaming each other or even blamed it on poor specifications. But the specs weren&#8217;t poor, were they?</p>
<p>As a developer I thought the specs were great and I had a really good grip on what to do. Just make a web application out of this, this really really precise specification. This legacy app. And we did!</p>
<p>We really managed to implement it. But did that cut the mustard? No it didn&#8217;t.</p>
<p>I think I was being misled and fooled by the very precise specification, in this case we had a running MS Access application. Which to me seems very precise. We could see the GUI, all the buttons, the drop-down menus and by golly we even had a reverse engineered schema for the database. Could it be more precise than that? I didn&#8217;t think so.</p>
<p>Today I still see lots and lots of people trying to work out very precise specifications. They really put their mind to it and often enough they produce really precise specs. This is what I think leads other people to think they are correct. This much detail &#8230; this high precision, no one could be this precise without being correct, right?</p>
<h3><strong>A piece of advice</strong></h3>
<p>- Precise isn&#8217;t the same as correct nor accurate<br />
- Don&#8217;t substitute specifications for conversations</p>
<p>And last but not least; <em>Software is of no use unless it&#8217;s in production and making peoples life easier</em>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/411/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/411/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/411/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=411&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/12/21/precise-or-accurate-or-how-to-miss-a-goal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>An AI retrospective</title>
		<link>http://ellnestam.wordpress.com/2009/11/12/an-ai-retrospective/</link>
		<comments>http://ellnestam.wordpress.com/2009/11/12/an-ai-retrospective/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 13:47:49 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[coaching]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[appreciative inquiry]]></category>
		<category><![CDATA[retrospective]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=399</guid>
		<description><![CDATA[Always look on the bright side of life &#8230; I like to look at things from a positive angle since I find the opposite to be very &#8230; ehrrr &#8230; negative. This is not the same as being naive but at times it might look like that. Nor does it imply disregarding risks, negative aspects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=399&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4><strong>Always look on the bright side of life &#8230;</strong></h4>
<p>I like to look at things from a positive angle since I find the opposite to be very &#8230; ehrrr &#8230; negative. This is not the same as being naive but at times it might look like that. Nor does it imply disregarding risks, negative aspects or criticizing, even though it might look like that as well.</p>
<p>No, it&#8217;s just that I like my default mode to be positive, so to speak.</p>
<p><span id="more-399"></span></p>
<p>A couple of weeks ago I was asked to facilitate a retrospective and since I like to build on the positives of a situation I started to look around. Also I had been talking to a colleague who happens to like to amplify the positive rather than dampen the negative. Since I&#8217;m a firm believer in that as well it made me more determined in my search for a good way to hold a retrospective. Having vague memories about appreciative inquiry, it didn&#8217;t take very long before I found something I liked.</p>
<h4><strong>What&#8217;s AI then?</strong></h4>
<address>From Wikipedia November 2009:<br />
(Appreciative Inquiry) is an organizational development process or philosophy that engages individuals within an organizational system in its renewal, change and focused performance. AI is based on the assumption that organizations change in the way they inquire and the claim that an organization which inquires into problems or difficult situations will keep finding more of the same but an organization which tries to appreciate what is best in itself will find/discover more and more of what is good.</address>
<h4><strong>How about An AI retrospective then?</strong></h4>
<p>Yes, it has been done before. <a href="http://futureworksconsulting.com" target="_blank">Diana Larsen</a> describes the <a title="AI retrospective" href="http://www.ayeconference.com/appreciativeretrospective/" target="_blank">concept here</a>.  It&#8217;s fine to read that later, or you could do it now if you&#8217;d like.</p>
<p>Basically a retrospect consists of five parts:</p>
<ul>
<li>Set the stage</li>
<li>Gather data</li>
<li>Generate insights</li>
<li>Decide what to do</li>
<li>Close the retrospective</li>
</ul>
<h4><strong>How we did it</strong></h4>
<p>Me and another colleague ran this retrospect as a pair, stepping back and forth as the facilitator. One of us was managing the present at a detailed level while the other one looked slightly ahead as we went through each stage. I wouldn&#8217;t recommend this unless you know each other very well and have done a fair amount of pair work previously.</p>
<p>Stepping back and letting the other take over the facilitation requires a pretty high level of trust. Especially if you like being in control.</p>
<h4><strong>Setting the Stage</strong></h4>
<p>First, since I was pretty sure no-one in this crowd, beside me and my colleague [the facilitators], knew about AI we explained very briefly what AI is and then ran a round of &#8216;Appreciations&#8217;. The mechanics of an appreciation can be described as follows:</p>
<ul>
<li> Think of someone, you honestly appreciate, for doing something</li>
<li>Face that person and express that. I.e &#8216;Tom, I appreciate you for helping me find the problem with that tricky threaded design last Monday&#8217;</li>
<li>Tom should acknowledge the appreciation by simply saying &#8216;Thank you&#8217; or something like that.</li>
</ul>
<p>The mechanics of an appreciation is as simple as it sounds. The tricky part is being direct, finding things you appreciate and last but not least muster some courage to say it out loud &#8230; when you&#8217;re sitting in a room with 10 other colleagues. It becomes easier after doing it a dozen times though.</p>
<p>The appreciation round got the group in the right mood. After that we asked the group my favorite question in order to stimulate some abstract thinking around a specific topic.</p>
<p><em>If this [iteration] was an Ice cream, what would it be like?</em></p>
<p>I believe that abstract thinking helps a lot later during the &#8216;Generate Insights&#8217; part and to this day I haven&#8217;t met anyone that doesn&#8217;t have something to say about Ice Cream. It&#8217;s not political, it&#8217;s abstract enough, it&#8217;s fun and people open themselves up just a little bit more.</p>
<p>Ice Cream &#8230; we got a perfect start. The first person really hit the head of the nail by summing up the iteration as a cone of ice cream with three different flavors. Brilliant! The others tagged along and off we went!</p>
<h4><strong>Gather Data</strong></h4>
<p>Now it was time to start asking some questions to stimulate the data gathering. We asked 4 questions and asked the participants to try to relate those to either a &#8216;Strength&#8217; the team had, a &#8216;Success&#8217; or an &#8216;Event&#8217; that had occurred since the last retrospective.</p>
<ol>
<li>&#8216;Tell a story or about a time when you where in a flow&#8217;</li>
<li>&#8216;Say something that you are particularly proud of achieving&#8217;</li>
<li>&#8216;What unique thing did this iteration add&#8217;</li>
<li>&#8216;At what time did you feel like you where part of a team the most&#8217;</li>
</ol>
<p>As we asked those questions people told stories and commented while they and the others wrote down their answers and notes on stickies. Small paper notes that can be stuck on a whiteboard.</p>
<h4><strong>Generate insights</strong></h4>
<p>After that we told the group to close their eyes, imagine they were in the same room only three weeks in the future. While pretending they where in the future, we again asked the same questions and they wrote down their answers. After this round of questions each participant read all their answers out loud and we helped them put the stickies up on a wall.</p>
<p>Now the time had come to prepare for the next stage and in order to do that we wanted to reach some sort of agreement on what to do. We asked the participants to look for patterns and then group the stickies. All this had to be done while remaining completely silent. No talking allowed.</p>
<p>We weren&#8217;t quite sure how they would tackle this but the group once again astonished us. In complete silence they had grouped the stickies in less than 5 minutes and they enjoyed it.</p>
<h4><strong>Decide that to do</strong></h4>
<p>Thinking about their strength as a team and looking at the groups of stickies we then asked them to vote for what area to look into. After a simple dot-voting with a total of 6 dots, 3-2-1, they had come to the conclusion that two areas needed their attention the most. They split up in two groups, talked for a while and then presented two plans on how to achieve their goals. They decided that they would put up those goals where everyone could see them and follow up on that.</p>
<h4><strong>Closing the retrospective</strong></h4>
<p>We had plans on running a full &#8216;Temperature Reading&#8217; as a closing activity. However, we ran out of time and opted for &#8216;Hopes and Wishes&#8217;. By this time the group was steaming with positive energy and really going. Despite the fact that we had been going for pretty much 90 minutes straight.</p>
<p>Hopes and wishes are stuff that the participants would like see or happen in the future. Like, &#8216;I would really like to pair program more&#8217; or &#8216;I wish I could visit our customer more often&#8217;. This closed the retrospective and kept that positive note right to the end.</p>
<p>I will definitely do this again.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/399/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/399/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/399/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=399&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/11/12/an-ai-retrospective/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>Transparency, the new instrument for control</title>
		<link>http://ellnestam.wordpress.com/2009/09/14/transparency-the-new-instrument-for-control/</link>
		<comments>http://ellnestam.wordpress.com/2009/09/14/transparency-the-new-instrument-for-control/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 09:06:32 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[coaching]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[leadership]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=387</guid>
		<description><![CDATA[Do you ever get the feeling that the world is spinning faster than ever. Maybe it has been like that all along, and we&#8217;re all having trouble keeping up? I believe so. Or was it easier doing business a decade ago, two decades ago? I don&#8217;t know, I&#8217;m not old enough and haven&#8217;t been in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=387&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Do you ever get the feeling that the world is spinning faster than ever. Maybe it has been like that all along, and we&#8217;re all having trouble keeping up? I believe so. Or was it easier doing business a decade ago, two decades ago? I don&#8217;t know, I&#8217;m not old enough and haven&#8217;t been in the business that long.</p>
<p>What I do know is that I have an urge to be in control. So, when I get in a situation where I, for some reason, don&#8217;t have all the information I want that, I feel the need to be in control. I start to act irrationally, ineffective and very unorganized. It&#8217;s a vicious circle.</p>
<h3><span id="more-387"></span>Loosing control</h3>
<p>Whenever that sort of situation appears I know it&#8217;s important to take a few steps back and start asking myself questions. Questions that gives me an idea of what&#8217;s going on. It usually boils down to the lack of information. I don&#8217;t understand things or didn&#8217;t get the information I needed in time.</p>
<p>And I&#8217;m not alone.</p>
<p>At least I think there are a lot more people like me out there. We want to have relevant information in time. When transparency turns to opacity, it&#8217;s easy to get confused.</p>
<p>If we agree that everybody always are trying to do their best, given their capabilities and the information they&#8217;re handed. What you really want to do is make your process as transparent as possible. You want a flow of information with a minimum of delays and noise. You want fast feedback as well. This is the essence.</p>
<p>Humans need information that is tailored to the current situation. Let&#8217;s see what happens when you increase transparency in a process.</p>
<h3>Increasing transparency</h3>
<p>Imagine yourself being part of a team, in a project that develops software. You&#8217;re team is noticing a trend. The customer are having difficulties in deciding on how the UI is supposed to work and what is shall look like. Something doesn&#8217;t feel right and you&#8217;re get the feeling that information gets lost. The team makes the bold decision to start delivering more often. By doing this you&#8217;re closing the feedback loop earlier and you get relevant feedback more often. Transparency increases.</p>
<p>Two releases later the testing apartment starts complaining. They can&#8217;t keep up. Defects slips through and the customer isn&#8217;t very pleased. Management hears this and tension mounts. From around the organization suggestions are made that you &#8216;Go back to the old way of working&#8217;. In short, decrease transparency.</p>
<p>Now it starts to get interesting.</p>
<p>An organization that is serious about improvements will start asking questions instead. Why aren&#8217;t testing keeping up? A will to try and find the root cause of the problem is key, not closing ones eyes, pushing the problem away or start blaming each other.</p>
<h3>Improvement, leadership and feedback</h3>
<p>If you&#8217;ll keep on trying to increase the feedback in your organization and make sure information flows freely you will eventually get a more transparent process. You won&#8217;t get your hands tied up in a web of lies and misinformation that steals energy and focus from what really makes a difference.</p>
<p>When you and the people around you get used to this, you&#8217;ll experience a whole different level of control. You&#8217;ll notice you waste less energy on what doesn&#8217;t matter and you&#8217;ll be able to make use of that energy on the important stuff.</p>
<p>If you still think that the world is spinning faster and faster or if you&#8217;re having troubles keeping up, you&#8217;re probably wasting energy on the wrong things. Maybe it&#8217;s time to increase transparency in your life?</p>
<p>The future is now and the new instrument for control is transparency!</p>
<p>It frees up time, resources and money. But it requires a new kind of leadership. One that is characterized by passion, a will to improve and honest communication. Are you ready?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/387/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/387/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/387/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=387&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/09/14/transparency-the-new-instrument-for-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>Communicaton &#8211; a model</title>
		<link>http://ellnestam.wordpress.com/2009/09/09/comminicaton-a-model/</link>
		<comments>http://ellnestam.wordpress.com/2009/09/09/comminicaton-a-model/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 15:41:29 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[coaching]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[dialogue]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[pull]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[quarrel]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=381</guid>
		<description><![CDATA[Sometimes I notice myself being irritated when I&#8217;m communicating with others. Up until recently I thought that was because I was tired or the topic wasn&#8217;t interesting enough. At times I even thought &#8211; Maybe I don&#8217;t like this person any more. While this might be true I&#8217;ve found that there is one thing that [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=381&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes I notice myself being irritated when I&#8217;m communicating with others. Up until recently I thought that was because I was tired or the topic wasn&#8217;t interesting enough. At times I even thought &#8211; <em>Maybe I don&#8217;t like this person any more.</em></p>
<p>While this might be true I&#8217;ve found that there is one thing that affects me more than any of the above. Namely the nature of the communication. If it&#8217;s to pushy I loose interest at best. At worst I get defensive and the other part will usually go defensive as well.</p>
<p><span id="more-381"></span><img title="More..." src="http://ellnestam.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<h3>A model</h3>
<p>A few months ago I stumbled over a model I&#8217;d like to share with you. It describes the nature of (spoken) communication and gives me a pretty good orientation, or at least a hint of where and how the communication is going.</p>
<p>Picture a ladder or an axis, which gets more intense the farther you get to the right. It has five steps and looks like this:</p>
<pre>Dialogue -&gt; Conversation -&gt; Discussion -&gt; Argumentation -&gt; Quarrel</pre>
<p>You might want to go even further, to the right, and I guess the next stage after a quarrel would be fighting. I don&#8217;t count that as communication so I stop at <em>Quarrel</em>.</p>
<p>I want to give you a basic idea of how I experience each stage and what I think characterizes them. I&#8217;ll start at the far right and work my way to the left. Sort of ending up where I like my communication to happen.</p>
<h3>Quarrel</h3>
<p>As said, not very far from getting physical but still verbal. If I picture it in my head it could be a couple on the verge of separation standing in a kitchen and reaching for something to throw while accusing each other of different things. It could also be an upset customer who aren&#8217;t very pleased with a product, that has returned for a refund but the supplier says the warranty has been voided.</p>
<h3>Argumentation</h3>
<p>This is still really intense. Each part in the communication is trying to convince the other part that their view is the <em>correct one</em>. The words can be soft and the tone could also be very gentle, but the intention is still to convince the other part.</p>
<h3>Discussion</h3>
<p>This is middle ground. Not a quarrel but you&#8217;re not really open for another persons perspective either. Sentences like: <em>&#8216;That&#8217;s not how I look at it &#8230;&#8217; </em>or &#8216;<em>Oh yeah, how about the time when you &#8230;&#8217;</em>, is pretty common. I wouldn&#8217;t describe this type of communication as very productive. Not in the long run at least. At best you can determine where a person draws the line but not really gain any deeper understanding.</p>
<h3>Conversation</h3>
<p>Lunch chit-chat about nothing and everything. You aren&#8217;t really really giving the other person your full attention and a comment like: &#8216;Are you listening &#8230; ?&#8217; might appear in this context. This is also the typical mode of exchanging information. A few <em>&#8216;Can you clarify &#8230; &#8216;</em> might be tossed in and appear in the conversation. But each part is still spending more time <em>preparing an answer </em>than really trying to understand.</p>
<h3>Dialogue</h3>
<p>This involves a lot of listening. Here you focus on understanding the other person, before even opening your mouth. You aren&#8217;t preparing an answer, the answers and opinions are pulled out of you.</p>
<p>If you give your other communication parties this much attention and really put your hear to it, amazing things will happen to your relationship. <em>Engaging</em> in dialogue is exhausting and requires a lot patience. But with some training anyone can do it.</p>
<h3>Summing it up</h3>
<p>The farther you go to the left, the more pull oriented the conversation is. The content isn&#8217;t key, neither is the tone really. Even though the tone of the communication degrades pretty fast as you move to the right. No, the key thing here is that information is being pulled rather that pushed. As you go left, it gets more pull oriented. Going to the right, more pushy.</p>
<p>What&#8217;s important to remember here is the nature of the communication, not it&#8217;s content, and how you or the other involved parties react to different natures of communication. What you are trying to communicate and the context also matters.</p>
<p>Oh and one final word. This is a <em>model</em> of the reality, this is <em>not the reality</em> itself.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/381/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=381&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/09/09/comminicaton-a-model/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>

		<media:content url="http://ellnestam.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" medium="image">
			<media:title type="html">More...</media:title>
		</media:content>
	</item>
		<item>
		<title>The Human Batch Script</title>
		<link>http://ellnestam.wordpress.com/2009/07/02/the-human-batch-script/</link>
		<comments>http://ellnestam.wordpress.com/2009/07/02/the-human-batch-script/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 22:06:42 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[team dynamics]]></category>
		<category><![CDATA[anti-pattern]]></category>
		<category><![CDATA[anti-patterns]]></category>
		<category><![CDATA[batch script]]></category>
		<category><![CDATA[build machine]]></category>
		<category><![CDATA[build master]]></category>
		<category><![CDATA[build script]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[continous integration]]></category>
		<category><![CDATA[one click build]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[team anti pattern]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=358</guid>
		<description><![CDATA[It&#8217;s Monday, the last day of the iteration. It&#8217;s time to build, package and release the next version of LogLady, the best tool known to man used for analyzing server logs. Robert, the build master, responsible for the buildprocess dreads this day more than any other day of the iteration. To Robert this isn&#8217;t release [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=358&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s Monday, the last day of the iteration. It&#8217;s time to build, package and release the next version of LogLady, the best tool known to man used for analyzing server logs. Robert, the build master, responsible for the buildprocess dreads this day more than any other day of the iteration. To Robert this isn&#8217;t release day or the last day of the iteration. It&#8217;s Build day &#8230; yuck.</p>
<p><span id="more-358"></span></p>
<h3><strong><strong>Another build master is born</strong></strong></h3>
<p>Robert whips up the command prompt like he usually does and wonders what kind of surprises he&#8217;s going to run into this time. <em>Gentlemen, start your engines.</em> <em>But first, compile time. We copy the copy source files, from this directory here over to the build dir. Then compile.</em> The actual compilation wouldn&#8217;t have been too bad if it weren&#8217;t for the circular dependencies and other interruptions, Robert thinks, as he heads to the coffee machine while the compile is running. I&#8217;m going to need this second cup. What he doesn&#8217;t know is that it will take him more than 10 cups before he&#8217;s going to be finished, this time.</p>
<p>It comes as no surprise; the build crashed after 4 minutes. A new record Robert thinks to himself as he takes a sip of his blant coffee and searches the command history for the command he usually runs when this happens. Got it, he executes his &#8216;cleanup command&#8217; and then resumes the compilation. That should do it. He takes another sip of the coffee and starts browsing the net while the build splurts out loads of text and debugging-info in a barely visible terminal, behind his Internet browser.</p>
<p>Suddenly, the text stops scrolling and Robert is snaps out of his zombie-like state. Ugh, what&#8217;s this, oh no, not again. Another third party library that isn&#8217;t on the build path. It isn&#8217;t even two weeks since this happened the last time. Why don&#8217;t they bother to put these files in the version control repository. Robert searhes the net for 15 minutes before he finds the correct version of the 3rd party library and is able to put it on the build-path. Then he resumes the building and starts browsing again.</p>
<h3><strong>Over and over and over again</strong></h3>
<p>After three more interruptions, the day draws to an end. But before he can release the code it has to be obfuscated and packaged. The zip has to go into version control and documents has to be updated. The work spills over to a second day. Two days become three and even more work is needed.</p>
<p>Then, just as he is about to tell the productmanager he&#8217;s done; a bug is discovered.<br />
Robert isn&#8217;t very happy. In fact he&#8217;s pretty darn pissed. But he starts over, thinking, &#8216;Well, someone has to dig in and do some real work for a change&#8217;. He hasn&#8217;t realized it. But one iteration from now all he will be doing is managing releases.</p>
<h3><strong>The way out</strong></h3>
<p>Doing things, by hand, that can be done by computers is not only wasteful, it&#8217;s degrading. It sucks the energy out of you and your team members. This energy and time could be used to improve other parts of a software development process. Or pieces of code. Or maybe plain testing.</p>
<p>In short, automation scales very well. It&#8217;s a much more linear function than adding developers. Add one computer and you can probably run tests, build code or do any other task twice as fast. As longs it&#8217;s fully automated.</p>
<p>Before you automate anything though, you should make sure you can do it by hand. If you can&#8217;t do it by hand, chances are it&#8217;s very hard to automate. If not impossible.</p>
<p>Beware. Everything that can be automated shouldn&#8217;t and everything that seems like it couldn&#8217;t should be tried. Let me explain.</p>
<p>When you&#8217;re automating you are adding tasks to your process. This makes them harder to question, get rid of or improve. Because you might not really know why they are there. Or rather, why they became part of the process. Therefore you should simplify the things you are automating /before/ actually doing so. That way it&#8217;s easy to see where everything fits in.</p>
<h3><strong>Simplify, then automate</strong></h3>
<p>Things that can&#8217;t be automated requires an extra look as well. Why can&#8217;t they be automated? The very questioning may lead to insights and later even changes to a process. So, When looking at the same piece of work again you might spot a way to automate it.</p>
<p>Signs that indicate &#8216;computerwork&#8217;. Things that could be automated</p>
<ul>
<li>Repeatedly doing the same thing</li>
<li>A problem seems too simple to be automated</li>
<li>You often miss important steps while working</li>
<li>Your mind wanders while working. It could also indicate that you need a break.</li>
</ul>
<p>There are probably more signs. Can you think of one?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/358/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/358/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/358/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=358&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/07/02/the-human-batch-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>Bug Squash &#8211; Another Software Team Anti Pattern</title>
		<link>http://ellnestam.wordpress.com/2009/05/13/bug-squash-another-software-team-anti-pattern/</link>
		<comments>http://ellnestam.wordpress.com/2009/05/13/bug-squash-another-software-team-anti-pattern/#comments</comments>
		<pubDate>Wed, 13 May 2009 20:11:13 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[coaching]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[team dynamics]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[anti-pattern]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=337</guid>
		<description><![CDATA[It&#8217;s time to do something about all these bugs. The dev-team keeps shipping bugs every other month &#8211; Manny thought to himself. He had been managing a team for almost six months now and his gut-feeling told him they were on a slippery slope to a really warm place. Manny walked back and forth in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=337&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time to do something about all these bugs. The dev-team keeps shipping bugs every other month &#8211; Manny thought to himself. He had been managing a team for almost six months now and his gut-feeling told him they were on a slippery slope to a really warm place.</p>
<p><span id="more-337"></span></p>
<p>Manny walked back and forth in his room, trying to come up with an idea on how to stop this madness. Because it was madness. The team could easily spend two weeks fixing bugs every release. And sometimes they did.</p>
<p>He came up with nothing and strode over to the window beside his desk. Just as he was about to enter his seat he spun around, grabbed a pen and paper from his desk and ran down to the war room.</p>
<p>He liked the term &#8216;war room&#8217;. Everybody else called it the developers room. But Manny liked the tone and implication of the term war room, he realized as he entered it.</p>
<p><em>Hey, listen up folks! This weekend will be a bug-fix weekend. The name really says it all, but come to me if you have questions.</em> Manny scans the room to see if he has everyone&#8217;s attention <em>It starts Saturday morning &#8230; If you can&#8217;t attend, write that down beside your name here, on this list. If you can, write down your preferred Pizza.</em></p>
<p>Manny knew all programmers were suckers for pizza and he had another surprise for them.<em> Everybody that attends get a dinner for two on a restaurant of your choice &#8230; he savored the rest of the sentence &#8230; per day. So, you can get 2 restaurant visits, or 4 persons in total. </em>He could have sworn he heard a low &#8216;Ooooh&#8217; from the other side of the room. But he didn&#8217;t linger long enough to really hear what people talked about.</p>
<p>He walked out of the room and he knew it would be a success!</p>
<h2>Description</h2>
<p>Manny might have all the right intentions in the world. Wanting this to be a success. Building some team spirit or whatever. Trying to raise the quality of the product. What he doesn&#8217;t realize is that this will have the opposite effect. By running this bug-squash event, he is saying that it is OK to produce code with errors in it. And he has begun institutionalizing waste this way.</p>
<p>Let&#8217;s make one thing clear though. It&#8217;s OK to make errors. It should be OK to fail. But what Manny does is a totally different story. He communicates that quality is something that can be added later. If needed.</p>
<p>He also communicates that quality isn&#8217;t important enough to pay attention to all the time. It is something you can add later, like paint. What he probably hasn&#8217;t realized either is that quality is much more expensive to &#8216;test in&#8217; later. And that the &#8216;testing in&#8217; approach also results in lower quality.</p>
<p>Software is expensive as it is already. We don&#8217;t need waste in the form of bugs to drive costs up further.</p>
<h2>Refactored Solution</h2>
<p>Q: If quality is expensive to &#8216;test in&#8217;. What is the correct approach then?<br />
A: Build a quality product from the beginning.</p>
<p><strong>Mistake proofing</strong></p>
<p>People are human and we make mistakes. While mistakes aren&#8217;t avoidable, defects are. Defects result from mistakes reaching an end customer. So, the goal is to create a process where a defect never reaches the end customer. Doing so is the responsibility of the development team.</p>
<p>This can be achieved by combining various mistake proofing techniques. Now there is no single one technique that can stops all defects from reaching customers. It&#8217;s a combination of several ones, fit for the purpose.</p>
<p><strong>Categories of mistake proofing</strong></p>
<p>There are two types of mistake proofing techniques. One is prevention, the other one is detection. If you think them both, you might recognize a few from your every day life. It&#8217;s full of examples, both prevention and detection devices.</p>
<p>Detection devices doesn&#8217;t enforce correction, They merely signals problems. Take a modern car for instance. When you&#8217;re backing up and you come close to a curb or another obstacle, a beeping starts. This signals a warning to you as a driver. It doesn&#8217;t kill the engine, although it probably could.</p>
<p>Prevention devices works differently, they remove the need to correct a mistake. Like a power cord. There is only one way you can plug that into a wall socket. If you live in Sweden, where I live, there is actually two. But both ways work. Hence no mistakes are made and none need to be corrected.</p>
<p><strong>Software mistake proofing</strong></p>
<p>In software there are several techniques for mistake proofing. And those techniques are what you need to put to work when improving quality. You will want to design a process where defects doesn&#8217;t reach the customer.</p>
<p>Here are some of my favorite techniques. Can you see which category they belong to. Prevention or detecteion.</p>
<ul>
<li>Test Driven Development</li>
<li>Pair Programming</li>
<li>Regression tests</li>
<li>Continuous Integration</li>
<li>Customer tests</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/337/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/337/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/337/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=337&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/05/13/bug-squash-another-software-team-anti-pattern/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>My Pair Programming Journey (pt. 2)</title>
		<link>http://ellnestam.wordpress.com/2009/05/09/my-pair-programming-journey-pt-2/</link>
		<comments>http://ellnestam.wordpress.com/2009/05/09/my-pair-programming-journey-pt-2/#comments</comments>
		<pubDate>Sat, 09 May 2009 16:50:11 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[collaboration]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[pair programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[team dynamics]]></category>
		<category><![CDATA[old habits die hard]]></category>
		<category><![CDATA[pair infected]]></category>
		<category><![CDATA[pp infected]]></category>
		<category><![CDATA[solo programming]]></category>
		<category><![CDATA[status quo]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=326</guid>
		<description><![CDATA[Me and my colleagues had all jumped in the XP-water. Iterations, planning game, TDD and more. Things was running along quite nicely and I realized I had been pair-infected. Just like you can get test-infected, meaning you testdrive all your code. I had been pair-infected. I wanted to develop all my code in a pair. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=326&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Me and my colleagues had all jumped in the XP-water. Iterations, planning game, TDD and more. Things was running along quite nicely and I realized I had been pair-infected. Just like you can get test-infected, meaning you testdrive all your code. I had been pair-infected.</p>
<p>I wanted to develop all my code in a pair.</p>
<p><span id="more-326"></span></p>
<p>Pairing made me more focused, made me learn at a totally different pace. And it was much more fun too.</p>
<p>I was bitten, I wanted more but my situation changed and that made pairing a bit more complicated. I found myself in a new setup where there was no pairing culture. We didn&#8217;t have paring stations. Only solo desks. We didn&#8217;t share rooms. Even though we sat only 5-10 meters apart it felt like we were in different timezones. A few months into this I started slipping back into not pairing again.</p>
<h3>Physical Setup</h3>
<p>It wasn&#8217;t just that there was no pairing culture. I came to realize that how you sit matters a lot too. How easy it is to just sit there and solo. Not move your chair a few meters and start pairing. How the room and desk is organized meant a whole lot more than I first imagined.</p>
<h3>Rules</h3>
<p>Since we didn&#8217;t sit right next to each other, me and my co-workers tried scheduling paring sessions. That didn&#8217;t work out too well. We tried agreements like, &#8216;Whenever we work on xxx, we must pair&#8217; and &#8216;In the afternoon, we always pair&#8217;. That didn&#8217;t work either.</p>
<h3>Excuses</h3>
<p>There&#8217;s always an excuse NOT to pair. There are always circumstances that make pairing harder. And if one part resists ever so slightly, I&#8217;ve found that any excuse will pass. If it&#8217;s tried. I came to the conclusion that the physical setup is one very important aspect of pairing. It should be really really easy to engage in pairing.</p>
<h3>2 on 1</h3>
<p>One year became two years and I didn&#8217;t pair as much as I used to. I tried, my colleagues tried occasionally with no lasting result. What had been so natural in my previous project maybe wasn&#8217;t very natural at all. I began to wonder.</p>
<p>In my previous project we deliberately had put roughly half the number of workstations as were programmers. Pairing came, more or less natural. Once you have your own computer it&#8217;s so much easier to let the hours become days, months and even years without pairing. Even if you really enjoy it.</p>
<p>Half the amount of developers workstations made all the difference. When we removed the option to sit alone and develop, we were forced to a change by removing the old &#8216;status quo&#8217;. We couldn&#8217;t fall back to soloing. We had to find another way. Pairing came &#8216;naturally&#8217;. Because we were developers and we wanted to develop.</p>
<p>There was no other way than to pair.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/326/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/326/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/326/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=326&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/05/09/my-pair-programming-journey-pt-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
		<item>
		<title>My pair programming journey (pt. 1)</title>
		<link>http://ellnestam.wordpress.com/2009/04/20/my-pair-programming-journey-pt-1/</link>
		<comments>http://ellnestam.wordpress.com/2009/04/20/my-pair-programming-journey-pt-1/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 20:31:24 +0000</pubDate>
		<dc:creator>Ola Ellnestam</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xp]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://ellnestam.wordpress.com/?p=311</guid>
		<description><![CDATA[“Pair programming is a software development technique in which two programmers work together at one keyboard” &#8211; Wikipedia, April 2009. While this is basically true, I&#8217;d say it is a flavor of pair programming. If you&#8217;ve never heard about it before, this definition gives you a basic idea of what pair programming is about. Or [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=311&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><em>“Pair programming is a software development technique in which two programmers work together at one keyboard” &#8211; Wikipedia, April 2009.</em></p>
<p>While this is basically true, I&#8217;d say it is a flavor of pair programming. If you&#8217;ve never heard about it before, this definition gives you a basic idea of what pair programming is about. Or if you&#8217;ve never tried it, this approach is one easy way to start. Just sit down next to your peer and start working. The only modification to your working area you need to do is to move your chair closer to your colleagues. And off you go!</p>
<p><span id="more-311"></span></p>
<h3>First contact</h3>
<p>I was involved in a project, with a few other colleagues, which we felt wasn&#8217;t heading in the right direction. We had pretty much lost contact with the customer and that us and the customer to feel pretty desperate. We needed to make some dramatic changes to the way we worked. That was obvious.</p>
<p>This was late 2000, &#8216;eXtreme Programming&#8217; was rather new and one colleague had just picked up the &#8216;White Book&#8217; as we came to call it. Namely Kent Becks &#8211; &#8216;eXtreme Programming Explained&#8217;.</p>
<p>For the first time we came in contact with a methodology that seemed to suit our needs. Light weight, focused on programming practices and pretty much the same values we had within our company. Despite the warnings that came with the book. &#8216;Don&#8217;t try this to save a project&#8217; etc. We decided to give it a go. We also decided if we&#8217;re going to try XP we&#8217;re going to try all of XP.</p>
<p>Like entering a pool, cannonball style, we would try it all at once. Since Pair programming is one of the practices described in the book this became my first contact with it. Little did I know how much it would affect my programming, collaboration and people skills.</p>
<h3>Fumbling and Stumbling</h3>
<p>Since we were all beginners I believe that helped us a lot. I think it contributed to a higher tolerance to each others flaws, because we knew we were all beginners. No one had tried pair programming as described in the White book before. Sure, we had sat down together to tackle a difficult problem or to explain something we just did. But none of us had programmed with another developer, side by side, over an extended period of time. How was this going to feel?</p>
<h3>Practicalities  at first</h3>
<p>One of the earliest memories I have of difficulties during pair programming came from practicalities. How and when to switch partners, who where supposed to team up initially and what happens when someone gets sick or isn&#8217;t at the office.</p>
<h4>Switching pairs</h4>
<p>Switching gave us some headache at first. We never managed to switch pairs mid-iteration. The fact that two pairs very seldom finished a chunk of work at the same time made us wonder. Should one pair wait for the other while doing nothing. Or pick a less important piece of work that was of substantially smaller size, than the most important, just to let the others catch up? We decided not to switch in the midst of an iteration.</p>
<p>It didn&#8217;t feel optimal but it was <em>way</em> much better than not switching at all.</p>
<h4>Teaming up</h4>
<p>We had one rule that I think helped a lot. It was particularly helpful when teaming up. We were <strong><em>not allowed to say no</em></strong> when someone asked for help. This made me a lot more courageous. I clearly remember one time when I was hesitant to pick a piece of work. Then I remembered the rule, grabbed a very interesting story and asked a more seasoned developer for help. He joined me of course, and we both learned a lot. I learned more about programming that he did. And he learned about himself, about his teaching techniques and a few new ways to look at problems.</p>
<p>Now, new challenges arose. Some preferred working together and started teaming up very often.</p>
<h3>Sick, sick, sick</h3>
<p>When someone got sick or wasn&#8217;t at the office for any other reason funny things happened. Some of us took that as an excuse for not pairing while others saw a chance to switch partners. I enjoyed pairing so much so I would rather sit with another pair, than alone. Making us a triple. This wasn&#8217;t optimal but neither was sitting alone, I thought.</p>
<p>I found out that there was always someone that was more keen on sitting alone than me. So I normally ended up pairing and they normally ended up sitting alone. Another challenge.</p>
<h3>Splash &#8230;</h3>
<p>All had jumped in the water and it made a big splash. It wasn&#8217;t freezing as some of us expected. It wasn&#8217;t very hard to swim in a new way either. It was actually rather pleasant for most of us &#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ellnestam.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ellnestam.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ellnestam.wordpress.com/311/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ellnestam.wordpress.com&amp;blog=1364728&amp;post=311&amp;subd=ellnestam&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ellnestam.wordpress.com/2009/04/20/my-pair-programming-journey-pt-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3ee51a104ac0ed643a31b22156f76115?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ellnestam</media:title>
		</media:content>
	</item>
	</channel>
</rss>
