<?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>The Carbon Emitter &#187; xp</title>
	<atom:link href="http://blog.carbonfive.com/tag/xp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.carbonfive.com</link>
	<description>The blog of Carbon Five</description>
	<lastBuildDate>Mon, 23 Jan 2012 18:38:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Why We Are an Agile Shop</title>
		<link>http://blog.carbonfive.com/2011/11/22/agile-at-carbon-five/</link>
		<comments>http://blog.carbonfive.com/2011/11/22/agile-at-carbon-five/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 17:30:20 +0000</pubDate>
		<dc:creator>Christian Nelson</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[extreme programming]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.carbonfive.com/?p=5551</guid>
		<description><![CDATA[Last week we had a lively discussion about Agile development at Carbon Five. It was fun telling the story of how we got started with Agile nearly a decade ago. We discussed how it helps us deliver value and deal &#8230; <a href="http://blog.carbonfive.com/2011/11/22/agile-at-carbon-five/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last week we had a lively discussion about Agile development at Carbon Five. It was fun telling the story of how we got started with Agile nearly a decade ago. We discussed how it helps us deliver value and deal with the challenges we face as a services company. Here&#8217;s a summary of that conversation&#8230;</p>
<p><strong>How does Agile help us to do better work for our clients?</strong></p>
<p>To answer that question, I think it&#8217;s important to reflect on what makes building a product hard. Here&#8217;s a clue: <em>Everything</em>.</p>
<p><span id="more-5551"></span></p>
<p>There are technical challenges, but those are the least of your worries in practically every case (especially early on). There are product questions: who are you building for? what features do your customers really want? how can we validate our hunches in a meaningful way? what incarnation of those features will be both useful and a delight to use? There&#8217;s time pressure. And to add fuel to the fire, the team is made of people. You know&#8230; with ideas, egos, personalities and feelings. It&#8217;s amazing successful products happen, period.</p>
<p>We wanted a process that&#8217;s effortless when it&#8217;s working awesome while also giving us signals when something is broken. We&#8217;re not interested in process just for process&#8217;s sake. It turns out that Agile can help navigate these challenges and gives us pretty clear warning signals.</p>
<h2>At the Core</h2>
<p>In trying to distill out the most important parts of our Agile process, I came up with my take on the essential ingredients. I&#8217;m not saying other aspects aren&#8217;t important too, just that these make a strong foundation.</p>
<ul>
<li>Small units of work</li>
<li>Optimize for value</li>
<li>Iteration</li>
<li>Product owner involvement</li>
<li>Feedback</li>
<li>Honesty and trust</li>
</ul>
<p>If any one of these is missing or broken, the project has a much higher risk of running into trouble. That doesn&#8217;t necessarily mean complete failure, but it does mean the project and overall experience will fall short of its potential.</p>
<p><strong>Small units of work</strong> keep the team focused and allow for greater flexibility when planning. We write user stories and every one of them captures single workflow framed from the user&#8217;s perspective. A story should be whole, meaning it delivers value to the user on its own. Stories normally take a couple of minutes to a couple of days to deliver. When they&#8217;re small it&#8217;s easy to move them around and make tactical decisions during planning. It&#8217;s also easier to avoid needless yak-shaving when the stories are small.</p>
<p>Small units of work aren&#8217;t enough, they must deliver <strong>Value</strong>. We typically measure value in terms of user-facing functionality. We know that some amount of infrastructure, architecture, meetings, etc needs to happen to build a product. However, that&#8217;s not what first draws a customer to a product. It has to solve a customer&#8217;s problem. Getting everyone on the same page about value is crucial, otherwise folks may be optimizing for different things.</p>
<p>Software products evolve over time through the addition of new features, the enhancement of existing features, and removal of unused features. It&#8217;s inherently <strong>Iterative</strong>. We start the process of iteration from week one. By the time a product sees its first ray of light, the team has executed the process of planning, designing, building, and deploying many times. The structure of the process is in place and the team has enough experience with it that it can be repeated confidently.</p>
<p>Knowing that there&#8217;s always an opportunity to iterate on a feature allows us to build the right-sized version of the feature for where we are in the lifecycle of the product. Not every feature needs to have all of the bells and whistles when it&#8217;s born. The time saved can be spent on something that is more valuable.</p>
<p>Every one of our projects has a <strong>Product Owner</strong> who&#8217;s part of the client team. Our goal is to guide and empower the product owner so that they can direct the team&#8217;s focus on what&#8217;s important. Some product owners are very involved and others minimally so. The low bar of involvement includes two important activities: prioritization of stories and acceptance of the stories once they&#8217;re complete. Without these, there&#8217;s no one at the helm and the chance that the client isn&#8217;t going to be happy with the engagement goes up a ton.</p>
<p>There&#8217;s internal and external <strong>Feedback</strong>. <em>External</em> feedback on the product can be collected via a wide array of techniques. Until ideas are validated by customers, they&#8217;re just assumptions. Building features on top of untested assumptions drives up the chance that we&#8217;re building a dud. It might be high-quality code with an extensive set of automated tests, but who cares if no one wants to use it. Building a product without integrating external feedback is like betting everything on your first hand of poker when you haven&#8217;t yet learned the rules.</p>
<p><em>Internal</em> feedback comes from the team and improves the process itself. Reflecting on how it&#8217;s going and making changes to better suit the reality on the ground is critical to keeping the process a good fit throughout the lifetime of the product. Otherwise, the process starts getting in the way when things are going awesome or it starts failing to give signals when it should.</p>
<p>It should go without saying: <strong>Transparency and trust</strong> are key to building a team that can overcome the challenges of building a product. If there&#8217;s bad news, we want to deliver it early so that we&#8217;re in the best position to do something about it and reap the benefits. Without trust, it&#8217;s hard to stay psyched about the people with whom you&#8217;re working. When every action comes from a place of honesty and your intentions true, trust grows naturally.</p>
<h2>Signals</h2>
<p>Here are a couple of the common signals that suggest something&#8217;s up:</p>
<p><strong>Low velocity</strong> &#8211; Velocity is the rate at which the team is completing stories that deliver user-facing value. Really low velocity can be a sign that stories are too big, there are inefficiencies in how work gets done, or the team is spending a lot of time on &#8220;infrastructure&#8221;.</p>
<p><strong>Erratic velocity</strong> &#8211; Often the result of inconsistent planning. When the backlog is well thought out, things move fast. When the team gets to stories that are poorly written or vetted, productivity grinds to a halt.</p>
<p><strong>Slow acceptance</strong> &#8211; The product owner isn&#8217;t providing the team with the feedback it needs to know it&#8217;s doing a good job. Sure, developers move on to the next story, but they may be building on building blocks that miss the mark. It can be a real drag on morale and velocity.</p>
<p><strong>Big bug fix session before a release</strong> - Rather than finding and fixing bugs continuously, the team is delivering stories that are buggy. That debt has to be paid down before the software gets into the hands of users. This creates a false sense of velocity which is knocked down periodically before a release.</p>
<p>Others: Running out of stories, stories are frequently blocked, need for big refactors.</p>
<p>The more experience you have the easier it is to pick up on the signals and figure out what to do about them.</p>
<h2>What about the Developer Practices?</h2>
<p>I&#8217;m leaving developer practices out of this conversation deliberately. Testing, continuous integration, pairing, sustained schedule, etc are all second nature for us. There&#8217;s enough content there for a another article (or several).</p>
<h2>Conclusion</h2>
<p>My experience has shown that if the process includes the above components, we&#8217;re able to rapidly build valuable features. When something isn&#8217;t right and we&#8217;re being perceptive, it becomes apparent quickly and we&#8217;re able to reflect and make the changes necessary to fix the problem. In the end, Agile lets us welcome feedback that inspires course correction while also making it really hard to overlook issues when they come up.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.carbonfive.com/2011/11/22/agile-at-carbon-five/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Recipe for 5 Whys with an Agile Software Team</title>
		<link>http://blog.carbonfive.com/2010/01/26/recipe-for-5-whys-with-an-agile-software-team/</link>
		<comments>http://blog.carbonfive.com/2010/01/26/recipe-for-5-whys-with-an-agile-software-team/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:53:33 +0000</pubDate>
		<dc:creator>Andy Peterson</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[rapid development]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.carbonfive.com/?p=818</guid>
		<description><![CDATA[5 Whys is a great way to get at the root of quality problems. On my last three projects, when I felt like code quality was dropping, I ran a &#8220;5 Whys&#8221; session. I have found it adds variety, solves &#8230; <a href="http://blog.carbonfive.com/2010/01/26/recipe-for-5-whys-with-an-agile-software-team/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>5 Whys is a great way to get at the root of quality problems. On my last three projects, when I felt like code quality was dropping, I ran a &#8220;5 Whys&#8221; session. I have found it adds variety, solves a very specific problem, and plugs right in as an alternative to an <a href="http://blog.carbonfive.com/2009/12/agile/recipe-for-simple-agile-retrospectives">agile reflection</a>.</p>
<p>It&#8217;s not in every agile software team&#8217;s bag of tricks. Asking around our fairy savvy office, I discovered it&#8217;s far from universal. In the <a href="http://www.versionone.com/whitepapers.asp">&#8220;State of Agile&#8221; report from Version One</a>, which includes survey results from 2500 software developers, it wasn&#8217;t mentioned. Since I haven&#8217;t seen it show up that much in other agile writings, I thought I&#8217;d share my experiences here.<span id="more-818"></span></p>
<p><strong>What is &#8220;5 Whys&#8221;?</strong> I picked up &#8220;5 Whys&#8221; from the lean software movement, which sprang from Toyota manufacturing.  You can read about its history on <a href="http://en.wikipedia.org/wiki/5_Whys">wikipedia</a>, but it&#8217;s pretty simple: at the end of the assembly line, when a widget comes out with a problem, you stop the line and ask &#8220;Why?&#8221; Whatever the reason, you ask the &#8220;Why?&#8221; again. Repeat at least 5 times. The goal is to discover the &#8220;root cause&#8221; of the defect, and fix the root cause, not just some symptom. Wikipedia has a good example around car repair. Here&#8217;s a software example:</p>
<blockquote><p>1. Why did Sheryl say the sign-up flow was broken?<br />
<em>A: Because she was trying to sign up a second time. Duh.</em><br />
2. Yeah, but why did the flow break if the user is already signed up?<br />
<em>A: It&#8217;s a bug. We didn&#8217;t have a test case for that.</em><br />
3. Why didn&#8217;t we have a test case for it?<br />
<em>A: I just didn&#8217;t think of it.</em><br />
4. Why didn&#8217;t you think about it?<br />
<em>A: The story seemed easy&#8211; I guess I didn&#8217;t think it through.</em><br />
5. Why do you think you didn&#8217;t think it through?&#8221;<br />
<em>A: I guess I was working alone and was in a hurry.</em><br />
&#8230;</p></blockquote>
<p>Obviously you don&#8217;t have ask &#8220;Why?&#8221; exactly five times, but that does seem to be a pretty good number. The point is you start articulating the behaviors and procedures that cause the problems.</p>
<p><strong>Taking It for a Spin. </strong> I&#8217;ve come up with exercise for agile software teams.  Like I mentioned, when quality drops below your comfort level, give it a try:</p>
<ol>
<li>(2 minutes) Make a list of the most recent bugs you&#8217;ve uncovered. I&#8217;ve found that the last 10 is usually enough&#8211; if not too much. You can put these on a white board, index cards or a wiki page&#8211; all will work.</li>
<li>(2 minutes) Prioritize them based on the ones you want to talk about. Which caused the most embarrassment or cost? You usually only have energy to talk about 5 or 6 of them.</li>
<li>(15 minutes) For each bug, ask &#8220;Why did this happen?&#8221; Then, probe deeper until you can&#8217;t get much further. Write the answers down where everyone can see.</li>
<li>(5 minutes) When you&#8217;re done with all the bugs (or out of time), circle common root causes.</li>
<li>(10 minutes) Brainstorm ways to mitigate or eliminate the root causes. Come of with one or two SMART goals for the team.</li>
</ol>
<p>Some of the root causes we&#8217;ve gotten to recently:</p>
<ul>
<li> we didn&#8217;t pair on hard features</li>
<li> we didn&#8217;t ask for clarifications on the requirements</li>
<li> one engineer didn&#8217;t understand the intent behind the code</li>
<li> nobody looked at the app on Internet Explorer 6</li>
</ul>
<p>Just like in agile reflections, the changes made coming out of these meetings stick with the team. During one session, the developers decided that there were just too many mistakes that someone else would have easily caught&#8211; so they always needed two sets of eyes on every checkin. I&#8217;d advocated this before, but it was never applied consistently. To my surprise though, after the reflection, everyone was  disciplined about this policy&#8211; and our quality was much better.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.carbonfive.com/2010/01/26/recipe-for-5-whys-with-an-agile-software-team/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile Modeling Techniques for Story Writing</title>
		<link>http://blog.carbonfive.com/2009/03/12/agile-modeling-techniques-for-story-writing/</link>
		<comments>http://blog.carbonfive.com/2009/03/12/agile-modeling-techniques-for-story-writing/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 16:48:45 +0000</pubDate>
		<dc:creator>Rob Pak</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[Software Design]]></category>
		<category><![CDATA[uml]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.carbonfive.com/?p=431</guid>
		<description><![CDATA[At Carbon Five, all our projects begin with &#8216;customer facing&#8217; meetings focused around determining scope and expectations. A core component of these early meetings involves one or more story writing sessions. The end goal of story writing sessions is to &#8230; <a href="http://blog.carbonfive.com/2009/03/12/agile-modeling-techniques-for-story-writing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">At Carbon Five, all our projects begin with &#8216;customer facing&#8217; meetings focused around determining scope and expectations. A core component of these early meetings involves one or more story writing sessions. The end goal of story writing sessions is to have most <a href="http://en.wikipedia.org/wiki/User_story">user stories</a> in a project documented (i.e. in <a href="http://www.pivotaltracker.com">Pivotal Tracker</a>) regardless of whether you have a requirements document or not. Story writing sessions are informal and conversational in nature, where information from customers are digested by a Team Lead and converted into stories. Most of the time, I compile user stories as a linear list in Tracker (displayed on the wall using a projector) while discussing functionality with a customer. However, sometimes customers have a difficult time ‘connecting the dots’ because of the linear nature of a list.       </p>
<p class="MsoNormal">On those occasions, I supplement my list in Tracker with another technique for capturing user stories. It involves modeling using a <a href="http://en.wikipedia.org/wiki/List_of_UML_tools">UML IDE</a>. Primarily, I use <a href="http://en.wikipedia.org/wiki/Activity_diagram">Activity Diagrams</a> because they capture behavior using ‘actions&#8217; and allow for flow. Because activity diagrams are essentially flow charts, they provide a simple comprehension mechanism for all customers regardless of their technical background. I usually display my desktop in the conference room using a projector and interactively add elements to the diagram as I receive customer input. For demonstrating modeling techniques, I will use a &#8216;Music Store&#8217; web application as an example.</p>
<p class="MsoNormal"><strong>Summary of Steps:</strong></p>
<ol style="margin-top:0;" type="1">
<li class="MsoNormal">Create an Activity      Diagram from a High-Level Functional Requirement.</li>
<li class="MsoNormal">Capture Customer Input for Identified Functional Requirement.</li>
<li class="MsoNormal">Model Flow for Activity, Link Actions with Diagram Elements.</li>
<li class="MsoNormal">Aggregate Similar Actions to Separate Activity.</li>
<li class="MsoNormal">Convert Activity Diagram into <a href="http://en.wikipedia.org/wiki/User_story">User Stories</a>.</li>
<li class="MsoNormal">Repeat Steps until all Functional Requirements are Exhausted.</li>
</ol>
<h3 class="MsoNormal">Step 1: Create an Activity Diagram from a High-Level Functional Requirement</h3>
<p>Start      with a known high-level functional requirement and create an Activity diagram. When starting, I will identify a large chunk of functionality that I know to be required for the project and use that as a discussion point with the audience. For my sample Music Store project, I would choose &#8216;Browsing the Inventory&#8217; as a large piece of functionality. At this point, the audience might begin to shout out other large pieces of functionality (i.e. &#8216;Customers can create accounts&#8217;, &#8216;Employees can add to inventory&#8217;). If this occurs, I like to create empty Activity diagrams named appropriately. These large pieces of functionality will eventually be decomposed into smaller, more manageable, Activities and Actions.</p>
<p> </p>
<p><div id="attachment_508" class="wp-caption aligncenter" style="width: 395px"><a href="http://carbonfivecommunity.files.wordpress.com/2009/03/browsing-the-inventory-121.gif"><img class="size-medium wp-image-508" title="High-Level Functional Requirement as an Activity" src="http://carbonfivecommunity.files.wordpress.com/2009/03/browsing-the-inventory-121.gif" alt="" width="385" height="252" /></a><p class="wp-caption-text">High-Level Functional Requirement as an Activity</p></div></p>
<h3>Step 2: Capture Customer Input for Identified Functional Requirement</h3>
<p>Gather input from the audience regarding this Activity / functional requirement and capture pertinent information as Actions. Essentially, what you are trying to do here is decompose the larger &#8216;Browsing the Inventory&#8217; functional requirement into smaller ones. Make an attempt to name each of the Actions with story-like syntax (i.e. ‘As a &lt;role&gt; I can &lt;result&gt; so that &lt;benefit&gt;’). The goal of this step is to create a catalog of smaller functional requirements so that you can start modeling flow.</p>
<p><div id="attachment_509" class="wp-caption aligncenter" style="width: 571px"><a href="http://blog.carbonfive.com/wp-content/uploads/2010/12/browsing-the-inventory-221.gif"><img class="size-medium wp-image-509 " title="Capturing Smaller Functional Requirements as Actions" src="http://blog.carbonfive.com/wp-content/uploads/2010/12/browsing-the-inventory-221.gif" alt="" width="561" height="324" /></a><p class="wp-caption-text">Capturing Smaller Functional Requirements as Actions</p></div></p>
<h3>Step 3: Model Flow for Activity, Link Actions with Diagram Elements</h3>
<p>Start      modeling flow for this Activity, linking Actions with other diagram      elements. All Activities must have a start as well as an end point. I model my Activities so that my flow is complete. This ensures that all known paths have been captured. This step is crucial in capturing all known functionality for the high-level requirement.</p>
<p>Remember that this is an interactive step with the audience. The audience / customer will provide input as to the flow of the Activity from Action to Action.</p>
<p><div id="attachment_510" class="wp-caption alignnone" style="width: 741px"><a href="http://blog.carbonfive.com/wp-content/uploads/2010/12/browsing-the-inventory-final21.gif"><img class="size-medium wp-image-510" title="Adding Flow to Activity" src="http://blog.carbonfive.com/wp-content/uploads/2010/12/browsing-the-inventory-final21.gif" alt="Adding Flow to Activity" width="731" height="439" /></a><p class="wp-caption-text">Adding Flow to Activity</p></div></p>
<h3>Step 4: Aggregate Similar Actions to Separate Activity</h3>
<p>If the diagram begins to flow outside of your viewable area, this is an indicator for breaking out one or more actions into a separate Activity. Several actions can be converted into one abstract action that encompasses all the functionality provided by all those actions. In the figure in step 3, the Action &#8216;Purchase an Item&#8217;, was created to represent another Activity diagram. The separate Activity diagram that I created was named &#8216;Purchasing an Item&#8217; and contains the detailed flow for that functionality.</p>
<p>This step is reliant on the Tech Lead&#8217;s skill to identify similar areas of responsibility within the activity. </p>
<h3>Step 5: Convert Activity Diagram into User Stories</h3>
<p>After one Activity diagram is fairly complete, begin entering them into Tracker as <a href="http://en.wikipedia.org/wiki/User_story">Stories</a>. Each Action should be converted into a user story using a consistent syntax (i.e. ‘As a &lt;role&gt; I can &lt;result&gt; so that &lt;benefit&gt;’).</p>
<p> </p>
<p><div id="attachment_515" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.carbonfive.com/wp-content/uploads/2010/12/convert2stories21.png"><img class="size-medium wp-image-515 " title="convert2stories" src="http://blog.carbonfive.com/wp-content/uploads/2010/12/convert2stories21.png" alt="Convert Action elements into User Stories" width="300" height="180" /></a><p class="wp-caption-text">Convert Action elements into User Stories</p></div></p>
</div>
<div class="mceTemp">
<p><div id="attachment_516" class="wp-caption aligncenter" style="width: 514px"><a href="http://blog.carbonfive.com/wp-content/uploads/2010/12/icebox21.png"><img class="size-medium wp-image-516 " title="icebox" src="http://blog.carbonfive.com/wp-content/uploads/2010/12/icebox21.png" alt="User Story list with Activities as Milestones" width="504" height="370" /></a><p class="wp-caption-text">User Story list with Activities as Milestones</p></div></p>
<p> </p>
<h3>Step 6: Repeat Steps until all Functional Requirements are Exhausted</h3>
<p>Steps 1-5 must be repeated until all high-level functional requirements have been modeled as Activities during discussion. In the end, I will have a catalog of Activity diagrams. In the figure below, a Package Diagram displays all the Activity Diagrams that I have modeled. I like to use each of the Activities as a milestone during planning. This may or may not be ideal depending on how granular your functional requirements are.</p>
<p><div id="attachment_513" class="wp-caption aligncenter" style="width: 221px"><a href="http://carbonfivecommunity.files.wordpress.com/2009/03/milestones21.gif"><img class="size-full wp-image-513 " title="milestones" src="http://carbonfivecommunity.files.wordpress.com/2009/03/milestones21.gif" alt="Inventory of Activities as Milestones" width="211" height="298" /></a><p class="wp-caption-text">Package Diagram: Inventory of Activities as Milestones</p></div></p>
<p class="MsoNormal"> </p>
<h3 class="MsoNormal">Conclusion</h3>
<p class="MsoNormal">There are many arguments against modeling in the agile communities, so it is important to view modeling as being supplemental to the process. In the end, our models are used to aid in the process of conveying and gathering information with the customer. Some other benefits include:</p>
<ul>
<li>The diagrams can serve as a documentation deliverable</li>
<li>Interactive modeling along with the diagrams, which serve as a visual aid, improves customer comprehension of our software development process</li>
<li>This is a great way to capture requirements when none exist</li>
<li>The Activity diagram allows us to write stories in a format that follows an accompanied wireframe (if available)</li>
<li>User roles can be added to Activity diagrams as swimlanes (partitions). This aids in separating functionality by use case</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.carbonfive.com/2009/03/12/agile-modeling-techniques-for-story-writing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

