<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sarah Taraporewalla's Technical Ramblings &#187; Agile</title>
	<atom:link href="http://sarahtaraporewalla.com/thoughts/category/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://sarahtaraporewalla.com/thoughts</link>
	<description></description>
	<lastBuildDate>Sun, 31 Jan 2010 22:03:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>I don&#8217;t believe in NFRs</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-nfrs/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-nfrs/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 12:10:12 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=297</guid>
		<description><![CDATA[There is something about the phrase Non Functional Requirements that I don&#8217;t really like. It&#8217;s the Non bit which gets me &#8211; I think that word makes them feel unimportant and therefore there is no pressing need to explore how they will affect the system. I have seen on many projects teams procrastinating in defining [...]]]></description>
			<content:encoded><![CDATA[<p>There is something about the phrase <em><a title="Wikipedia: Non Functional Requirements" href="http://en.wikipedia.org/wiki/Non-functional_requirement" target="_blank">Non Functional Requirements</a></em> that I don&#8217;t really like. It&#8217;s the <em>Non</em> bit which gets me &#8211; I think that word makes them feel unimportant and therefore there is no pressing need to explore how they will affect the system. I have seen on many projects teams procrastinating in defining how the &#8220;NFRs&#8221; will affect what they are building &#8211; usually in the metrics around performance.</p>
<p>On my current project we have decided to appease my sensibilities and have called these <em><strong>Cross Functional Requirements</strong></em> to better express what they truly represent &#8211; requirements which cross all the functions we are building. So far the wording works &#8211; but we have only finished the 2nd week of inception.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-nfrs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pairing 101: Skills Matter</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/pairing-101-skills-matter/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/pairing-101-skills-matter/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 11:45:57 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=227</guid>
		<description><![CDATA[A few weeks ago, my good buddy Christian Blunden and myself presented at a London Geek Night. For us, it was quite fun and I hope people not only picked something up from it but also had a good time. The presentation was recorded and should be on skills matter so check it out if [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, my good buddy <a href="http://christianralph.blogspot.com/">Christian Blunden</a> and myself presented at a London Geek Night. For us, it was quite fun and I hope people not only picked something up from it but also had a good time. The presentation was recorded and should be on <a href="http://skillsmatter.com/podcast/java-jee/pairing-101">skills matter</a> so check it out if your interested (she says cringing at watching herself on video).</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/pairing-101-skills-matter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>As a user I want to Log In</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/as-a-user-i-want-to-log-in/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/as-a-user-i-want-to-log-in/#comments</comments>
		<pubDate>Wed, 20 May 2009 18:53:52 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=188</guid>
		<description><![CDATA[The classic log-in story is often the story that new-to-agile-ist assume you need to develop first. In fact, it is often the last story that should be developed.
The problem is that they see the order that stories should be developed in should mirror the process flow of the tasks that the customer needs to take; [...]]]></description>
			<content:encoded><![CDATA[<p>The classic log-in story is often the story that new-to-agile-ist assume you need to develop first. In fact, it is often the last story that should be developed.</p>
<p>The problem is that they see the order that stories should be developed in should mirror the process flow of the tasks that the customer needs to take; after all, you can&#8217;t buy an item without choosing what you want to buy and you can&#8217;t buy anything before you login. This might also be due to the stories revolving around the tasks the user needs to undertake instead of the goals they are trying to achieve.</p>
<p>Now,  if I was to build a classic shop-on-line website, the first story that I would start with would be to implement a page which accepts payment information and a Buy Now button in the middle of the page. What is the customer going to buy? The same product that every other customer will buy. Now, this does not seem to be that fantastic for the user &#8211; they don&#8217;t even have a choice in what they are buying, but this is actually the best place to start because it is not the <em>As a Customer I want to buy a book So that I can learn new stuff </em>story that we are implementing; it is the <em>As a Business Stakeholder I want customers to buy my products So that I can make a living </em>story. By defining our stories based on goals, and ordering the development based on what is more valuable, we can launch our site with only one story complete and still make money.</p>
<p>Now, lets go back to the beloved login story. One thing that I hate is a website which puts up a high barrier-to-entry before I can buy a product. At a real-life store, they don&#8217;t make me fill in a form to say who I am before I can buy my Big Mac meal; there is no real-world equivalent to the login functionality. What is the real reason that I as a customer needs to login? Where is the value? What is their goal? The next story in this area that you could play would be <em>As a Customer I want to view my purchse order in an email So that I can keep a record of the payment</em>. This story could just involve a text field where the user enters their email address if they wish to receive the email receipt (remember, back in the day, receipts from over-the-phone sales would be sent in the post). Again, we can go live with this and we are still not requiring the customer to login.</p>
<p>The final goal that summaries the customers experience is that<em> As a customer I would like the computer to do some work and remember their details So next time I make a purchase, I only need to place items in the basket and checkout</em>.  All this requires is the customers email address (a perfect URN by the way &#8211; why would you even think about having usernames???) and a password. Importantly, however, the gathering of this information does not need to occur before they purchase their items! It can happen at the end of the transaction, thereby allowing the customer to complete their goal (purchasing their items) without hinderence. </p>
<p>The customer&#8217;s goals are now met, and the business stakeholder&#8217;s goals were met in the very first story, it is only the marketers&#8217; goal of wanting to capture information about the customers on the site which has not been met. Usually marketting departments ask that the customers complete a 4 page registration form, in order for customers to register (<em>As a marketer I want to know information about our customers So that I can target our features to meet their needs</em>). But, what value or incentive is there for the customer to fill in this information? To appease both our market departments, and our customers, however, we could incentivise the customers by rewarding bonus points which go towards their next purchase for completing their registration form. But also importantly, this does not stop the customer from spending money on your site.</p>
<p>So, next time you go to add a login box on your site, think about what the customers true benefits are.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/as-a-user-i-want-to-log-in/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I don&#8217;t believe in signing up to stories for an iteration</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-signing-up-to-stories-for-an-iteration/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-signing-up-to-stories-for-an-iteration/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 11:23:16 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=153</guid>
		<description><![CDATA[If there is one thing that I hate about how a lot of Agile projects are run is the notion that you need to sign up to deliver certain stories/ a certain number of story points for an iteration. I find this to be detrimental on so many counts.
Firstly, if you don&#8217;t achieve the target then [...]]]></description>
			<content:encoded><![CDATA[<p>If there is one thing that I hate about how a lot of Agile projects are run is the notion that you need to sign up to deliver certain stories/ a certain number of story points for an iteration. I find this to be detrimental on so many counts.</p>
<p>Firstly, if you don&#8217;t achieve the target then you feel bad, and feel really pressured the next iteration as now the project is running late. This tends to effect junior/inexperienced/graduate developers more than their experienced colleagues; they feel the pressure and so they work late to finish stories or (as I have once witnessed) coming in over a weekend to make up some ground. The real problem with applying this pressure arbitrarily is that most teams do not do root-cause analysis to find out why you didn&#8217;t achieve said target and work out what is slowing the team down/how they can go faster*. </p>
<p>Secondly, if you do acheive the target, you generally do not increase the target for the next iteration which means that there is no chance for an s-shaped curve on the burn up graph (ie you don&#8217;t have the opportunity to go faster); and</p>
<p>Thirdly, when you achieve the target for the iteration, generally the next lot of stories are not ready, so you don&#8217;t have anything to work on and you tend to waste days. It also means that you are more likely to stall finishing the last stories (gas expands to fit the size of the room; developers expand the time it takes to complete a story to fit the time they have available)</p>
<p>Lean and KanBan offer an alternative to this approach: the backlog. Essentially, iterations are demarkations in time to allow you to reflect on your processes (yes, I know that in KanBan there are no iterations, and this reflection happens on an on going basis). To know what work needs to be developed for a day is all about prioritizing the top X stories (eg top 3 stories) in the backlog. That way, there are always X number of stories that have been analyzed and are ready to develop, the stories in development are the most valued stories (whether the value is to the business or to de-risk the project) and there is no bad pressure because you didn&#8217;t achieve what you set out to achieve. The only question that the team needs to be constantly asking and answering is:</p>
<blockquote><p>&#8220;What can we do to make us go faster?&#8221;</p></blockquote>
<p> </p>
<p>* A retrospective as I detailed <a href="http://sarahtaraporewalla.com/thoughts/agile/a-new-take-on-the-hot-air-balloon-retrospective/">here</a> may help in this case.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/i-dont-believe-in-signing-up-to-stories-for-an-iteration/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Notes from a brown bag session on Pair Programming</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/notes-from-a-brown-bag-session-on-pair-programming/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/notes-from-a-brown-bag-session-on-pair-programming/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 08:02:53 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=127</guid>
		<description><![CDATA[Pair programming may feel quite strange and frustrating to those new to it. (I guess it can feel strange and frustrating to those who have been doing for a while). I gave a brown bag session to a group who were just starting to embrace pairing to try and help them overcome some of their [...]]]></description>
			<content:encoded><![CDATA[<p>Pair programming may feel quite strange and frustrating to those new to it. (I guess it can feel strange and frustrating to t<a href="http://www.fuzzylizard.com/archives/2008/12/08/989/" target="_blank">hose who have been doing for a while</a>). I gave a brown bag session to a group who were just starting to embrace pairing to try and help them overcome some of their frustrations. Here are my notes from the session.</p>
<p>What are the concerns around pairing?</p>
<ul>
<li>working with an argumentative pair &#8211; someone who wants to argue with you all the time, and disagrees with any approach you come up with</li>
<li>keyboard hogs &#8211; the other person wants to snatch the keyboard away from me all the time</li>
<li>unequal domain knowledge &#8211; one person knows everything, one person knows nothing so it is frustrating for the know-all to keep explaining everything all the time, and when they don&#8217;t the person who knows &#8216;nothing&#8217; just tunes out.</li>
<li>differing styles</li>
<li>adds to the overhead &#8211; eg computer setup, time to bring someone up to speed on what is happening when you swap pairs frequently</li>
<li>I don&#8217;t have time to check my emails</li>
<li>there is no concept of &#8216;my computer&#8217;</li>
<li>you can&#8217;t get into &#8216;the zone&#8217; when pairing, like you can when you are working by yourself because you always are interacting with another person</li>
<li>too much time rotating pairs</li>
<li>physical environment  - room to work</li>
</ul>
<div>Why do we pair?</div>
<div>
<ul>
<li>Shared responsibility</li>
<li>Knowledge transfer/sharing</li>
<li>collective code ownership</li>
<li>reduce key person dependancy (increase bus factor)</li>
<li>better quality</li>
<li>increased focus on the job at hand</li>
</ul>
<div>How can we achieve it?</div>
<div>
<ul>
<li>Teamwork 
<ul>
<li>working together to solve the problem. </li>
<li>Both members remain engaged 100% of the teim. </li>
<li>Ask when you are not engaged - &#8221;You lost me, what are you doing now?&#8221;</li>
</ul>
</li>
<li>Communication
<ul>
<li>Toss a few leading questions into the mix. Some of the phrases I usually say are:</li>
</ul>
<ul>
<li> 
<ul>
<li>&#8220;Should we do it in this way?&#8221;</li>
<li>&#8220;Do you know what we are doing?&#8221;</li>
<li>&#8220;Tell me what you are thinking?&#8221;</li>
<li>&#8220;Just let me try this and then we can discuss it.&#8221;</li>
<li>&#8220;What do you think?&#8221;</li>
</ul>
</li>
</ul>
<ul>
<li>Think allowed &#8211; vocalise your thoughts, so you can bring your pair on the journey to the solution</li>
</ul>
</li>
<li>Pass the keyboard around</li>
<li>Break the story into small tasks and write them down on post-it notes when you start a story. By breaking the story you are working on into small tasks, you can focus your attention on one thing at a time. Your mind does not need to wander thinking about all the other steps to solving the problems, as you know that you will eventually work on them. It also helps with rotating pairs through the story, as they can easily see what has been done on the story, what needs to be done and what they should focus on. </li>
<li>KISS &#8211; Keep the solution and tests simple so there is less overhead when discussing complex solutions</li>
<li>On board new team members to bring them up to speed on the overall goal and design, so you do not need to repeat basic details when you work with them on a story.</li>
</ul>
<div>Different Styles of Pairing</div>
<div>
<ul>
<li>Ping pong &#8211; I write a failing test, You make it pass then write a failing test, I make it pass then write a failing test. Rinse and Repeat</li>
<li>Chessboard clock &#8211; this can either be achieved with an actual chessboard clock where every time you start touching the keyboard, you hit your part of the clock, when your partner touches the keyboard they hit their side of the clock, and you aim to keep the times on the clock equal. Or you timebox how long you will drive for, eg I drive for 10 mins, then you drive for 10 mins.</li>
<li>Inexperience partner drives &#8211; there is nothing like learning through your fingers, so let the inexperienced person drive. This style requires that the driver actually does a lot of work, and is not just a typist for the navigator. This works best if the inexperienced person can explain what they want to do, eg &#8220;I want to call some sort of repository for this value then I can go on.&#8221; so the experienced person can show where the file is.</li>
<li>2 keyboard and 2 mouse(s)</li>
<li>Doesn&#8217;t matter who &#8216;drives&#8217; &#8211; when you have two people experienced in pairing as both people do the design verbally, and the person at the keyboard just conveys the conversation to code (often the fastest typist)</li>
</ul>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/notes-from-a-brown-bag-session-on-pair-programming/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pair programming is just like flying a plane</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/pair-programming-is-just-like-flying-a-plane/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/pair-programming-is-just-like-flying-a-plane/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 22:34:52 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=146</guid>
		<description><![CDATA[I have been reading Malcom Gladwell&#8217;s Outliers, and in it he discusses the events which lead to plane crashes. Gladwell explores the plane crashes of Korean Airlines to demonstrate that cultural legacy is important to understand success factors. One interesting point he explores is the communication required in the cockpit between the captain and the [...]]]></description>
			<content:encoded><![CDATA[<p>I have been reading <a title="Outliers - Malcom Gladwell" href="(http://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell/dp/0316017922" target="_blank">Malcom Gladwell&#8217;s Outliers</a>, and in it he discusses the events which lead to plane crashes. Gladwell explores the plane crashes of Korean Airlines to demonstrate that cultural legacy is important to understand success factors. One interesting point he explores is the communication required in the cockpit between the captain and the co-pilot.</p>
<p>Interestingly the flight deck of large commercial planes, like the Boeing 747 is intended to be flown by 2 people and it works best when you have one person checking the other, or both willing to participate. &#8220;It&#8217;s .. clear that when you have two people operating the plane cooperatively, you will have a safer operation than if you have a single pilot flying he plane and another person who is simply there to take over if the pilot is incapacitated&#8221;. Apparently, and surprisingly, most crashes (of the Korean Airlines) occurred when the captain was piloting the plane (someone who has many hours of experience), as opposed to the co-pilot (who typically does not have as much experience). This is because if the senior captain sees something wrong that the co-pilot is doing, then he will issue a command to the co-pilot to correct the situation. However, if the co-pilot sees something wrong he will not issue a command to his superior officer as a command, and will either hint at or suggest a correction. It is clear that clear communication is the essential ingredient to correcting otherwise fatal sequence of events*.</p>
<p>Unfortunately for the crew and passengers aboard the fatal Korean Airline planes, Korea has a culture of high respect for authority expressed in both their customs and their language. So, the cultural forces behind the Korean co-pilots makes it nearly impossible for them to speak up and correct the captain, even when they know that the captain is in the wrong (read the book &#8211; the black box recordings are amazing). What turned Korean Airlines around? They realised that the problem was not to do with the experience of their pilots or the maintenance of the planes, but that it was this cultural force which was at fault. They hired some help, enforced English (which does not have an inbuilt respect for authority) as the only language which could be used in the company, and as a result helped the co-pilots have the confidence to speak up when there was a problem.</p>
<p>Now, don&#8217;t get me wrong &#8211; I find airline investigation to be truly fascinating (have you ever read about the lead up to the flight on the Challenger? It wasn&#8217;t just the O-rings fault). But the most interesting take-home for me was how the cockpit experience parallels pair programming.</p>
<p><a title="Pair Progamming" href="http://en.wikipedia.org/wiki/Pair_programming" target="_blank">Pair programming</a> is intended for 2 people, and works best when you have one person checking the other, or both willing to participate. It is clear that when you have two people working cooperatively you will have a safer (ie higher quality) software than if you have a single developer developing the work and another person who is simply there to take over. Pair programming works well when you have the less experienced developer at the keyboard flying the development, and the more experienced developer course correcting when the co-pilot makes a mistake. And just like the cultural forces that caused so many disasters for Korean Airline, the cultural forces of the development community leads to many pair programming sessions, crash-and-burning.</p>
<p>There are <a href="http://www.fuzzylizard.com/archives/2008/12/08/989/" target="_blank">many people out there </a>who only experience the forces that lead up to pair-programming disaster stories. It can be very dismissive of us to say that these people just don&#8217;t get it (and never will), or that they haven&#8217;t tried hard enough, but Gladwell has lead me to start believing that there is a cultural bias towards single programming. Take universities for example &#8211; you can be expelled for working collaboratively; individual results count, team work in assignments is often discouraged.</p>
<p>Korean Airlines managed to change their practices despite of their culture; I am confident that anyone who is willing to can change their practices to have a successful pair programming flight. The first step as always, is to acknowledge the problem.</p>
<p> </p>
<p>* Typically, plane crashes occur as a result of seven trivial malfunctions, which, individually is no problem but the combination of all those errors leads to disaster. Typically crashes occur when the weather is poor, when the plane is running late and when the pilot has been awake for more than 12 hours. 44% of the time two pilots have never flown together before. (page 184 Outliers Gladwell, M)</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/pair-programming-is-just-like-flying-a-plane/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Improvements to the usual stand up meetings</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/improvements-to-the-usual-stand-up-meetings/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/improvements-to-the-usual-stand-up-meetings/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 08:40:14 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=139</guid>
		<description><![CDATA[Stand-up meetings are a healthy part of the daily routine. They are a useful forum to keep everyone up to date with the happenings of the team, escalate any blockers that may have arisen and set direction and focus for the days activities.
However, in practice they can easily degrade to daily habits, where each person [...]]]></description>
			<content:encoded><![CDATA[<p><a title="XP Standup Meetings" href="http://www.extremeprogramming.org/rules/standupmeeting.html" target="_blank">Stand-up</a> <a title="Martin Fowler - We Stand to make it short" href="http://martinfowler.com/articles/itsNotJustStandingUp.html" target="_blank">meetings</a> are a healthy part of the daily routine. They are a useful forum to keep everyone up to date with the happenings of the team, escalate any blockers that may have arisen and set direction and focus for the days activities.</p>
<p>However, in practice they can easily degrade to daily habits, where each person talks, no one listens and nothing is accomplished. Observable signs that this is happening in your team:</p>
<ul>
<li>there is low energy &#8211; people walk away nonchalantly</li>
<li>the developers say &#8220;I worked on xyz story. Today I will work on xyz story. No Blockers&#8221; (<em>Yes I know &#8211; I can see the story board and we were all there when you picked it up</em>)</li>
<li>their pairs say &#8220;yeah, what he said&#8221;</li>
<li>the QAs say &#8220;I tested stuff yesterday, I will test stuff today&#8221;</li>
<li>after the meeting, a conversation ensues along the lines of &#8220;Oh, the builld&#8217;s not running. Hey everyone, I have just spent 20 mins looking at it and there&#8217;s something really wrong with the box as it doesn&#8217;t even respond to pings.&#8221; &#8220;Yes, I know. I have brought down the network for the moment to install the latest patch. I said so in the standup this morning.&#8221; </li>
</ul>
<p> </p>
<p>Needless to say, the standup is no longer a useful forum. The major problem with this style is that people tune out because no one is saying anything of value. They are usually repeating common knowledge (by stating on what they were working on, when the whole team can see that by the story wall).</p>
<p>At my current project, we faced a similar problem*. So, I changed the rules of our stand up.</p>
<h3>The new format</h3>
<ol>
<li>No one is to say anything in the format What I Did Yesterday; What I Will Do Today; Any Blockers. This format is scrapped, binned. </li>
<li>Instead, I only want you to tell the team what you think is valuable to them; what did you do or find yesterday that is of value sharing with the team; what do you know, that we need to know.</li>
<li>The only person allowed to be speak will be the person holding the speaking token.</li>
<li>If something has just been said that you feel you should to add to, answer or have question, all you need to do is signal for the token (hand gestures along the lines of &#8220;Pick me Pick me&#8221; will be rewarded). </li>
<li>If someone requests the token, the token-holder finishes the sentence and passes the token along to the requester.</li>
<li>Every member has a red card. If a discussion starts, and you are not interested in it, you raise your card. Two cards (dependent on the size of the team) and the conversation is immediately (mid-sentence) stopped and is taken offline.</li>
<li>When you have finished sharing, you throw the speaking token to someone who is not to your immediate left or right. </li>
<li>If you don&#8217;t feel you have anything of value to add, you can pass the token onto another person.</li>
<li>The standup does not remove the need for us to talk to each other throughout the day.</li>
</ol>
<h3>The Result</h3>
<p>Our meetings are quite high energy, high paced and highly informative. Everyone adds value and we all walk away from the meeting energised and ready for action. Our meetings allow for useful discussions to start, but also allows for a mechanism to control them if they are getting out of hand. If suddenly you find the same repeat offender does not have anything of value to add, that is feedback; perhaps the person is a little shy, perhaps they have been slacking off &#8211; either way, if they don&#8217;t feel like they can say anything of value now, what were they saying in the old method. Blockers are still talked about, as they usually have value. Also, having a cute throwable soft toy helps.</p>
<p><img class="aligncenter size-medium wp-image-140" title="hippygift-com_2033_1920275" src="http://sarahtaraporewalla.com/thoughts/wp-content/uploads/2009/01/hippygift-com_2033_1920275.gif" alt="" width="88" height="100" /></p>
<p> </p>
<p>* Actually, before we faced this problem, we had the problem where no one would start talking. The introduction of a <a title="Tony the Tiger" href="http://www.hippygift.com/medtiglilpee.html" target="_blank">speaking token </a> solved that problem.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/improvements-to-the-usual-stand-up-meetings/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>It is a truth (not so) universally acknowledged&#8230;</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/it-is-a-truth-not-so-universally-acknowledged/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/it-is-a-truth-not-so-universally-acknowledged/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 22:25:08 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=136</guid>
		<description><![CDATA[that an agile team in possession of good practices, must be in want of a better way of doing things.
]]></description>
			<content:encoded><![CDATA[<p>that an agile team in possession of good practices, must be in want of a better way of doing things.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/it-is-a-truth-not-so-universally-acknowledged/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A New Take on the Hot Air Balloon Retrospective</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/a-new-take-on-the-hot-air-balloon-retrospective/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/a-new-take-on-the-hot-air-balloon-retrospective/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 14:56:25 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=132</guid>
		<description><![CDATA[I am not a huge fan of the iteration-based retrospectives that people usually run. These are the retrospectives in the format where you write about

What We Did Well
What We Did Less Well and
What&#8217;s Puzzling Us

I find with these retrospectives, the same issues seem to crop up, with actions that don&#8217;t get resolved and nothing really [...]]]></description>
			<content:encoded><![CDATA[<p>I am not a huge fan of the iteration-based retrospectives that people usually run. These are the retrospectives in the format where you write about</p>
<ul>
<li>What We Did Well</li>
<li>What We Did Less Well and</li>
<li>What&#8217;s Puzzling Us</li>
</ul>
<p>I find with these retrospectives, the same issues seem to crop up, with actions that don&#8217;t get resolved and nothing really improves for the next iteration.</p>
<p>I think the main reason we should do iteration-based retrospectives is to focus on what will make us go faster next iteration, and what are our current impedances. The best retrospective &#8216;game&#8217; I have seen to support this is the hot air balloon/speed boat** analogy. This means that issues should not get raised which do not directly impact how fast we could potentially go. I have tried this exercise before, and have found that it was too broad a scope, and so not many new ideas came out***.</p>
<p>Yesterday, I tried a variant on the hot air balloon exercise, with really good results.</p>
<h3>The New Format</h3>
<ol>
<li>Place the stories of the iteration (stories that were completed, in QA, in development and ones not started) on a wall in a pseudo timeline</li>
<li>Group any &#8216;bug&#8217; cards around the stories to which they belonged (these &#8216;bugs&#8217; were issues that the QAs found which meant that a story could not be QA signed off and therefore needed more dev effort).</li>
<li>Describe the story on the wall (similar to the timeline game), to get everyone back into the mindset of when they were working on the stories. It is also useful to state the estimate for the story and the actual time it took to deliver.</li>
<li>Give the group time to write stickies for each story, with the focus on why they thought the story took longer to complete or was faster than expected. The idea is to explain the hot air balloon metaphor, and get them to focus their thoughts for each particular story. Essentially, I said to them &#8220;What was the magic sauce that made this story really quick and easy to do; and what was the crud that got in the way?&#8221;</li>
<li>Walk through each sticky note, identify themes, discuss and record any action items.</li>
</ol>
<h3>The Result</h3>
<p>The issues that we discussed highlighted problems that were not caught doing the usual style. The actions from the issues discussed directly corresponded with ways to improve the velocity of the team.</p>
<p>By turning the focus onto each story lifted the pressure of having to think generally out of the box, and focussed the teams effort to think about what was really the problem. This highlighted not only external problems, eg too many meetings, but also lead to an examination of the code base, eg It took me too long to add that line to the screen so I think that area of code needs a clean up.</p>
<p>All in all, this is an exercise that I will repeat.</p>
<p>** The narrative I give with the hot air balloon goes something along these lines. &#8220;The hot air balloon is like our velocity, it has the potential to go really high (fast) but the problem is two-fold. We have sandbags (impedances) which are currently actively slowing us down and we don&#8217;t have enough fire (which is trying to lift us up). So lets think about what in our project are our sandbags and what is our fire. What is slowing us down, and what could we do to go faster&#8221;. The speed boat has anchors in the water as impedances and an engine as fire.</p>
<p>***  Actually, I played this after weeks of the usual retrospectives defined above and most of the what we did well stickies were placed in the fire area, and the what we did less well were placed in the sand bags.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/a-new-take-on-the-hot-air-balloon-retrospective/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Surf&#8217;s Up meets Software Development</title>
		<link>http://sarahtaraporewalla.com/thoughts/agile/surfs-up-meets-software-development/</link>
		<comments>http://sarahtaraporewalla.com/thoughts/agile/surfs-up-meets-software-development/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 23:09:04 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Agile]]></category>

		<guid isPermaLink="false">http://sarahtaraporewalla.com/thoughts/?p=124</guid>
		<description><![CDATA[I have just finished watching the special features of Surf&#8217;s Up on the DVD and I was struck with a thought that software development is somewhat similar to making a movie, and if you allow me to draw the parallels, you can see that Surf&#8217;s Up was created in a very Agile way.

Surf&#8217;s Up was [...]]]></description>
			<content:encoded><![CDATA[<p>I have just finished watching the special features of <a title="IMDB - Surf's Up" href="http://www.imdb.com/title/tt0423294/" target="_blank">Surf&#8217;s Up</a> on the DVD and I was struck with a thought that software development is somewhat similar to making a movie, and if you allow me to draw the parallels, you can see that Surf&#8217;s Up was created in a very Agile way.</p>
<p style="text-align: center; "><img class="size-medium wp-image-125 aligncenter" title="Surf's Up DVD" src="http://sarahtaraporewalla.com/thoughts/wp-content/uploads/2008/12/surfsup.jpg" alt="Surf's Up DVD - created in an Agile way" width="240" height="240" /></p>
<p>Surf&#8217;s Up was created differently to most animated films <a title="IMDB - Surf's Up Trivia" href="http://www.imdb.com/title/tt0423294/trivia" target="_blank">[1]</a>. Traditionally, most movies are writen by a script writer, then handed to the actors who need to confine themselves within the lines of the script. In Surf&#8217;s Up however, the directors put a lot of focus on getting real genuine conversations from the actors. To aid this they did a few things.</p>
<p>First, the dialogue was recorded with all actors together in the booth; most animated films record the voices independently. Co-locating the actors meant that the reactions and interactions were genuine, not just something which had to be faked.</p>
<p>Also, the directors put alot of focus on letting the actors ad-lib their lines. While there was an overarching story they were telling, the specific details of the dialogue was left to the actors imagination. </p>
<p>Now, I hope you can see where I am going.</p>
<p>Recording the dialog with all the actors together is much like co-locating your delivery team. This has various benefits:</p>
<ul>
<li>the team quickly build up a rapport and their chemistry can be seen (or heard) on screen;</li>
<li>any changes to the script or subplots can be developed in-situ, and do not require dragging actors who have already recorded their parts back to the studio to fix the dialog for the new requirements (ie any changes to the requirements can easily be dealt with as the team is all together, working toward the goal simultaneously);</li>
<li>it could be cheaper/faster to record (develop) with everyone in the one place as you do not need to keep repeating the setup for each new actor who comes to record their part (actually, I am just guessing on this one, but you can see where I&#8217;m going).</li>
</ul>
<p>Letting the actors ad-lib their lines is analogous to getting developers to design their own code (hopefully through TDD/BDD/DDD). The architecture of the software is like the story they are telling, and the implementation details is like the dialogue in the script. By allowing the actors to improvise, the directors have allowed the actors to develop each character in a unique way, bringing their own personality to the foray. This meant that the actors were also responsible for steering the ship: an example is the cute, funny character of Arnold was apparently developed by <a title="Zooey Deschanel" href="http://www.imdb.com/name/nm0221046/" target="_blank">Zooey Deschanel</a> (who plays Lani) during one of the ad-lib sessions.  </p>
<p>Surf&#8217;s Up is a pretty cool movie, one which you can easily forget that you are actually watching animation. No doubt its success has something to do with the manner in which it was made.</p>
]]></content:encoded>
			<wfw:commentRss>http://sarahtaraporewalla.com/thoughts/agile/surfs-up-meets-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
