<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Agile Web Operations</title>
	
	<link>http://www.agileweboperations.com</link>
	<description>Helping web developers and operations bridge the deployment gap</description>
	<lastBuildDate>Tue, 10 Nov 2009 06:06:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
<link>http://www.agileweboperations.com</link>
<url>http://www.agileweboperations.com/favicon.ico</url>
<title>Agile Web Operations</title>
</image>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/agileweboperations" type="application/rss+xml" /><feedburner:emailServiceId>agileweboperations</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Simulating a Scrum And a Lean Project In The Classroom</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/wLVZZDZyNQI/</link>
		<comments>http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 06:06:59 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[agile course]]></category>
		<category><![CDATA[agile training]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1737</guid>
		<description><![CDATA[
I will continue my course about agile methodologies at the University of Augsburg with both a Scrum and a Lean project simulation. The Scrum simulation will introduce the students to concepts like User Stories, Backlog, Iteration, etc.
After doing lots of Gantt Charts, Use Case Diagrams etc. in the waterfall simulation, it&#8217;s time now to break [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li><li><a href='http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Waterfall Project In The Classroom'>Simulating a Waterfall Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/kanban-for-lean-project-management-with-agilezencom/' rel='bookmark' title='Permanent Link: Kanban for Lean Project Management with agilezen.com'>Kanban for Lean Project Management with agilezen.com</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/" title="Permanent link to Simulating a Scrum And a Lean Project In The Classroom"><img class="post_image alignleft" src="http://farm1.static.flickr.com/23/24658003_b54b3df784_m.jpg" width="240" height="180" alt="by Kiwi Flickr" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fsimulating-scrum-lean-projects-in-the-classroom%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fsimulating-scrum-lean-projects-in-the-classroom%2F" height="61" width="51" /></a></div><p>I will continue my <a href="http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/">course about agile methodologies</a> at the University of Augsburg with both a Scrum and a Lean project simulation. The Scrum simulation will introduce the students to concepts like User Stories, Backlog, Iteration, etc.<br />
After doing lots of Gantt Charts, Use Case Diagrams etc. in the <a href="http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/">waterfall simulation</a>, it&#8217;s time now to break down the requirements into small and independent User Stories. The User Stories shall then be sorted by priority: The Backlog comes into existence.<br />
<span id="more-1737"></span></p>
<h3>Iterations</h3>
<p>Now the teams will have to do a planning game: Estimate the most important stories (enough of them to be able to fill a first iteration) and commit to an iteration goal. The main target here is to come up with a releasable piece of (simulated) software. We&#8217;ll use the same technique as in the waterfall simulation: Implementation and testing of user stories will happen with pseudo code on cards and paper prototypes of UI screens. After a fixed time, I&#8217;ll ask the teams to demo their working functionality.</p>
<h3>Retrospectives</h3>
<p>After each iteration I&#8217;ll run a short retrospective with the teams. They should be able to learn quickly to improve the coming iterations. I&#8217;ll ask them to address at least one impediment they found in the previous round within the current iteration. Let&#8217;s see how this goes <img src='http://www.agileweboperations.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h3>End Of The Scrum Simulation</h3>
<p>While I won&#8217;t introduce every Scrum concept in depth (I&#8217;ll skip the Product Owner for example), the students should get a good feeling about what it means to get something workable out of every iteration and how retrospectives help for quick learning. I&#8217;m curious how the results will differ from the previous waterfall simulation. Will the students really come up with more working features? Will they feel more in control and more productive? Let&#8217;s see&#8230;</p>
<h3>Simulating a Lean Development Project</h3>
<p>The third, and final, simulation will be Lean. Instead of working in iterations, the team will use a <a href="http://www.agileweboperations.com/kanban-vs-iterative-development/">Kanban</a> Board and try to get stories done as fast as possible. In the beginning, I&#8217;ll let the team start without any WIP (work in progress) limits. I can imagine, that the teams will stall &#8211; not being able to finish a single story in a given time. Then I&#8217;ll introduce the WIP limits and the flow should become smoother.</p>
<h3>Wrap Up</h3>
<p>After running all three simulations: Waterfall, Scrum and Lean, I&#8217;ll do a final retrospective including all three approaches. What were the experiences of the team? Where did they got done most stories? Of course, we&#8217;ll take the learning curve for the basic techniques (like writing and interpreting pseudo code and UI paper prototypes, formulating user stories, etc) into account.</p>
<p>What do you think? Will I be able to show the various effects we know from the real world in a classroom setting? Let me know in the comments!</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li><li><a href='http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Waterfall Project In The Classroom'>Simulating a Waterfall Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/kanban-for-lean-project-management-with-agilezencom/' rel='bookmark' title='Permanent Link: Kanban for Lean Project Management with agilezen.com'>Kanban for Lean Project Management with agilezen.com</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=wLVZZDZyNQI:kg4pJoEkTew:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=wLVZZDZyNQI:kg4pJoEkTew:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=wLVZZDZyNQI:kg4pJoEkTew:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=wLVZZDZyNQI:kg4pJoEkTew:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=wLVZZDZyNQI:kg4pJoEkTew:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=wLVZZDZyNQI:kg4pJoEkTew:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/wLVZZDZyNQI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/</feedburner:origLink></item>
		<item>
		<title>Back to the roots: Bridging the Deployment Gap</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/oRgjpefufyU/</link>
		<comments>http://www.agileweboperations.com/devopsdays-2009/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 19:45:16 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[Web Development & Operations]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[build pipelines]]></category>
		<category><![CDATA[coding dojo]]></category>
		<category><![CDATA[continuous deployment]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[cucumber-nagios]]></category>
		<category><![CDATA[kanban]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1722</guid>
		<description><![CDATA[Matthias and I started this blog over a year ago because we had first-hand experiences with the rift between developers and sysadmins. We knew this was a lose-lose situation not only for those directly involved, but the companies they were working for as well. We&#8217;ve described many real-life examples of how to overcome this rift, [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/new-conference-on-agile-system-administration-devopsdays-2009/' rel='bookmark' title='Permanent Link: New Conference On Agile System Administration: Devopsdays 2009'>New Conference On Agile System Administration: Devopsdays 2009</a></li><li><a href='http://www.agileweboperations.com/behavior-driven-ops-kanban-vs-scrum-and-a-new-upcoming-monitoring-and-trending-tool/' rel='bookmark' title='Permanent Link: Behavior Driven Ops, Kanban vs. Scrum and a new upcoming Monitoring and Trending Tool'>Behavior Driven Ops, Kanban vs. Scrum and a new upcoming Monitoring and Trending Tool</a></li><li><a href='http://www.agileweboperations.com/system-configurations-code-revisions-continuous-integration-ftw/' rel='bookmark' title='Permanent Link: System Configurations + Code Revisions = Continuous Integration FTW!'>System Configurations + Code Revisions = Continuous Integration FTW!</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdevopsdays-2009%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdevopsdays-2009%2F" height="61" width="51" /></a></div><p><a href="http://www.flickr.com/photos/ackerson/4069476070/in/photostream"><img alt="" src="http://farm3.static.flickr.com/2609/4069476070_565e1b987b_m.jpg" class="alignright" width="240" height="180" /></a>Matthias and I started this blog over a year ago because we had first-hand experiences with the rift between developers and sysadmins. We knew this was a lose-lose situation not only for those directly involved, but the companies they were working for as well. We&#8217;ve described <a href="http://www.agileweboperations.com/what-developers-want/">many</a> <a href="http://www.agileweboperations.com/dev-and-ops-cooperation/">real-life</a> <a href="http://www.agileweboperations.com/the-12-principles-behind-the-agile-manifesto-adapted-to-web-operations/">examples</a> of how to overcome this rift, but were never sure how these ideas were resonating out there with our fellow colleagues. How many developers had moved into the operations realm? How many sysadmins knuckled down and wrote end-user code in a pinch?<br />
<span id="more-1722"></span><br />
Enter <a href="http://twitter.com/patrickdebois">Patrick Debois</a> and <a href="http://devopsdays.org/">devopsdays</a>. What surprised me the most was the overwhelming number of sysadmins here who really understood the importance of agile development in beating the competition. Instead of blocking new features from being deployed, they actively work with the development teams to ensure timely, high-quality releases. <a href="">Chris Read&#8217;s</a> presentation of <a href="http://bit.ly/1iESC4">Continuous Integration, Build Pipelines and Continuous Deployment</a> demonstrated a boatload of processes to help bridge the deployent gap.</p>
<p>As I am slowly running out of Pingdom checks, <a href="http://twitter.com/auxesis">Lindsey Holmwood&#8217;s</a> live demo of Cucumber-Nagios was especially interesting. As a developer, I would like to know immediately if the application changes I&#8217;ve made are somehow wiping out any existing functionality. And, of course, as a sysadmin I don&#8217;t want to be woken up at 2am, figure out exactly what&#8217;s wrong and rollback to the last known working revision. Cucumber adds a ton more flexibility to your acceptance tests and the Nagios plugin integrates perfectly with our existing monitoring solution. Additionally, <a href="http://twitter.com/lordcope">Stephen Nelson-Smith</a> has already done a post-conference, in-depth blog post on the above topic under the title <a href="http://agilesysadmin.net/cucumber-nagios">Intelligent Monitoring</a>.</p>
<p>How in the world can operations folks take advantage of agile processes in their day-to-day business? Scrum is too time consuming and XP is to resource intensive. <a href="http://blog.crisp.se/mattiasskarin/">Mattias Skarin</a> gave a real-world example of how he helped an operations team move to Kanban &#8211; an endeavor that was so successful, the Ops team is now officially integrated into the Dev team proper. There were some excellent tidbits in his presentation <a href="http://blog.crisp.se/mattiasskarin/files/slides/introducing_kanban_in_operations.pdf">Introducing Kanban in Operations</a> that I can&#8217;t wait to try out myself.</p>
<p>The <a href="http://en.wikipedia.org/wiki/Open-space_meeting">Open Spaces</a> were a first for me, but I had fun excercising the &#8220;Law of Two Feet&#8221;. Too bad this can&#8217;t be applied more often to everyday meetings. <a href="http://twitter.com/scyldinga">Adrian Silva&#8217;s</a> idea for Admin Coding Dojos is long overdue and I hope he is able to successfully get this ball rolling down in Spain &#8211; lemme know how it works out for you, Adrian! Finally, I&#8217;d like to thank <a href="http://twitter.com/marcelwegermann">Marcel Wegermann</a> for a bit of BDD advice which has hopefully earned yet another convert to this tried-and-true coding discipline. He managed to convince my colleague that with some simple refactoring, you can break out of Zend &#8211; PHPUnit tests dependency hell and wrap those sticky areas with some testing goodness!</p>
<p>Like <a href="http://twitter.com/bartvanbrabant">Bart Vanbrabant</a> notes in his <a href="http://bart.vanbrabant.eu/2009/10/31/devops/">blog post</a>, I also found many of the discussions to be very low level and missed more abstract discussion about how to bridge the gap between development and operations. I hope that next year we see a more balanced group in order to foster this important topic and call on every developer reading this blog to seriously consider making the trip next year to <a href="http://twitter.com/devopsdays">devopsdays</a>!</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/new-conference-on-agile-system-administration-devopsdays-2009/' rel='bookmark' title='Permanent Link: New Conference On Agile System Administration: Devopsdays 2009'>New Conference On Agile System Administration: Devopsdays 2009</a></li><li><a href='http://www.agileweboperations.com/behavior-driven-ops-kanban-vs-scrum-and-a-new-upcoming-monitoring-and-trending-tool/' rel='bookmark' title='Permanent Link: Behavior Driven Ops, Kanban vs. Scrum and a new upcoming Monitoring and Trending Tool'>Behavior Driven Ops, Kanban vs. Scrum and a new upcoming Monitoring and Trending Tool</a></li><li><a href='http://www.agileweboperations.com/system-configurations-code-revisions-continuous-integration-ftw/' rel='bookmark' title='Permanent Link: System Configurations + Code Revisions = Continuous Integration FTW!'>System Configurations + Code Revisions = Continuous Integration FTW!</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=oRgjpefufyU:DR7sqeUtAIk:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=oRgjpefufyU:DR7sqeUtAIk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=oRgjpefufyU:DR7sqeUtAIk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=oRgjpefufyU:DR7sqeUtAIk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=oRgjpefufyU:DR7sqeUtAIk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=oRgjpefufyU:DR7sqeUtAIk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/oRgjpefufyU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/devopsdays-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/devopsdays-2009/</feedburner:origLink></item>
		<item>
		<title>Simulating a Waterfall Project In The Classroom</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/61t79_43FpI/</link>
		<comments>http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 15:10:28 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[agile course]]></category>
		<category><![CDATA[agile training]]></category>
		<category><![CDATA[simulation]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1714</guid>
		<description><![CDATA[
The first simulation in my course about agile methodologies will be waterfall style. Here&#8217;s how I plan to do it.
Before we go into the details of the waterfall simulation, I want the whole group (around 20-30 people) to come up with requirements for the product to build: an online office suite (maybe the most boring [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/" title="Permanent link to Simulating a Waterfall Project In The Classroom"><img class="post_image alignleft" src="http://farm2.static.flickr.com/1073/1487072348_fbf6a568ba_m.jpg" width="240" height="180" alt="by Diego_3336" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fsimulating-a-waterfall-project-in-the-classroom%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fsimulating-a-waterfall-project-in-the-classroom%2F" height="61" width="51" /></a></div><p>The first simulation in my course about agile methodologies will be waterfall style. Here&#8217;s how I plan to do it.</p>
<p>Before we go into the details of the waterfall simulation, I want the whole group (around 20-30 people) to come up with requirements for the product to build: an online office suite (maybe the most boring but also the most well known thing in the world). I plan to gather the requirements upfront because I do not want to burden the first simulation with this additional task &#8211; all simulations should start mostly from the same starting point. The team will be free to document the requirements as they like, no special format required (those special formats of recording and managing requirements will be part of the individual simulations). When we have a good set of requirements, we&#8217;ll start with the first project waterfall style.<br />
<span id="more-1714"></span></p>
<h3>Splitting The Team</h3>
<p>To simulate real world scenarios, I&#8217;ll split the team into four groups. Every group shall work on a sub-module of the online office suite. To simulate typical hand-offs between analysts and designers, etc. each group will first do the analysis of one module. Then the results of the first phase will be handed over to the next team for doing design. In the second phase, every team will do design another module as before. After the design stage, again the same story: Every team will hand over the design documents to the next group for development. And the same will happen for testing. That way every team will do every phase &#8211; but with a different module each time.</p>
<h3>The Analysis Phase</h3>
<p>In the first phase, the team will have two tasks: </p>
<ol>
<li>Write use cases based on  the initial requirements</li>
<li>Plan the project using a Gantt-Chart</li>
</ol>
<p>I&#8217;ll hand out templates for the use case documents. The team will have to identify actors, come up with reasonable use cases and make sure they structure them by including and extending use cases and sub-use cases. The outcome will be a set of documents and a use case diagram.<br />
After coming up with all the use cases, the team has to estimate the use cases and create a project plan with all dependencies and resource allocations. Of course, there will be &#8220;bottleneck&#8221; resources: a specialist team member, who is the only one to be able to do a certain type of tasks <img src='http://www.agileweboperations.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . The output of this exercise will be a big, hairy Gantt-chart. I&#8217;m already looking forward to tell the teams to do a <em>tiny</em>, <em>little</em> change shortly before the end of the phase <img src='http://www.agileweboperations.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>The Design Phase</h3>
<p>Now every team has to hand over their use cases and project plan to the next team for designing a solution. In the design phase I&#8217;ll ask the teams to come up with class and sequence diagrams and a database model (in 3rd normal form, of course). The team will have to create a multi-tier SOA with a MVC based front-end. Just the common stuff <img src='http://www.agileweboperations.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>The Implementation Phase</h3>
<p>After yet another hand-off, every team will start implementing the design. They will write pseudo code on cards and draw screen scribbles. Later, a &#8220;user&#8221; can interact with the UI by announcing where he would click or what he would type. Then the &#8220;CPU&#8221; (just another team member) has to try to interpret the pseudo code.</p>
<h3>The Test Phase</h3>
<p>In the last phase, the development team and the test team have to interact to ensure, that the written pseudo code and the scribbled screens are correct.<br />
A &#8220;user&#8221; and a &#8220;CPU&#8221; will try to run the pseudo code. The user will announce how he interacts with the screen and the CPU will try to do what is written in pseudo code and come up with the required changes in the UI and data. If the CPU cannot execute a piece of pseudo code or the result is not what the user expects, there will be an &#8220;exception&#8221;. For every exception there will be a trouble ticket and the &#8220;developers&#8221; of the feature have to fix it.</p>
<h3>End of The Waterfall Simulation</h3>
<p>When every module has ventured through all four phases, we will do a &#8220;post-mortem&#8221; analysis of the problems and the achieved goals and record some key learnings. Documenting the experiences of every simulation is essential to be able to compare all three approaches.</p>
<p>What do you think about my approach on simulating a waterfall project in a class setting? Do you have any questions or ideas on how to improve it or what could go wrong? I would be very grateful for your feedback. Just leave a comment below.</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=61t79_43FpI:2oV9EKqWR5g:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=61t79_43FpI:2oV9EKqWR5g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=61t79_43FpI:2oV9EKqWR5g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=61t79_43FpI:2oV9EKqWR5g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=61t79_43FpI:2oV9EKqWR5g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=61t79_43FpI:2oV9EKqWR5g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/61t79_43FpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/</feedburner:origLink></item>
		<item>
		<title>Kanban vs. Iterative Development</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/JS8k2m1d0Yo/</link>
		<comments>http://www.agileweboperations.com/kanban-vs-iterative-development/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 06:49:34 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[iterative software development]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1707</guid>
		<description><![CDATA[
Agile methodology builds on the concept of iterations &#8211; time boxes &#8211; in which you create a piece of working software. Each iteration starts with a planning meeting where the team takes stories from the backlog and commits to the sprint goal. If you use a tool like Pivotal Tracker, you even get emergent iterations [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/a-kanban-board-for-features/' rel='bookmark' title='Permanent Link: A Kanban Board for Features'>A Kanban Board for Features</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/kanban-vs-iterative-development/" title="Permanent link to Kanban vs. Iterative Development"><img class="post_image alignleft" src="http://farm1.static.flickr.com/27/96723651_479a29ded3_m.jpg" width="240" height="180" alt="by &_yo" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fkanban-vs-iterative-development%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fkanban-vs-iterative-development%2F" height="61" width="51" /></a></div><p>Agile methodology builds on the concept of iterations &#8211; time boxes &#8211; in which you create a piece of working software. Each iteration starts with a planning meeting where the team takes stories from the backlog and commits to the sprint goal. If you use a tool like <a href="http://www.pivotaltracker.com">Pivotal Tracker</a>, you even get emergent iterations &#8211; the tool automatically cuts your backlog into iterations based on your team&#8217;s velocity.<br />
<span id="more-1707"></span><br />
In my post <a href="http://www.agileweboperations.com/agile-quo-vadis/">Agile on steroids</a> I described how our team slowly dropped most of the agile estimation and planning practices in favor of optimizing cycle time of stories. Now we&#8217;re running a true hybrid of iterative development and kanban. So, what makes the difference?<br />
<!--more--></p>
<h3>Iterations Tell You <em>When</em> a Story Will be Finished</h3>
<p>With time boxes and a known Velocity all stakeholders can easily find out, when a given story at a certain position in the backlog will be delivered. There will be variation in the velocity, but overall the estimation will be quite good.</p>
<h3>Kanban Tells You, How Long a Story Will Take</h3>
<p>In Kanban, you don&#8217;t measure how much you can do within a certain period of time, but how long a story needs from idea to roll out. You can&#8217;t really plan big feature packages, but you can optimize the time to market of any story. This is usually a good thing.</p>
<h3>Iterations Provide Integration Points</h3>
<p>As every iteration should result in working software, all stories need to be integrated by the end of the iteration. The iteration end acts as a reminder for the developers to integrate regularly (at least once an iteration, which isn&#8217;t often enough in my opinion).</p>
<h3>Kanban Creates Continuous Flow</h3>
<p>When you use a Kanban style, lean development process, there are no artificial iteration borders. Each and every story leads to working software and, optimally, to a release. This requires a higher degree of self discipline within the team.</p>
<h3>Decision Criteria</h3>
<p>If you need big synchronization points, e.g. for big marketing campaigns, you might be better off using an iterative development approach. If you want to ensure a continuous flow of features, which are optimized for time to market (cycle time), Kanban might work better for you. What are your experiences with the one or the other? Let us know in the comments or <a href="http://twitter.com/mmarschall">send me a tweet</a>.</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/a-kanban-board-for-features/' rel='bookmark' title='Permanent Link: A Kanban Board for Features'>A Kanban Board for Features</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=JS8k2m1d0Yo:3KDGxF2dmM8:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=JS8k2m1d0Yo:3KDGxF2dmM8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=JS8k2m1d0Yo:3KDGxF2dmM8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=JS8k2m1d0Yo:3KDGxF2dmM8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=JS8k2m1d0Yo:3KDGxF2dmM8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=JS8k2m1d0Yo:3KDGxF2dmM8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/JS8k2m1d0Yo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/kanban-vs-iterative-development/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/kanban-vs-iterative-development/</feedburner:origLink></item>
		<item>
		<title>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/-hjQxichLos/</link>
		<comments>http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 04:39:03 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile development process]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean software development]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1702</guid>
		<description><![CDATA[
Currently, I&#8217;m preparing for teaching my next course on Agile Methodology. Again and again, I wonder what is the single most important thing my students should be able to take with them after four full days. One of my core messages is definitely that agile is more about principles than about practices. If you absorb [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Waterfall Project In The Classroom'>Simulating a Waterfall Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/kanban-vs-iterative-development/' rel='bookmark' title='Permanent Link: Kanban vs. Iterative Development'>Kanban vs. Iterative Development</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/" title="Permanent link to Waterfall, SCRUM and Lean Software Development simulation as teaching platform"><img class="post_image alignright" src="http://farm1.static.flickr.com/4/8683033_4b93b3e927_m.jpg" width="240" height="180" alt="Picture by WolfgangM" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fwaterfall-scrum-and-lean-software-development-simulation-as-teaching-platform%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fwaterfall-scrum-and-lean-software-development-simulation-as-teaching-platform%2F" height="61" width="51" /></a></div><p>Currently, I&#8217;m preparing for teaching my next course on Agile Methodology. Again and again, I wonder what is the single most important thing my students should be able to take with them after four full days. One of my core messages is definitely that agile is more about principles than about practices. If you absorb the principles you have a good chance to get it right no matter which practices you decide to use or not. But, even teaching the underlying principles seems not enough to me. Tacit knowledge is far too important to be completely ignored in any course. So how can I transfer tacit knowledge in a course setting?<br />
<span id="more-1702"></span></p>
<h3>Hands on Simulation</h3>
<p>This year I want to go for hands-on simulation of a software development project. The students shall run a simulated project multiple times, using different processes. I&#8217;m sure they&#8217;ll learn more from doing rather than me talking for four days.</p>
<h3>Waterfall</h3>
<p>I&#8217;m planning to start with simulating the project using a waterfall methodology. I&#8217;ll split my students into four teams. They&#8217;ll work on four modules in parallel. In the first phase all of them will work as analysts trying to define the requirements for their module and planning the complete project using Gantt-Charts.<br />
In the second phase, all teams will work as designers specifying the features. But as it happens in the real world, none of the teams will work on the same module as before. Every team has to hand over the requirements they came up with to the next team, which has to do the detailed specs.<br />
Same will be true for the development and testing phases.<br />
Let&#8217;s see how much they&#8217;ll get done in that setup, and how they&#8217;ll react to changes in requirements during the later phases.</p>
<h3>Scrum</h3>
<p>The next round shall simulate a typical agile project with timeboxes and cross functional teams. Every module will be assigned to exactly one team and that team will try to develop the feature in iterations based on a backlog. The main tools for the teams will be a backlog of requirements (in the form of <a href="http://www.agileweboperations.com/user-stories/">user stories</a>), iterations and velocity for planning and retrospectives to adapt. Of course requirements will change during this simulation, too.</p>
<h3>Lean Software Development</h3>
<p>The final round shall simulate a typical lean software development project where the teams do not work in iterations anymore but use a <a href="http://www.agileweboperations.com/kanban">Kanban</a> system to let requirements flow through. The main tools to be used will be a story board, story cards, and cycle time for planning. The team shall learn to see waste and eliminate it.</p>
<p>Having run smaller simulations embedded in former lectures I&#8217;m curious to see how such a full blown sim will work out. Do you have any experiences in project management simulation games? How did it go? Let us know in the comments!</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/simulating-scrum-lean-projects-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Scrum And a Lean Project In The Classroom'>Simulating a Scrum And a Lean Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/simulating-a-waterfall-project-in-the-classroom/' rel='bookmark' title='Permanent Link: Simulating a Waterfall Project In The Classroom'>Simulating a Waterfall Project In The Classroom</a></li><li><a href='http://www.agileweboperations.com/kanban-vs-iterative-development/' rel='bookmark' title='Permanent Link: Kanban vs. Iterative Development'>Kanban vs. Iterative Development</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=-hjQxichLos:oSBmVtR13W4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=-hjQxichLos:oSBmVtR13W4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=-hjQxichLos:oSBmVtR13W4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=-hjQxichLos:oSBmVtR13W4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=-hjQxichLos:oSBmVtR13W4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=-hjQxichLos:oSBmVtR13W4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/-hjQxichLos" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/</feedburner:origLink></item>
		<item>
		<title>Giving up – or not?</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/5VCh-PBi7z4/</link>
		<comments>http://www.agileweboperations.com/giving-up-or-not/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 06:21:22 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[Seth Godin]]></category>
		<category><![CDATA[The Dip]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1696</guid>
		<description><![CDATA[
&#8220;Never give up&#8221; is an advice we hear far too often. We&#8217;re taught that giving up is a failure. But nothing could be further from the truth if we&#8217;re caught in a dead end. If there is nothing left to reach, why should we bother to go on? It&#8217;s a waste of time and energy [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/giving-up-or-not/" title="Permanent link to Giving up &#8211; or not?"><img class="post_image alignleft" src="http://farm1.static.flickr.com/58/191393602_3d9b643ab0_m.jpg" width="240" height="180" alt="Image by bennylin0724" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fgiving-up-or-not%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fgiving-up-or-not%2F" height="61" width="51" /></a></div><p>&#8220;Never give up&#8221; is an advice we hear far too often. We&#8217;re taught that giving up is a failure. But nothing could be further from the truth if we&#8217;re caught in a dead end. If there is nothing left to reach, why should we bother to go on? It&#8217;s a waste of time and energy trying to move mountains. Better give up and go for something worthwhile. It&#8217;s the only reasonable thing to do. <strong>Not</strong> giving up is a problem. Wasting your energy where nothing can be gained is a bad decision. Giving up and focusing your power to reach worthwhile goals is the smarter strategy.<br />
<span id="more-1696"></span><br />
But even if we go for a big, valuable goal, we might reach a point where it looks like we should quit. Everything looks bright and easy at the start. But sooner or later we realize how difficult the way to our goal <em>really</em> is. We might lose all our hope or even panic as we think we cannot make it. But as Seth Godin says in his little book &#8220;The Dip,&#8221; it is never a good idea to quit something because you panic. Difficulties on the way to achieve something great are natural and even necessary. Only those difficulties create the scarcity, which makes the goal worthwhile in the end. If it wouldn&#8217;t be hard to reach, everyone would do it and there would be no value in it anymore.</p>
<p>So, quit everything where nothing can be gained and be prepared for &#8220;the dip&#8221; when you are heading out to do something great. Don&#8217;t panic if things get rough and ugly. You might have to change your tactics if they don&#8217;t lead anywhere, but never stop striving to attain the big goal.</p>


<p>No related posts.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=5VCh-PBi7z4:rVcA4x9chy0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=5VCh-PBi7z4:rVcA4x9chy0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=5VCh-PBi7z4:rVcA4x9chy0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=5VCh-PBi7z4:rVcA4x9chy0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=5VCh-PBi7z4:rVcA4x9chy0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=5VCh-PBi7z4:rVcA4x9chy0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/5VCh-PBi7z4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/giving-up-or-not/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/giving-up-or-not/</feedburner:origLink></item>
		<item>
		<title>Pair Programming: Staying within “the zone”</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/84uyPOQfdJs/</link>
		<comments>http://www.agileweboperations.com/pair-programming-staying-within-the-zone/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 04:44:29 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile development process]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1690</guid>
		<description><![CDATA[
Today I spent the whole day debugging an elusive concurrency problem in ruby on rails running on JRuby. We start some threads during the web request and, usually sooner than later, all our database connections are blocked.
Getting deep into the details of multithreading, connection pooling and the like is nothing I enjoy doing. Especially not [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/pair-programming-staying-within-the-zone/" title="Permanent link to Pair Programming: Staying within &#8220;the zone&#8221;"><img class="post_image alignleft" src="http://farm1.static.flickr.com/21/40152144_a02cf111f1_m.jpg" width="180" height="240" alt="by a2gemma" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fpair-programming-staying-within-the-zone%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fpair-programming-staying-within-the-zone%2F" height="61" width="51" /></a></div><p>Today I spent the whole day debugging an elusive concurrency problem in ruby on rails running on JRuby. We start some threads during the web request and, usually sooner than later, all our database connections are blocked.</p>
<p>Getting deep into the details of multithreading, connection pooling and the like is nothing I enjoy doing. Especially not alone. I was really glad to have a buddy for the job.<br />
<span id="more-1690"></span></p>
<h3>Talking about a Problem helps sort your thoughts</h3>
<p>Even thinking about all the twists and turns of our business logic made my head hurt. Having someone to actually <em>talk</em> about them made things better. If you force yourself to articulate the mess in your brain, it usually starts sorting out much easier than if you would try to only <em>think</em> it through. I know that this is not everyone&#8217;s thing to do, but for me it is very helpful.</p>
<h3>When <em>you</em> run out of ideas, your pair might come up with a new one</h3>
<p>Especially in chasing bugs, I usually start with a host of ideas where I could look for the issue. But, after hitting some dead ends, it becomes harder and harder to think of new approaches to address the issue at hand. Working together in such a bug hunt helps because as soon as the one runs out of ideas, the other one might come up with <em>the</em> guess, where to find the solution. Together, you&#8217;re able to avoid unproductive gaps throughout your workday.</p>
<h3>Staying in &#8220;the zone&#8221; through laser sharp focus</h3>
<p>Sitting together at one desk helps to completely ignore all those permanent distractions like incoming e-mail, twitter or IRC. Talking to each other and working on a problem together enabled us to keep focused on the issue at hand for over 8 hours today (short breaks included). After so many productive hours I feel completely drained, but it was worth it. Even though we didn&#8217;t fix the issue today, we sure learned a lot&#8230; Hope to squash it tomorrow.</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/waterfall-scrum-and-lean-software-development-simulation-as-teaching-platform/' rel='bookmark' title='Permanent Link: Waterfall, SCRUM and Lean Software Development simulation as teaching platform'>Waterfall, SCRUM and Lean Software Development simulation as teaching platform</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=84uyPOQfdJs:uPCEknwCcX0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=84uyPOQfdJs:uPCEknwCcX0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=84uyPOQfdJs:uPCEknwCcX0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=84uyPOQfdJs:uPCEknwCcX0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=84uyPOQfdJs:uPCEknwCcX0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=84uyPOQfdJs:uPCEknwCcX0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/84uyPOQfdJs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/pair-programming-staying-within-the-zone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/pair-programming-staying-within-the-zone/</feedburner:origLink></item>
		<item>
		<title>Open Communication Stops De-Motivating your Team</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/WTsBOfU32Nc/</link>
		<comments>http://www.agileweboperations.com/open-communication-stops-demotivating-your-team/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 04:46:54 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[leadership]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1682</guid>
		<description><![CDATA[
Instead of motivating our teams, we should simply stop de-motivating them. Everyone you work with is highly motivated by default. But, bad information policies, countermanding orders or simply ignoring ideas will turn a highly motivated team member into a disgruntled road block.

Open Communication
Highly skilled team members are able to deal with the truth. Especially in [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/get-your-team-working-together/' rel='bookmark' title='Permanent Link: Get Your Team Working Together'>Get Your Team Working Together</a></li><li><a href='http://www.agileweboperations.com/introducing-your-team-agile-using-pivotal-tracker/' rel='bookmark' title='Permanent Link: Introducing Your Team to Agile Using Pivotal Tracker'>Introducing Your Team to Agile Using Pivotal Tracker</a></li><li><a href='http://www.agileweboperations.com/a-luxury-problem-how-emerging-iterations-eat-team-commitment-for-breakfast/' rel='bookmark' title='Permanent Link: A Luxury Problem: How Emerging Iterations Eat Team Commitment For Breakfast'>A Luxury Problem: How Emerging Iterations Eat Team Commitment For Breakfast</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/open-communication-stops-demotivating-your-team/" title="Permanent link to Open Communication Stops De-Motivating your Team"><img class="post_image aligncenter" src="http://farm4.static.flickr.com/3261/3257178070_32c3e6ef34_m.jpg" width="240" height="167" alt="by Mykl Roventine" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fopen-communication-stops-demotivating-your-team%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fopen-communication-stops-demotivating-your-team%2F" height="61" width="51" /></a></div><p>Instead of motivating our teams, we should simply stop <em>de</em>-motivating them. Everyone you work with is highly motivated by default. But, bad information policies, countermanding orders or simply ignoring ideas will turn a highly motivated team member into a disgruntled road block.<br />
<span id="more-1682"></span></p>
<h3>Open Communication</h3>
<p>Highly skilled team members are able to deal with the truth. Especially in a start-up environment, it is crucial to constantly let everyone know how the company is doing. There are two reasons for being totally open:</p>
<ol>
<li>Informed team members take more risk.</li>
<li>Missing information will be guessed.</li>
</ol>
<h3>The Higher the Risks, the More Open the Communication has to be</h3>
<p>If you start a new business and are able to get a great team, everyone in the team is usually very aware of the risks involved. If you don&#8217;t treat them as adults when things get rough, you will lose their trust and your team mates are more likely to look for a new job. If this sounds counter intuitive to you, you&#8217;re not alone. But I&#8217;ve seen it to be true various times. Remember, a great team is usually a smart team and smart people tend to know when they&#8217;re being left in the dark. Seeing upcoming risks makes you feel more secure than complete darkness.</p>
<h3>If You Don&#8217;t Know, You Guess</h3>
<p>I&#8217;ve seen this to be true for every size of organization I worked for: If team members don&#8217;t know something, they make something up. It might be gossip about a manager&#8217;s private life or, worse, about the future of one&#8217;s job. If you try to tell your team everything going on there&#8217;s less room for guessing. You trust your team to run your business, so please trust them to be able to deal with whatever situation comes up! If a bad rumor is born, it is incredibly hard to kill it again. By being totally open, you can avoid most rumors getting started in the first place.</p>
<h3>What to do with <em>Really</em> Confidential Information?</h3>
<p>Ok, if you&#8217;ve been in a management position for some time you definitely have come across information you shouldn&#8217;t disseminate. Sometimes things are extremely complicated and can be easily misunderstood. And once misunderstood, again, you&#8217;ve started a hard to kill rumor which might severely harm your business. But, more often than you think it would be better to take the time to explain rather than creating a secret. People sense secrecy and get nervous very easily. Trust your team, educate them to understand a situation fully and get through it together!</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/get-your-team-working-together/' rel='bookmark' title='Permanent Link: Get Your Team Working Together'>Get Your Team Working Together</a></li><li><a href='http://www.agileweboperations.com/introducing-your-team-agile-using-pivotal-tracker/' rel='bookmark' title='Permanent Link: Introducing Your Team to Agile Using Pivotal Tracker'>Introducing Your Team to Agile Using Pivotal Tracker</a></li><li><a href='http://www.agileweboperations.com/a-luxury-problem-how-emerging-iterations-eat-team-commitment-for-breakfast/' rel='bookmark' title='Permanent Link: A Luxury Problem: How Emerging Iterations Eat Team Commitment For Breakfast'>A Luxury Problem: How Emerging Iterations Eat Team Commitment For Breakfast</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=WTsBOfU32Nc:8jCvtczBmdQ:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=WTsBOfU32Nc:8jCvtczBmdQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=WTsBOfU32Nc:8jCvtczBmdQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=WTsBOfU32Nc:8jCvtczBmdQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=WTsBOfU32Nc:8jCvtczBmdQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=WTsBOfU32Nc:8jCvtczBmdQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/WTsBOfU32Nc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/open-communication-stops-demotivating-your-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/open-communication-stops-demotivating-your-team/</feedburner:origLink></item>
		<item>
		<title>Deploying with Capistrano</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/2CqPvNJObs4/</link>
		<comments>http://www.agileweboperations.com/deployment-with-capistrano/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 07:38:07 +0000</pubDate>
		<dc:creator>Dan Ackerson</dc:creator>
				<category><![CDATA[Web Development & Operations]]></category>
		<category><![CDATA[cap]]></category>
		<category><![CDATA[Capistrano]]></category>
		<category><![CDATA[rsync]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1665</guid>
		<description><![CDATA[At the end of April, I wrote about how automatic rsyncs were making my operations life a living hell. Enter Summer, vacation, new developer and here we are mid-September before I finally get around to permanently fixing this problem. 
But, I can&#8217;t really blame all of it on life &#8211; after Matthias gave me a [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/using-capistrano-configuration-management/' rel='bookmark' title='Permanent Link: Using Capistrano For Configuration Management'>Using Capistrano For Configuration Management</a></li><li><a href='http://www.agileweboperations.com/puppet-vs-capistrano-short-comparison/' rel='bookmark' title='Permanent Link: Puppet vs. Capistrano &#8211; a short comparison'>Puppet vs. Capistrano &#8211; a short comparison</a></li><li><a href='http://www.agileweboperations.com/super-simple-ruby-subversion-command-line-wrapper/' rel='bookmark' title='Permanent Link: Super-simple Ruby Subversion Command Line Wrapper'>Super-simple Ruby Subversion Command Line Wrapper</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p></p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdeployment-with-capistrano%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdeployment-with-capistrano%2F" height="61" width="51" /></a></div><p><a href="http://www.flickr.com/photos/soldiersmediacenter/3038717220/"><img alt="Photo by Army.mil" src="http://farm4.static.flickr.com/3020/3038717220_9e28f3abcd_m.jpg" class="alignright" width="240" height="160" /></a>At the end of April, I wrote about how <a href="http://www.agileweboperations.com/why-rsync-lousy-deployment-tool/">automatic rsyncs</a> were making my operations life a living hell. Enter Summer, vacation, new developer and here we are mid-September before I finally get around to permanently fixing this problem. </p>
<p>But, I can&#8217;t really blame all of it on life &#8211; after Matthias gave me a crash course on <a href="http://www.capify.org/index.php/Capistrano">Capistrano</a> basics, I was a bit daunted by recreating the application directory environment for every deploy. Symlinks, local configuration details, file permissions&#8230;oh my!<span id="more-1665"></span></p>
<h3>K.I.S.S.</h3>
<p>Last weekend brought some cold rainy weather and I got around to thinking about Cap again. Could I write a simplified Cap file which would just run <code>svn info</code> &#038; <code>svn update</code>?</p>
<p>Here&#8217;s my info task:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">task <span style="color:#ff3333; font-weight:bold;">:info</span>, <span style="color:#ff3333; font-weight:bold;">:roles</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> 
  defer <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#CC0066; font-weight:bold;">eval</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#6666ff; font-weight:bold;">Capistrano::CLI</span>.<span style="color:#9900CC;">ui</span>.<span style="color:#9900CC;">ask</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Server roles ([:role1,:role2,...]) : &quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#9966CC; font-weight:bold;">do</span> 
    run <span style="color:#996600;">&quot;svnversion #{deploy_dir}&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>channel, stream, data<span style="color:#006600; font-weight:bold;">|</span>
      data = data.<span style="color:#CC0066; font-weight:bold;">chomp</span>     <span style="color:#008000; font-style:italic;"># remove line separators</span>
      result = <span style="color:#996600;">&quot;r&quot;</span> <span style="color:#006600; font-weight:bold;">+</span> data <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#996600;">&quot; &quot;</span> <span style="color:#006600; font-weight:bold;">+</span> channel<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:host</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      <span style="color:#008000; font-style:italic;">#check for trailing SVN status characters 'M','C',etc.</span>
      <span style="color:#008000; font-style:italic;"># if (data.to_i.to_s == data)</span>
      <span style="color:#008000; font-style:italic;">#  result += &quot; =&gt; clean&quot;</span>
      <span style="color:#008000; font-style:italic;"># else</span>
      <span style="color:#008000; font-style:italic;">#   result += &quot; =&gt; contaminated&quot;</span>
      <span style="color:#008000; font-style:italic;"># end</span>
      <span style="color:#CC0066; font-weight:bold;">puts</span> result
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>The <code>CLI.ui.ask</code> allows me to input the desired role group(s) at runtime. I&#8217;ve also figured out how to identify if a remote repository&#8217;s not 100% clean (which I&#8217;ve commented out for now). Here&#8217;s the sample output of a run:
<pre>
danackerson ~/dev$ sudo cap info
  * executing `info'
  * executing "svnversion /data/www/svn/"
Server roles ([:role1,:role2,...]) : :all
  servers: ["db.netdoktor.de", "slave1.netdoktor.de", "slave2.netdoktor.de", "test.netdoktor.de"]
  [db.netdoktor.de] executing command
  [slave1.netdoktor.de] executing command
  [slave2.netdoktor.de] executing command
  [test.netdoktor.de] executing command
r3357 db.netdoktor.de
r3357 slave1.netdoktor.de
r3357 test.netdoktor.de
r3357 slave2.netdoktor.de
  command finished
</pre>
<p>Nice. Why <code>sudo</code> you may ask? Just because I&#8217;ve made deployment drop-dead easy, doesn&#8217;t mean I should be able to <a href="http://en.wiktionary.org/wiki/coldcock">cold-cock</a> my application. With great power comes great responsibility, and I reassert this by making my cap file executable only by root.</p>
<h3>Where the Rubber Meets the Road</h3>
<p>Ok, I&#8217;d cut my teeth and gained confidence that I could write custom cap tasks to accomplish important goals. Now time for the main event: <code>svn update</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">task <span style="color:#ff3333; font-weight:bold;">:update</span>, <span style="color:#ff3333; font-weight:bold;">:roles</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> 
  defer <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#CC0066; font-weight:bold;">eval</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#6666ff; font-weight:bold;">Capistrano::CLI</span>.<span style="color:#9900CC;">ui</span>.<span style="color:#9900CC;">ask</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;Server roles ([:role1,:role2,...]) : &quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#9966CC; font-weight:bold;">do</span> 
    rev = ENV<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'REV'</span><span style="color:#006600; font-weight:bold;">&#93;</span>;
    <span style="color:#9966CC; font-weight:bold;">if</span> rev == <span style="color:#0000FF; font-weight:bold;">nil</span> 
      rev = <span style="color:#996600;">&quot;HEAD&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span> 
    run <span style="color:#996600;">&quot;svn update -r#{rev} #{deploy_dir}&quot;</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>The <code>REV</code> env variable gives me the ability to specify a specific revision (useful for a rollback as well):
<pre>
danackerson ~/dev$ sudo cap update REV=3356
&nbsp;&nbsp;* executing `update'
&nbsp;&nbsp;* executing "svn update -r3356 /data/www/svn/"
Server roles ([:role1,:role2,...]) : :test
&nbsp;&nbsp;&nbsp;&nbsp;servers: ["test.netdoktor.de"]
&nbsp;&nbsp;&nbsp;&nbsp;[test.netdoktor.de] executing command
&nbsp;&nbsp;** [out :: test.netdoktor.de] U    /data/www/svn/do_news.gif
&nbsp;&nbsp;** [out :: test.netdoktor.de] U    /data/www/svn/do_arzt.gif
&nbsp;&nbsp;** [out :: test.netdoktor.de] U    /data/www/svn/do_forum.gif
&nbsp;&nbsp;** [out :: test.netdoktor.de] Updated to revision 3356.
&nbsp;&nbsp;&nbsp;&nbsp;command finished
</pre>
<h3>Leaps and Bounds</h3>
<p>After putting the final touches on this Monday morning, I gave it a thorough workout. Not only did I notice a signficant time savings in using cap, but I suddenly had extremely fine deployment possibilities. By the time the day was through, I was running 4 different versions of our codebase among the various servers. This probably sounds horrifying, but it really allowed us to insulate the productive slaves from untested (and unnecessary) code changes. The <code>sudo cap info</code> script gave me a quick overview of exactly what was running where.</p>
<p>Ultimately, it only cost me a few hours to get this setup and I certainly wish I would have done it like this four months ago. How are you using capistrano in your environment? Share with us in the comments!</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/using-capistrano-configuration-management/' rel='bookmark' title='Permanent Link: Using Capistrano For Configuration Management'>Using Capistrano For Configuration Management</a></li><li><a href='http://www.agileweboperations.com/puppet-vs-capistrano-short-comparison/' rel='bookmark' title='Permanent Link: Puppet vs. Capistrano &#8211; a short comparison'>Puppet vs. Capistrano &#8211; a short comparison</a></li><li><a href='http://www.agileweboperations.com/super-simple-ruby-subversion-command-line-wrapper/' rel='bookmark' title='Permanent Link: Super-simple Ruby Subversion Command Line Wrapper'>Super-simple Ruby Subversion Command Line Wrapper</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=2CqPvNJObs4:Wo9r96O2YGU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=2CqPvNJObs4:Wo9r96O2YGU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=2CqPvNJObs4:Wo9r96O2YGU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=2CqPvNJObs4:Wo9r96O2YGU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=2CqPvNJObs4:Wo9r96O2YGU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=2CqPvNJObs4:Wo9r96O2YGU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/2CqPvNJObs4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/deployment-with-capistrano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/deployment-with-capistrano/</feedburner:origLink></item>
		<item>
		<title>“Done” is the Wrong Measure of Success</title>
		<link>http://feedproxy.google.com/~r/agileweboperations/~3/P-hahqSEwEg/</link>
		<comments>http://www.agileweboperations.com/done-the-wrong-measure-of-success/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 04:37:29 +0000</pubDate>
		<dc:creator>Matthias Marschall</dc:creator>
				<category><![CDATA[Agile Methodologies]]></category>
		<category><![CDATA[done]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://www.agileweboperations.com/?p=1657</guid>
		<description><![CDATA[
It&#8217;s a very important thing for any agile team to find a definition of Done, which fits the expectations and the environment of the current development. For User Stories, I definitely prefer Done = Released as the most helpful metric. Only if a story is really out there serving users can you truly forget about [...]


Related posts:<ul><li><a href='http://www.agileweboperations.com/estimation-user-stories-story-points-abstract-size-measure/' rel='bookmark' title='Permanent Link: Estimation of User Stories With Story Points as Abstract Size Measure'>Estimation of User Stories With Story Points as Abstract Size Measure</a></li><li><a href='http://www.agileweboperations.com/a-kanban-board-for-features/' rel='bookmark' title='Permanent Link: A Kanban Board for Features'>A Kanban Board for Features</a></li><li><a href='http://www.agileweboperations.com/velocity-what-will-we-be-able-deliver-week/' rel='bookmark' title='Permanent Link: Velocity &#8211; what will we be able to deliver this week?'>Velocity &#8211; what will we be able to deliver this week?</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.agileweboperations.com/done-the-wrong-measure-of-success/" title="Permanent link to &#8220;Done&#8221; is the Wrong Measure of Success"><img class="post_image alignleft" src="http://farm1.static.flickr.com/43/96535311_31f6ffc594_m.jpg" width="240" height="175" alt="image by iboy_daniel" /></a>
</p><div class="tweetmeme_button" style="float: left; margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdone-the-wrong-measure-of-success%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileweboperations.com%2Fdone-the-wrong-measure-of-success%2F" height="61" width="51" /></a></div><p>It&#8217;s a very important thing for any agile team to find a definition of <em>Done</em>, which fits the expectations and the environment of the current development. For User Stories, I definitely prefer <em>Done</em> = <em>Released</em> as the most helpful metric. Only if a story is really out there serving users can you truly forget about it. Or can you?<br />
<span id="more-1657"></span></p>
<h3>The Lifecycle of a Feature</h3>
<p>In my introduction to a <a href="http://www.agileweboperations.com/a-kanban-board-for-features">Kanban Board for Features</a>, I emphasized that a <em>Feature</em> is the unit of work for strategic product management and can be cut into User Stories for a smooth development flow. If one, or even all, of the User Stories which comprise a feature are <em>Done</em> is the feature <em>Done</em>, too?</p>
<p>Unfortunately not. On the contrary: As soon as the feature is finally out there the most important phase starts. Now, it&#8217;s time to measure the (hopefully) positive effect of the feature and compare it with the expectations. Does it live up to them? Or not yet?</p>
<h3>A Feature is <em>Done</em>, if it is <em>Successful</em></h3>
<p>More often than not you&#8217;ll find out, that your feature is nice, but not as good as expected. Now it&#8217;s time to take a critical look and do some root cause analysis. Why does it fall short of expectations? Ask five times &#8220;why?&#8221; to identify things to change. Then, move the feature from <em>Released</em> to <em>In Progress</em>. It has <strong>not</strong> reached it&#8217;s final state: <em>Successful</em>.</p>
<p>Only thinking in User Stories is too short sighted, even if you have the already quite good definition of <em>Done</em> = <em>Released</em> (which too many teams are far from using). To ensure long term success of the software you build, you need to make sure that the features you build are successful. This usually needs a couple of iterations <em>after</em> releasing a feature. Only if you accept that and measure your progress, will your software become truly successful.</p>


<p>Related posts:<ul><li><a href='http://www.agileweboperations.com/estimation-user-stories-story-points-abstract-size-measure/' rel='bookmark' title='Permanent Link: Estimation of User Stories With Story Points as Abstract Size Measure'>Estimation of User Stories With Story Points as Abstract Size Measure</a></li><li><a href='http://www.agileweboperations.com/a-kanban-board-for-features/' rel='bookmark' title='Permanent Link: A Kanban Board for Features'>A Kanban Board for Features</a></li><li><a href='http://www.agileweboperations.com/velocity-what-will-we-be-able-deliver-week/' rel='bookmark' title='Permanent Link: Velocity &#8211; what will we be able to deliver this week?'>Velocity &#8211; what will we be able to deliver this week?</a></li></ul></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/agileweboperations?a=P-hahqSEwEg:vxHnl18oEK4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=I9og5sOYxJI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=P-hahqSEwEg:vxHnl18oEK4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=P-hahqSEwEg:vxHnl18oEK4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=P-hahqSEwEg:vxHnl18oEK4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/agileweboperations?i=P-hahqSEwEg:vxHnl18oEK4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/agileweboperations?a=P-hahqSEwEg:vxHnl18oEK4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/agileweboperations?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/agileweboperations/~4/P-hahqSEwEg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.agileweboperations.com/done-the-wrong-measure-of-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.agileweboperations.com/done-the-wrong-measure-of-success/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 31.014 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-11 15:56:42 -->
