<?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>Michael Sahota - Agile, Scrum &#38; Lean Coach - Toronto &#187; Technical Practices</title>
	<atom:link href="http://www.agilitrix.com/category/technical-practices/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agilitrix.com</link>
	<description>Helping you grow your organization...</description>
	<lastBuildDate>Wed, 08 Sep 2010 16:08:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Go Faster with Root Cause Analysis</title>
		<link>http://www.agilitrix.com/2010/06/go-faster-with-root-cause-analysis/</link>
		<comments>http://www.agilitrix.com/2010/06/go-faster-with-root-cause-analysis/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 15:56:38 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Lean]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Fishbone]]></category>
		<category><![CDATA[Kaizen]]></category>
		<category><![CDATA[Quality]]></category>
		<category><![CDATA[Why?]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=1140</guid>
		<description><![CDATA[One of the workshops I run is to help team members understand root cause analysis. I use it with operations teams as well as product development teams. My workshop goal is to have people leave with a basic understanding and some practice.
I created the diagram below to situate this workshop in a larger context of [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2010/07/use-a3-technique-to-solve-serious-problems/' rel='bookmark' title='Permanent Link: Serious Problems? Use A3 Technique to Nail &#8216;em!'>Serious Problems? Use A3 Technique to Nail &#8216;em!</a> <small>This post shows the A3 technique and how it is...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/deliberate-practice-key-to-craftsmanship/' rel='bookmark' title='Permanent Link: Deliberate Practice &#8211; a key to Craftsmanship'>Deliberate Practice &#8211; a key to Craftsmanship</a> <small>At Agile 2009, Mary Poppendieck presented on &#8220;Deliberate Practice&#8221; &#8211;...</small></li>
<li><a href='http://www.agilitrix.com/2010/06/kanban-is-a-gateway-drug/' rel='bookmark' title='Permanent Link: Kanban is a Gateway Drug'>Kanban is a Gateway Drug</a> <small>For years I have preferred Scrum as a starting place...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>One of the workshops I run is to help team members understand root cause analysis. I use it with operations teams as well as product development teams. My workshop goal is to have people leave with a basic understanding and some practice.</p>
<p>I created the diagram below to situate this workshop in a larger context of Kaizen (Continuous improvement).</p>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2010/06/Kaizen-and-Root-Cause.jpg"><img class="alignnone size-large wp-image-1141" title="Kaizen and Root Cause" src="http://www.agilitrix.com/wp-content/uploads/2010/06/Kaizen-and-Root-Cause-630x562.jpg" alt="Quality, why, fishbone, trust, Genchi Genbutsu, Kanban, WIP, Waste, Problem" width="630" height="562" /></a></p>
<p>One starting point is with a team using a Scrum board or <span style="color: #00ccff;"><strong>Kanban</strong></span> to create <strong><span style="color: #ff9900;">BIG visible information</span></strong>. This supports teams in identifying <strong><span style="color: #003366;">problems or waste</span></strong> to <strong><span style="color: #ff0000;">stop the production line </span></strong>and investigate the problem using <strong><span style="color: #003300;">root cause </span></strong>analysis tools. I introduce two tools and have the participants practice with each:</p>
<ul>
<li><a href="http://www.shmula.com/382/ask-why-five-times-about-every-matter">Ask Why five times</a> &#8211; powerful technique for drilling down into problems.</li>
<li><a href="http://www.shmula.com/433/hacking-at-branches-or-striking-at-the-root">Fishbone (Ishikawa) Diagram</a> &#8211; looks at the big picture around the problem.</li>
</ul>
<p>Both of these improve quality to help teams go fast. 5S (sort, straighten, shine, standardize, sustain) is also totally applicable for software &#8211; it&#8217;s called <a href="http://www.amazon.ca/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">clean code</a>: coding standard, refactoring, etc.</p>
<p>Finally, the foundations for Kaizen and root cause analysis are:</p>
<ul>
<li><strong><span style="color: #003366;">NO BLAME</span></strong>. Most problems are related to the system, not individuals.</li>
<li><strong><span style="color: #003300;">Team work and trust</span></strong>. If 100 people each help find 1% improvement, this will be sustainable.</li>
<li><strong><span style="color: #003366;">Genchi Genbustsu &#8211; Go and See</span></strong>.  When you work on a problem, go to the source and get the facts for yourself. Root cause is about investigation and problem solving &#8211; see and think for yourself.</li>
</ul>
<p>If you want to learn more, check out <a href="http://www.amazon.ca/Implementing-Lean-Software-Development-Concept/dp/0321437381/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1277740393&amp;sr=8-3-spell">Implementing Lean Software Development: From Concept to Cash</a> or <a href="http://www.amazon.ca/Toyota-Production-System-Beyond-Large-Scale/dp/0915299143/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1277740475&amp;sr=8-1">Toyota Production System: Beyond Large-Scale Production</a>.</p>
<h2>Workshop Slides</h2>
<p>Here is a slide deck I have used in training. It&#8217;s from last year, and would benefit from a refresh to cut down on the text &#8211; still very usable. As usual, you are welcome to use this as well as the diagram under Creative Commons license.</p>
<div id="__ss_4634858" style="width: 425px;"><strong><a title="Root cause analysis apr 2010" href="http://www.slideshare.net/michael.sahota/root-cause-analysis-apr-2010">Root cause analysis apr 2010</a></strong><object id="__sse4634858" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rootcauseanalysisapr2010-100628092335-phpapp02&amp;stripped_title=root-cause-analysis-apr-2010" /><param name="name" value="__sse4634858" /><param name="allowfullscreen" value="true" /><embed id="__sse4634858" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=rootcauseanalysisapr2010-100628092335-phpapp02&amp;stripped_title=root-cause-analysis-apr-2010" name="__sse4634858" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/michael.sahota">Michael Sahota</a>.</div>
</div>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2010/07/use-a3-technique-to-solve-serious-problems/' rel='bookmark' title='Permanent Link: Serious Problems? Use A3 Technique to Nail &#8216;em!'>Serious Problems? Use A3 Technique to Nail &#8216;em!</a> <small>This post shows the A3 technique and how it is...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/deliberate-practice-key-to-craftsmanship/' rel='bookmark' title='Permanent Link: Deliberate Practice &#8211; a key to Craftsmanship'>Deliberate Practice &#8211; a key to Craftsmanship</a> <small>At Agile 2009, Mary Poppendieck presented on &#8220;Deliberate Practice&#8221; &#8211;...</small></li>
<li><a href='http://www.agilitrix.com/2010/06/kanban-is-a-gateway-drug/' rel='bookmark' title='Permanent Link: Kanban is a Gateway Drug'>Kanban is a Gateway Drug</a> <small>For years I have preferred Scrum as a starting place...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2010/06/go-faster-with-root-cause-analysis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rapid reliable releases</title>
		<link>http://www.agilitrix.com/2010/06/rapid-reliable-releases/</link>
		<comments>http://www.agilitrix.com/2010/06/rapid-reliable-releases/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 17:41:17 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Deploy]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Production]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=1043</guid>
		<description><![CDATA[I recently attended a ThoughtWorks QTB &#8211; Rapid, Reliable Releases (AKA It&#8217;s not making money until its in production) by Rolf Russell and Andy Duncan. It was a solid presentation around the importance of managing environments effectively. 
I will walk through the diagram below starting with &#8230;
a reliable continuous integration system creates a foundation for [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2009/10/agile-learning-resources/' rel='bookmark' title='Permanent Link: Agile Learning Resources'>Agile Learning Resources</a> <small>This is a list of some resources that are useful...</small></li>
<li><a href='http://www.agilitrix.com/2010/06/kanban-is-a-gateway-drug/' rel='bookmark' title='Permanent Link: Kanban is a Gateway Drug'>Kanban is a Gateway Drug</a> <small>For years I have preferred Scrum as a starting place...</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>I recently attended a ThoughtWorks QTB &#8211; <em>Rapid, Reliable Releases</em> (AKA It&#8217;s not making money until its in production) by Rolf Russell and Andy Duncan. It was a solid presentation around the importance of managing environments effectively. </p>
<p>I will walk through the diagram below starting with &#8230;</p>
<p>a reliable <strong><span style="color: #339966;">continuous integration</span></strong> system creates a foundation for rapid reliable releases. It provides early integration and gives the teams rapid feedback on how they are doing. Everything else follows from this.</p>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2010/06/Rapid-reliable-releases-TW-QTB.jpg"><img class="alignleft size-large wp-image-1044" title="Rapid reliable releases (TW QTB)" src="http://www.agilitrix.com/wp-content/uploads/2010/06/Rapid-reliable-releases-TW-QTB-630x505.jpg" alt="" width="630" height="505" /></a></p>
<p>A key ingredient for successful management of production and other environments is <strong><span style="color: #800000;">collaboration with dev and ops</span></strong>. There is even a new type of role appearing &#8211; <em>DevOps</em> &#8211; that handles both development and operations. Either way, someone needs to champion this important interface.</p>
<p>The next topic was about using <strong><span style="color: #00ccff;">value stream mapping</span></strong> to see what it takes to actually get something into production (I heartily agree with this approach as I have found it very effective). What we often see as a result is that the work is optimized for each department and is not aligned with the best needs of the whole business and there are lot&#8217;s of delays and handoffs.</p>
<p>The next step is to <strong><span style="color: #00008e;"><span style="color: #080688;">envision future state</span> </span></strong>- what items can go in parallel to get feedback as soon as possible. In one environment is was functional testing, performance testing, and UAT.</p>
<p>A practical idea is to use the <strong><span style="color: #00ccff;">cloud </span></strong>for <em>scalable parallel Continuous Integration</em>. In this situation we need lot&#8217;s of computers for a short burst, so this lines up nicely with the cloud&#8217;s pay per use model and lets testing go really fast.</p>
<p>The final bits of advice were around creating <strong><span style="color: #333399;">deployment recipes</span></strong> that go with the code (including database changes). In order to accomplish this you will need to create <strong><span style="color: #333399;">consistent environments</span></strong> and encapsulate differences (such as number of servers, specialized hardware, etc). Once you explicitly handle all the risky bits, then it is easy to support reliable and automated deploys.</p>
<p>If you haven&#8217;t done this sort of thing before, then it may seem like a lot of work. For me, it&#8217;s seems just normal. I personally implemented a lot of this when I worked at a startup in 2000 and have been using it ever since. I can say firsthand that work on this really pays off.</p>
<p><a href="http://www.infoq.com/presentations/Rapid-Reliable-Releases">Video is available on InfoQ</a>.</p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2009/10/agile-learning-resources/' rel='bookmark' title='Permanent Link: Agile Learning Resources'>Agile Learning Resources</a> <small>This is a list of some resources that are useful...</small></li>
<li><a href='http://www.agilitrix.com/2010/06/kanban-is-a-gateway-drug/' rel='bookmark' title='Permanent Link: Kanban is a Gateway Drug'>Kanban is a Gateway Drug</a> <small>For years I have preferred Scrum as a starting place...</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2010/06/rapid-reliable-releases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Strategies for Effectively Managing Legacy Systems</title>
		<link>http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/</link>
		<comments>http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 22:48:43 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Legacy Code]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[Technical Debt]]></category>
		<category><![CDATA[ThoughtWorks]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=857</guid>
		<description><![CDATA[Derek Longmuir presented ThoughtWorks QTB on working with legacy systems. You can see the video and slides on InfoQ.
I like the definition given by Michael Feathers:
Legacy code is simply code without tests.
Legacy Systems have Value. They are usually business critical and feature rich. They may even be stable and reliable (YMMV). Hint: in the MindMap [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/' rel='bookmark' title='Permanent Link: XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy'>XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy</a> <small>Tonight Amr Elssamadisy from GembaSystems presented at the XPToronto/Agile User...</small></li>
<li><a href='http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/' rel='bookmark' title='Permanent Link: Inventors Dilemma and the Dead Core'>Inventors Dilemma and the Dead Core</a> <small>Ken Schwaber has a great presentation where he talks about...</small></li>
<li><a href='http://www.agilitrix.com/2010/07/biggest-bang-for-the-buck-managing-backlog/' rel='bookmark' title='Permanent Link: Biggest bang for the buck! Strategies to organize &#038; prioritize your backlog'>Biggest bang for the buck! Strategies to organize &#038; prioritize your backlog</a> <small>Here are the slides and reference links for the session...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Derek Longmuir presented ThoughtWorks QTB on working with legacy systems. You can see the <a href="http://www.infoq.com/presentations/strategies-for-effectively-managing-legacy-systems">video and slides on InfoQ</a>.</p>
<p>I like the definition given by Michael Feathers:</p>
<blockquote><p><em>Legacy code</em> is simply code without <em>tests</em>.</p></blockquote>
<p><strong><span style="color: #000080;">Legacy Systems have Value</span></strong>. They are usually business critical and feature rich. They may even be stable and reliable (YMMV). Hint: in the MindMap below, start at 3 o&#8217;clock and go <em>clockwise</em>.</p>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2010/03/Legacy-Systems-ThoughtWorks-QTB.jpg"><img class="alignnone size-large wp-image-859" title="Legacy Systems (ThoughtWorks QTB)" src="http://www.agilitrix.com/wp-content/uploads/2010/03/Legacy-Systems-ThoughtWorks-QTB-630x505.jpg" alt="" width="630" height="505" /></a></p>
<p><strong><span style="color: #333399;">Why change from a legacy system?</span></strong> There are number of good reasons: obsolete technology, can&#8217;t add features, system is fragile.</p>
<p>This is an important problem since most systems we have <span style="color: #00ccff;">10% of the effort to build</span> and <span style="color: #ff0000;">90% effort to maintain</span>. So to manage costs, we need maintainable systems.</p>
<p>What to do?  Traditional approaches such as Big Bang (think explosion) and wrapping/hiding legacy systems rarely achieve business objectives.</p>
<p>Do a <span style="color: #800000;"><strong>system health check</strong></span>. Look at the code. Get complexity measures. Look at test code ratio. What state is the system in?</p>
<p>Before getting started, there are some tools that you will need for <strong><span style="color: #008000;">basic technical hygiene</span></strong>. The equivalent of brushing and flossing your teeth is test and build automation.</p>
<p>How to tackle this?</p>
<p>With the <span style="color: #ffcc00;"><strong><span style="color: #b79200;">Strangler</span></strong></span><strong> </strong>approach, the goal is to strangle the existing application by building a new system that runs in parallel. The idea is to put a new interface in place and begin migrating the functionality in a piecewise fashion. This approach takes a lot of effort and makes sense when there is no hope for the existing code base.</p>
<p>The <strong><span style="color: #333399;">Phased </span></strong>approach is about rehabilitating the system piece by piece. How do you eat an elephant? One bite at a time.</p>
<p>Strangely, there was no mention of the bible on this topic: <a href="http://www.amazon.ca/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1270032405&amp;sr=8-1">Working Effectively with Legacy Code</a> by Michael Feathers. This book is a <em>must-read</em> on this topic. As is <a href="http://www.amazon.ca/Refactoring-Improving-Design-Existing-Code/dp/0201485672">Refactoring</a>, <a href="http://www.amazon.ca/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351">Refactoring to Patterns</a>, and <a href="http://www.amazon.ca/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code</a>.</p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/' rel='bookmark' title='Permanent Link: XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy'>XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy</a> <small>Tonight Amr Elssamadisy from GembaSystems presented at the XPToronto/Agile User...</small></li>
<li><a href='http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/' rel='bookmark' title='Permanent Link: Inventors Dilemma and the Dead Core'>Inventors Dilemma and the Dead Core</a> <small>Ken Schwaber has a great presentation where he talks about...</small></li>
<li><a href='http://www.agilitrix.com/2010/07/biggest-bang-for-the-buck-managing-backlog/' rel='bookmark' title='Permanent Link: Biggest bang for the buck! Strategies to organize &#038; prioritize your backlog'>Biggest bang for the buck! Strategies to organize &#038; prioritize your backlog</a> <small>Here are the slides and reference links for the session...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inventors Dilemma and the Dead Core</title>
		<link>http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/</link>
		<comments>http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 13:32:27 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[MindMap]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Innovator's Dillemma]]></category>
		<category><![CDATA[Ken Schwaber]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Product Strategy]]></category>
		<category><![CDATA[Technical Debt]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=728</guid>
		<description><![CDATA[Ken Schwaber has a great presentation where he talks about the Innovator&#8217;s Dillemma and how companies build a (design) dead core.
A typical (success) story

Management &#8211; we need to hit the date.
Developers &#8211; OK, we&#8217;ll cut quality but won&#8217;t tell you.
Success! We made the date. We&#8217;re heroes!

BUT, this is a horrible long term strategy because you [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/' rel='bookmark' title='Permanent Link: XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy'>XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy</a> <small>Tonight Amr Elssamadisy from GembaSystems presented at the XPToronto/Agile User...</small></li>
<li><a href='http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/' rel='bookmark' title='Permanent Link: Strategies for Effectively Managing Legacy Systems'>Strategies for Effectively Managing Legacy Systems</a> <small>Derek Longmuir presented ThoughtWorks QTB on working with legacy systems....</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Ken Schwaber has a <a href="http://www.youtube.com/watch?v=IyNPeTn8fpo">great presentation</a> where he talks about the Innovator&#8217;s Dillemma and how companies build a (design) dead core.</p>
<h3>A typical (success) story</h3>
<ul>
<li>Management &#8211; we need to hit the date.</li>
<li>Developers &#8211; OK, we&#8217;ll cut quality but won&#8217;t tell you.</li>
<li>Success! We made the date. We&#8217;re heroes!</li>
</ul>
<p>BUT, this is a horrible long term strategy because you get a design-dead core and can no longer ship product.</p>
<h3>Design-dead core</h3>
<h3><span style="font-weight: normal; font-size: 13px;">Do you have  a design-dead core?  Here&#8217;s a quick checklist (see mindmap below):</span></h3>
<ol>
<li>The <strong>code is fragile</strong>: difficult to work with and things break unpredictably</li>
<li>Little or<strong> no automated test</strong> harness.</li>
<li><strong>Few experts</strong> who really understand the technology.</li>
</ol>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2010/02/Inventors-Dillemma.jpg"><img class="alignnone size-large wp-image-764" title="Inventor's Dillemma" src="http://www.agilitrix.com/wp-content/uploads/2010/02/Inventors-Dillemma-630x473.jpg" alt="" width="630" height="473" /></a></p>
<p><strong>Innovator&#8217;s Dilemma</strong></p>
<p>The purported dilemma is that you need to choose between fast delivery and maintainability. So, if you want to get to market fast you need to take shortcuts that are going to hinder you in the long run.</p>
<p>This is also called the inventor&#8217;s dilemma.</p>
<h3>Agile to the Rescue</h3>
<p>Teams that follow Agile practices avoid this peril in two ways.</p>
<p>By managing features and scope, teams can find the most valuable software to deliver by a certain date.</p>
<p>Technical practices such as automated testing, continuous integration and refactoring keep a code base healthy and maintainable. They also helps teams go faster.</p>
<h2>Release Burndown to illustrate the Innovator&#8217;s Dilemma</h2>
<p>Consider the chart below. Companies start at burndown line <span style="color: #008000;"><strong>A</strong></span>. If they use Agile, they will stay there. Most companies don&#8217;t. So, release by release, they accumulate technical debt and the code base decays.  After a few years, they build a design-dead core.</p>
<p>As a coach, I like to show teams the chart below and vote on their code base. Many companies are at line <span style="color: #0000ff;"><strong>C</strong></span> with some area&#8217;s that are <strong><span style="color: #800000;">D</span></strong>.</p>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2010/02/Inverntors-Dillemma-Burndown.jpg"><img class="alignnone size-large wp-image-765" title="Inverntor's Dillemma - Burndown" src="http://www.agilitrix.com/wp-content/uploads/2010/02/Inverntors-Dillemma-Burndown-630x489.jpg" alt="" width="630" height="489" /></a></p>
<h2>Help! I have a dead core!</h2>
<p>OK, so you&#8217;ve got a dead core. Sad news. There are ways to recover. I&#8217;d suggest you start with Michael Feather&#8217;s book <a href="http://www.amazon.ca/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>.</p>
<h2>Watch the video</h2>
<p>The whole video is great, but for the part explaining the Innovator&#8217;s dilemma check out:</p>
<ul>
<li>Start: 35:38</li>
<li>Stop: 45:07</li>
</ul>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/IyNPeTn8fpo&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/IyNPeTn8fpo&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/' rel='bookmark' title='Permanent Link: XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy'>XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy</a> <small>Tonight Amr Elssamadisy from GembaSystems presented at the XPToronto/Agile User...</small></li>
<li><a href='http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/' rel='bookmark' title='Permanent Link: Strategies for Effectively Managing Legacy Systems'>Strategies for Effectively Managing Legacy Systems</a> <small>Derek Longmuir presented ThoughtWorks QTB on working with legacy systems....</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Learning Resources</title>
		<link>http://www.agilitrix.com/2009/10/agile-learning-resources/</link>
		<comments>http://www.agilitrix.com/2009/10/agile-learning-resources/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 01:12:04 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Games and Simulations]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Teamwork]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=537</guid>
		<description><![CDATA[This is a list of some resources that are useful for getting started or growing your understanding of Agile.
The permanent page for this content on my website is here (so this is better place to link to since it will be updated).
Getting Started
Short articles for printing out and reading while you are on the train/subway.

Agile [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2010/06/learning-through-games/' rel='bookmark' title='Permanent Link: Learning Through Games'>Learning Through Games</a> <small>As a trainer, I have become increasingly convinced that games...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/agile-kick-start-and-agile-games-day-announce/' rel='bookmark' title='Permanent Link: Agile Kick Start and Agile Games Day &#8211; Announcing Two Workshops October 19th and 21st'>Agile Kick Start and Agile Games Day &#8211; Announcing Two Workshops October 19th and 21st</a> <small>As one of the organizers of Agile Tour Toronto I...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/gentle-introduction-to-agile/' rel='bookmark' title='Permanent Link: Agile Tour Toronto Presentation: A Gentle Introduction to Agile'>Agile Tour Toronto Presentation: A Gentle Introduction to Agile</a> <small>Below are the slides from my first presentation at AgileTourToronto....</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0px; padding-bottom: 8px; margin-top: 0px; padding-top: 0px;">This is a list of some resources that are useful for getting started or growing your understanding of Agile.</p>
<p style="margin-bottom: 0px; padding-bottom: 8px; margin-top: 0px; padding-top: 0px;">The <span style="color: #ff6600;"><strong>permanent page</strong></span><strong> </strong>for this content on my website is <a href="./agile-learning-resources/">here</a> (so this is better place to link to since it will be updated).</p>
<h1 style="color: #63bb01; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; font: normal normal normal 1.45em/normal Georgia, serif; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #eae8e9; width: 640px;"><strong>Getting Started</strong></h1>
<h3 style="color: #2a3845; font-style: italic; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-bottom: 0px; font: normal normal bold 1em/normal Arial, Helvetica, sans-serif;">Short articles for printing out and reading while you are on the train/subway.</h3>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://agilemanifesto.org/">Agile Manifesto – Web page</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://agilemanifesto.org/"></a><a style="color: #009ec0; text-decoration: none;" href="http://agilemanifesto.org/principles.html">Agile Manifesto Principles – Web page</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://agilemanifesto.org/principles.html"></a><a style="color: #009ec0; text-decoration: none;" href="http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf">Article on the history of Iterative developement</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf"></a><a style="color: #009ec0; text-decoration: none;" href="http://www.davethehat.com/articles/LeanAgile.pdf">Connections between Lean and Agile</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.davethehat.com/articles/LeanAgile.pdf"></a><a style="color: #009ec0; text-decoration: none;" href="http://scrumcommunity.pbwiki.com/Scrum-Guide">Short Scrum Guide – 13 page article/guide</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://scrumcommunity.pbwiki.com/Scrum-Guide"></a><a style="color: #009ec0; text-decoration: none;" href="http://xp123.com/xplor/xp0401/Scrum-dev.pdf">Scrum on a page</a> – This you can put on a wall near you.</li>
</ul>
<h3 style="color: #2a3845; font-style: italic; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-bottom: 0px; font: normal normal bold 1em/normal Arial, Helvetica, sans-serif;">Intro to Scrum/Agile</h3>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.slideshare.net/michael.sahota/a-gentle-introduction-to-agile">A Gentle Introduction to Agile – Presentation</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.slideshare.net/michael.sahota/agile-executive-briefing-situational-assessment-50k-ft-view">Agile Executive Briefing – Presentation</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=Q5k7a9YEoUI">Scrum in 10 minutes – Video (10 min)</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=q1RqhRcPJZ0">A Day in the Life of a Scrum Team – Video (6 min)</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=IyNPeTn8fpo">Scrum Overview by Ken Schwaber – Video (60 min)</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.mountaingoatsoftware.com/presentations/81-getting-agile-with-scrum-june---in-better-software-">Overview Powerpoint by Mike Cohn</a></li>
</ul>
<h3 style="color: #2a3845; font-style: italic; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-bottom: 0px; font: normal normal bold 1em/normal Arial, Helvetica, sans-serif;">Other Stuff you need to know to get your project started</h3>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.mountaingoatsoftware.com/system/hidden_asset/file/10/usa_sample.pdf">Getting started with User Stories – Book Excerpt</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=fb9Rzyi8b90">Agile Estimation and Planning by Mike Cohn – Video (90 min)</a></li>
</ul>
<h3 style="color: #2a3845; font-style: italic; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-bottom: 0px; font: normal normal bold 1em/normal Arial, Helvetica, sans-serif;">Next Steps</h3>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li>Check out some of the other resources below.</li>
<li>Start reading some of the books.</li>
<li>You have started a journey of learning – be patient and enjoy the trip.</li>
</ul>
<h1 style="color: #63bb01; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; font: normal normal normal 1.45em/normal Georgia, serif; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #eae8e9; width: 640px;">Additional Learning Resources</h1>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li>Scrum
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.controlchaos.com/about/">Scrum Overview by Ken Schwaber – Website</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.mountaingoatsoftware.com/scrum">Scrum Overview by Mike Cohn – Website</a></li>
</ul>
</li>
<li>XP
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://c2.com/cgi/wiki?XpFaq">eXtreme Programming on C2 Wiki</a>.</li>
</ul>
</li>
<li>User Stories
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.mountaingoatsoftware.com/system/presentation/file/63/EUS_XPMeetupOslo071001.pdf">An Introduction to User Stories – Presentation</a></li>
</ul>
</li>
<li>Agile Estimation and Planning
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.mountaingoatsoftware.com/presentation/92-agile-estimating-and-planning">Agile Estimation and Planning – Presentation</a></li>
</ul>
</li>
<li>Lean
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://tocca.com.au/Services/demoOperations.htm">Demo showing impact of bottlenecks</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.lean.org/WhatsLean/Principles.cfm">Lean for Business – Website</a></li>
</ul>
</li>
<li>Fun Stuff
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=gDDO3ob-4ZY">Punchy video about how Agile can improve on Waterfall</a></li>
</ul>
</li>
<li>Agile Team Room
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://images.google.ca/images?hl=en&amp;source=hp&amp;q=agile+team+room">Agile Team Room</a> – Photos</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.crew.umich.edu/Technical%20reports/Teasley_Covi_Krishnan_Olson_radical_collocation_12_20_00.pdf">How does radical collocation help a team succeed?</a></li>
</ul>
</li>
<li>Pairing – team collaboration on tasks
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://c2.com/cgi/wiki?PairProgrammingBenefits">Benefits of Pair Programming – C2 Wiki</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF">Benefits Research Paper – Cockburn &amp; Williams</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.testingeducation.org/pt/PairProgramming.ppt">How Pair Programming works </a>- General concepts behind pairing and pair programming] (used in training)</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://mitchlacey.com/docs/XR4PromiscuousPairingandBeginnersMind.pdf">Promiscuous Pairing </a>- Some ideas on how rapid pairing can cultivate creativity. Also, <a style="color: #009ec0; text-decoration: none;" href="http://mitchlacey.com/docs/lacey-AdvPromPairing1.pdf">How-to Article</a></li>
</ul>
</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.agilemodeling.com/essays/agileDocumentation.htm">Agile Documentation Practices – Web Article</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.youtube.com/watch?v=bqrOnIECCSg">Agile Testing – Video (60 min)</a></li>
<li>Automated Testing
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.catalysts.cc/wp-content/uploads/wispri/planning/Test-Driven%20Development%20(Acceptance).pdf">Automated Acceptance Testing – Presentation</a></li>
</ul>
</li>
<li>How Agile are you? (Agile Adoption)
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://agileconsortium.blogspot.com/2007/12/nokia-test.html">Nokia Test – basic Agile test</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.butunclebob.com/ArticleS.UncleBob.TheAgileTest">Uncle Bob’s more extensive test</a></li>
</ul>
</li>
<li>Crystal Clear – low ceremony Agile process
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.informit.com/articles/printerfriendly.aspx?p=345009">7 Properties of Crystal Clear – Article</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.wissel.net/blog/Images/1F73285CB5BCA045482573B000117D18/EntryRichMime/M2?OpenElement">7 Properties Mind Map</a></li>
</ul>
</li>
</ul>
<h1 style="color: #63bb01; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; font: normal normal normal 1.45em/normal Georgia, serif; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #eae8e9; width: 640px;">Books to Read</h1>
<h4>Stage 1: Getting the basics in place</h4>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Iterative-Development-Managers-Guide/dp/0131111558">Agile and Iterative Development: A Manager’s Guide</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Iterative-Development-Managers-Guide/dp/0131111558"></a><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Software-Development-SCRUM-Schwaber/dp/0130676349">Scrum I: Agile Software Development With Scrum – Basic Instructions</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Project-Management-Scrum-Microsoft/dp/073561993X">Scrum II: Agile Project Management With Scrum – Stories about Scrum Usage</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/User-Stories-Applied-Software-Development/dp/0321205685">User Stories Applied: For Agile Software Development</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Scrum-XP-Trenches-Henrik-Kniberg/dp/1430322640">Scrum and XP from the Trenches</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Estimating-Planning-Mike-Cohn/dp/0131479415">Agile Estimating and Planning</a></li>
</ul>
<h4>Deepening the practice</h4>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Implementing-Lean-Software-Development-Concept/dp/0321437381">Implementing Lean Software Development: From Concept to Cash</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Software-Development-Cooperative-Game/dp/0321482751">Agile Software Development: The Cooperative Game</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Software-Project-Managers-Agility-Development/dp/0321502752">The Software Project Manager’s Bridge to Agility</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Enterprise-Scrum-Ken-Schwaber/dp/0735623376">Scrum III: Enterprise Scrum</a></li>
</ul>
<h4 style="font-size: 1em;">eXtremeProgramming</h4>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Extreme-Programming-Explained-Embrace-Change/dp/0321278658">Extreme Programming Explained: Embrace Change</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Extreme-Programming-Installed-Ron-Jeffries/dp/0201708426">Extreme Programming Installed</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Art-Agile-Development-Shane-Warden/dp/0596527675">Art of Agile Development</a></li>
</ul>
<h3 style="color: #2a3845; font-style: italic; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-bottom: 0px; font: normal normal bold 1em/normal Arial, Helvetica, sans-serif; font-size: 1.17em;">Technical Practices</h3>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">Domain-Driven Design: Tackling Complexity in the Heart of Software</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Refactoring-Improving-Design-Existing-Code/dp/0201485672">Refactoring: Improving the Design of Existing Code</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Refactoring-Improving-Design-Existing-Code/dp/0201485672"></a><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Agile-Testing-Practical-Guide-Testers/dp/0321534468">Agile Testing: A Practical Guide for Testers and Agile Teams</a></li>
</ul>
<h4><strong>Lean</strong></h4>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Lean-Software-Development-Agile-Toolkit/dp/0321150783">Lean Software Development: An Agile Toolkit</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Lean-Software-Development-Agile-Toolkit/dp/0321150783"></a><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Goal-Process-Ongoing-Improvement/dp/0884270610">The Goal: A Process of Ongoing Improvement</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Goal-Process-Ongoing-Improvement/dp/0884270610"></a><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Critical-Chain-Eliyahu-M-Goldratt/dp/0884271536">Critical Chain</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Lean-Thinking-Second-Revised-Updated/dp/0743249275">Lean Thinking: Banish Waste and Create Wealth in Your Corporation</a></li>
</ul>
<h4 style="font-size: 1em;">Other good ones</h4>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Crystal-Clear-Human-Powered-Methodology-Small/dp/0201699478">Crystal Clear: A Human-Powered Methodology for Small Teams</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Managing-Agile-Projects-Kevin-Aguanno/dp/1895186110">Managing Agile Projects</a></li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.amazon.ca/Fearless-Change-Patterns-Introducing-Ideas/dp/0201741571">Fearless Change: Patterns for Introducing New Ideas</a></li>
</ul>
<h1 style="color: #63bb01; margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; font: normal normal normal 1.45em/normal Georgia, serif; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #eae8e9; width: 640px;">Games &amp; Simulations</h1>
<ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; list-style-type: square; list-style-position: initial; list-style-image: initial; padding: 0px;">
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.xp.be/xpgame.html">XPGame</a> – learn how Agile really works</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.paircoaching.net/games_en.php">Leadership Game </a>- learn different leadership styles and how you relate to them</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://www.agilecoach.net/coach-tools/bottleneck-game/">Bottleneck Game</a> – learn how to improve your processes to eliminate bottlenecks</li>
<li><a style="color: #009ec0; text-decoration: none;" href="http://xp.be/businessvaluegame.html">Business Value Game</a> – learn strategies and challenges with prioritizing work (product backlog)</li>
</ul>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2010/06/learning-through-games/' rel='bookmark' title='Permanent Link: Learning Through Games'>Learning Through Games</a> <small>As a trainer, I have become increasingly convinced that games...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/agile-kick-start-and-agile-games-day-announce/' rel='bookmark' title='Permanent Link: Agile Kick Start and Agile Games Day &#8211; Announcing Two Workshops October 19th and 21st'>Agile Kick Start and Agile Games Day &#8211; Announcing Two Workshops October 19th and 21st</a> <small>As one of the organizers of Agile Tour Toronto I...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/gentle-introduction-to-agile/' rel='bookmark' title='Permanent Link: Agile Tour Toronto Presentation: A Gentle Introduction to Agile'>Agile Tour Toronto Presentation: A Gentle Introduction to Agile</a> <small>Below are the slides from my first presentation at AgileTourToronto....</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2009/10/agile-learning-resources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Tour Toronto Presentation: A Gentle Introduction to Agile</title>
		<link>http://www.agilitrix.com/2009/10/gentle-introduction-to-agile/</link>
		<comments>http://www.agilitrix.com/2009/10/gentle-introduction-to-agile/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 16:24:32 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Agile Tour Toronto]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=503</guid>
		<description><![CDATA[Below are the slides from my first presentation at AgileTourToronto. It is based on ideas from Alistair Cockburn (among others) and has been a work-in-progress since I started sharing Agile ideas in 2002.
Presentation Overview
There are a lot of choices and alternatives for getting started with Agile. It can be confusing. This talk will give you [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2009/10/agile-tour-toronto-presentation-2-agile-executive-briefing/' rel='bookmark' title='Permanent Link: Agile Tour Toronto Presentation #2 &#8211; Agile Executive Briefing'>Agile Tour Toronto Presentation #2 &#8211; Agile Executive Briefing</a> <small>Below are the slides from my first presentation at AgileTourToronto. This is...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/agile-tour-toronto2009/' rel='bookmark' title='Permanent Link: Agile Tour Toronto 2009 Blasts off!'>Agile Tour Toronto 2009 Blasts off!</a> <small>Agile Tour Toronto 2009 is over and it was an...</small></li>
<li><a href='http://www.agilitrix.com/2009/12/agile-assessment-kickoff-presentation/' rel='bookmark' title='Permanent Link: Agile Assessment Kickoff Presentation'>Agile Assessment Kickoff Presentation</a> <small>Yesterday, Gerry Kirk and I kicked off a 4 day...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Below are the slides from my first presentation at <a style="color: #2244bb;" href="http://www.torontoagilecommunity.org/" target="_blank">AgileTourToronto</a>. It is based on ideas from Alistair Cockburn (among others) and has been a work-in-progress since I started sharing Agile ideas in 2002.</p>
<h2>Presentation Overview</h2>
<p>There are a lot of choices and alternatives for getting started with Agile. It can be confusing. This talk will give you a brief guided tour of Agile methodologies so that you have some understanding of how they are similar and how they differ. We&#8217;ll cover some of the history of iterative development and waterfall as well as the Agile Manifesto to provide context. At the end of this, you will have an understanding of key principles and the Agile landscape.</p>
<h2>Slides on Slideshare</h2>
<p><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="A Gentle Introduction To Agile" href="http://www.slideshare.net/michael.sahota/a-gentle-introduction-to-agile">A Gentle Introduction To Agile</a><br />
<object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agentleintroductiontoagile-091025105021-phpapp01&amp;rel=0&amp;stripped_title=a-gentle-introduction-to-agile" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=agentleintroductiontoagile-091025105021-phpapp01&amp;rel=0&amp;stripped_title=a-gentle-introduction-to-agile" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div id="__ss_2341547" style="text-align: left;">
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/michael.sahota">Michael Sahota</a>.</div>
</div>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2009/10/agile-tour-toronto-presentation-2-agile-executive-briefing/' rel='bookmark' title='Permanent Link: Agile Tour Toronto Presentation #2 &#8211; Agile Executive Briefing'>Agile Tour Toronto Presentation #2 &#8211; Agile Executive Briefing</a> <small>Below are the slides from my first presentation at AgileTourToronto. This is...</small></li>
<li><a href='http://www.agilitrix.com/2009/10/agile-tour-toronto2009/' rel='bookmark' title='Permanent Link: Agile Tour Toronto 2009 Blasts off!'>Agile Tour Toronto 2009 Blasts off!</a> <small>Agile Tour Toronto 2009 is over and it was an...</small></li>
<li><a href='http://www.agilitrix.com/2009/12/agile-assessment-kickoff-presentation/' rel='bookmark' title='Permanent Link: Agile Assessment Kickoff Presentation'>Agile Assessment Kickoff Presentation</a> <small>Yesterday, Gerry Kirk and I kicked off a 4 day...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2009/10/gentle-introduction-to-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deliberate Practice &#8211; a key to Craftsmanship</title>
		<link>http://www.agilitrix.com/2009/10/deliberate-practice-key-to-craftsmanship/</link>
		<comments>http://www.agilitrix.com/2009/10/deliberate-practice-key-to-craftsmanship/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 17:00:19 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Agile2009]]></category>
		<category><![CDATA[Craftsmanship]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=281</guid>
		<description><![CDATA[At Agile 2009, Mary Poppendieck presented on &#8220;Deliberate Practice&#8221; &#8211; how people become experts. The video and slides are available from InfoQ.
Consider the fifth value statement proposed for the Agile Manifesto by Bob Martin:
Craftsmanship over Crap
This presentation follows in the theme craftsmanship &#8211; How do we as a community bring it about?
The answer given in [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2009/12/coaching-self-organizing-teams/' rel='bookmark' title='Permanent Link: Coaching Self-Organizing Teams'>Coaching Self-Organizing Teams</a> <small>Joseph Pelrine gave a really interesting session on &#8220;Coaching Self-Organizing...</small></li>
<li><a href='http://www.agilitrix.com/2009/09/user-interface-engineering-agile-2009-banquet/' rel='bookmark' title='Permanent Link: User Interface Engineering &#8211; Agile 2009 Banquet'>User Interface Engineering &#8211; Agile 2009 Banquet</a> <small>Jared Spool gave a pretty good banquet keynote for Agile...</small></li>
<li><a href='http://www.agilitrix.com/2009/09/i-come-to-bury-agile-not-to-praise-it/' rel='bookmark' title='Permanent Link: I come to bury Agile, not to praise it'>I come to bury Agile, not to praise it</a> <small>Here is the Visual Note (see earlier blog) of Alistair...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>At Agile 2009, Mary Poppendieck presented on &#8220;Deliberate Practice&#8221; &#8211; how people become experts. The <a href="http://www.infoq.com/presentations/poppendieck-deliberate-practice-in-software-development">video and slides</a> are available from InfoQ.</p>
<p>Consider the <a href="http://blog.objectmentor.com/articles/2008/08/14/quintessence-the-fifth-element-for-the-agile-manifesto">fifth value statement proposed for the Agile Manifesto</a> by Bob Martin:</p>
<h2>Craftsmanship over Crap</h2>
<p>This presentation follows in the theme craftsmanship &#8211; How do we as a community bring it about?</p>
<p>The answer given in this talk is we need to consider what it takes to develop elite level skills in other professions &#8211; deliberate practice.  Consider the visual note below:</p>
<p><a href="http://www.agilitrix.com/wp-content/uploads/2009/09/Deliberate-Practice.JPG"><img class="aligncenter size-large wp-image-282" title="Deliberate Practice" src="http://www.agilitrix.com/wp-content/uploads/2009/09/Deliberate-Practice-630x357.jpg" alt="Deliberate Practice" width="630" height="357" /></a></p>
<p>It seems to me that virtually every company I have every worked for or with has done virtually nothing to bring about excellence in technical (or other) skills.  <em>Imagine </em>what the world would be like if companies viewed their employees as assets and invested in them with mentoring and challenges so that they get deliberate practice.  This requires companies to think about Production Capability and not just Production.  More than just thinking about hitting the deadline.  This is an essential component in build lasting success.</p>
<p>Ever heard of this crazy-sounding approach called eXtreme Programming (XP)? Maybe they were on to something. <img src='http://www.agilitrix.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2009/12/coaching-self-organizing-teams/' rel='bookmark' title='Permanent Link: Coaching Self-Organizing Teams'>Coaching Self-Organizing Teams</a> <small>Joseph Pelrine gave a really interesting session on &#8220;Coaching Self-Organizing...</small></li>
<li><a href='http://www.agilitrix.com/2009/09/user-interface-engineering-agile-2009-banquet/' rel='bookmark' title='Permanent Link: User Interface Engineering &#8211; Agile 2009 Banquet'>User Interface Engineering &#8211; Agile 2009 Banquet</a> <small>Jared Spool gave a pretty good banquet keynote for Agile...</small></li>
<li><a href='http://www.agilitrix.com/2009/09/i-come-to-bury-agile-not-to-praise-it/' rel='bookmark' title='Permanent Link: I come to bury Agile, not to praise it'>I come to bury Agile, not to praise it</a> <small>Here is the Visual Note (see earlier blog) of Alistair...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2009/10/deliberate-practice-key-to-craftsmanship/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>User Interface Engineering &#8211; Agile 2009 Banquet</title>
		<link>http://www.agilitrix.com/2009/09/user-interface-engineering-agile-2009-banquet/</link>
		<comments>http://www.agilitrix.com/2009/09/user-interface-engineering-agile-2009-banquet/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 23:57:22 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Agile2009]]></category>
		<category><![CDATA[Craftsmanship]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=247</guid>
		<description><![CDATA[Jared Spool gave a pretty good banquet keynote for Agile 2009 on User Interface Engineering.  The main point is that is that very successful companies use amazing interfaces as a key competitive advantage.  And the key to this is good user experience design.
Case and point is Apple.  We watched an Apple video from the 80&#8217;s [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2010/06/rapid-reliable-releases/' rel='bookmark' title='Permanent Link: Rapid reliable releases'>Rapid reliable releases</a> <small>I recently attended a ThoughtWorks QTB &#8211; Rapid, Reliable Releases...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Jared Spool gave a pretty good banquet keynote for Agile 2009 on <a href="http://www.uie.com/" target="_blank">User Interface Engineering</a>.  The main point is that is that very successful companies use amazing interfaces as a key competitive advantage.  And the key to this is good user experience design.</p>
<p>Case and point is Apple.  We watched an Apple video from the 80&#8217;s that showed <a href="http://www.youtube.com/watch?v=3WdS4TscWH8">Apple&#8217;s vision for the future</a> of the computer (funny/sad was a plot element so long ago was about global climate change).  <em>Everyone</em> at Apple knew what the vision was and could explain it.  So what this means is that everyone is <span style="text-decoration: underline;"><em>thinking </em></span>about the long-term vision.  Every time they have a choice to make on design they can take a step in the right direction so that the future can be achieved in part through many many tiny shifts.</p>
<p style="text-align: center;"><a href="http://www.agilitrix.com/wp-content/uploads/2009/09/User-Interface-Engineering.JPG"><img class="aligncenter size-full wp-image-248" title="User Interface Engineering" src="http://www.agilitrix.com/wp-content/uploads/2009/09/User-Interface-Engineering.JPG" alt="User Interface Engineering" width="530" height="384" /></a></p>
<p style="text-align: left; ">Good design is INVISIBLE.  NetFlicks is destroying their competition through a ridiculously high net promoter score (how likely someone is to refer a friend).  No one ever mentions their Web UI even though it rocks &#8211; it&#8217;s invisble: It does what it needs to and it&#8217;s easy.  How do they do it?  In part through a culture of excellence &#8211; employees are the top priority and the CEO puts this ahead of board meetings.  To support this they hire fast and fire fast.  They also pass the culture test.</p>
<p style="text-align: left; ">How do you <em>learn good user interface design</em>?  Mentoring!  Good designers know what good design is, but cannot explain it.  Like <a href="http://en.wikipedia.org/wiki/Chick_sexing">chicken sexing</a>.  (Makes me wonder how much we are kidding ourselves that good design can simply be taught through patterns or what not.)</p>
<p style="text-align: left; ">The <em>company test</em> is a recipe for successful cultures.  All the companies with awesome user experience met the test even though they were radically different in many ways.</p>
<p style="text-align: left; ">The last point about <em>celebrating failure</em> is critical.  If people are not making mistakes, then they are playing it safe.  And if they are playing it safe, the result is <em>mediocrity not excellence</em>.  There is a similar field of thought around innovation &#8211; it also requires support for failure.</p>
<p style="text-align: left;">If you need help building better UI, start with #2 &#8211; spend some time observing your users and then make it better.</p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2010/06/rapid-reliable-releases/' rel='bookmark' title='Permanent Link: Rapid reliable releases'>Rapid reliable releases</a> <small>I recently attended a ThoughtWorks QTB &#8211; Rapid, Reliable Releases...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2009/09/user-interface-engineering-agile-2009-banquet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XPToronto Talk &#8211; Understanding and Dealing with Technical Debt by Amr Elssamadisy</title>
		<link>http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/</link>
		<comments>http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 03:06:22 +0000</pubDate>
		<dc:creator>Michael Sahota</dc:creator>
				<category><![CDATA[Technical Practices]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Technical Debt]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.agilitrix.com/?p=220</guid>
		<description><![CDATA[Tonight Amr Elssamadisy from GembaSystems presented at the XPToronto/Agile User group.  There was a big turnout of almost 40 people and I think one person didn&#8217;t actually have a seat.
What follows are a series of notes from the talk without too much editing&#8230;
People&#8217;s reasons for wanting to hear about Technical Debt tonight

People with short-term focus
Technical [...]


Related posts:<ol><li><a href='http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/' rel='bookmark' title='Permanent Link: Strategies for Effectively Managing Legacy Systems'>Strategies for Effectively Managing Legacy Systems</a> <small>Derek Longmuir presented ThoughtWorks QTB on working with legacy systems....</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
<li><a href='http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/' rel='bookmark' title='Permanent Link: Inventors Dilemma and the Dead Core'>Inventors Dilemma and the Dead Core</a> <small>Ken Schwaber has a great presentation where he talks about...</small></li>
</ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Tonight Amr Elssamadisy from <a href="http://us.gembasystems.com/">GembaSystems</a> presented at the <a href="http://www.xptoronto.com/">XPToronto/Agile User group</a>.  There was a big turnout of almost 40 people and I think one person didn&#8217;t actually have a seat.</p>
<p>What follows are a series of notes from the talk without too much editing&#8230;</p>
<h2>People&#8217;s reasons for wanting to hear about Technical Debt tonight</h2>
<ul>
<li>People with short-term focus</li>
<li>Technical Arguements</li>
<li>Is it worth refactoring</li>
<li>Currently living in Legacy Land</li>
<li>Business value of paying down technical debt</li>
<li>How?  (to fix)</li>
<li>Best Practices</li>
<li>Root causes</li>
</ul>
<h2>Examples of Technical Debt</h2>
<ul>
<li>I have spent 3 years building legacy code web site with no unit tests.</li>
<li>Code that has been copy and pasted.</li>
<li>Code that is difficult to get under test: large classes, methods.</li>
<li>Branching and duplication of the application.</li>
<li>Duplication of functionality written by different people.</li>
</ul>
<h2>How does technical debt affect behaviour?</h2>
<p>New requirements</p>
<ul>
<li>Dumbed-down solutions</li>
<li>Fear of change.  Not sure what will happen.</li>
<li>Question to ask: How hard is work this year compared to last year?</li>
<li>Splinter IT group into siloed green team</li>
</ul>
<p>Design</p>
<ul>
<li>What design?</li>
<li>No new design</li>
<li>No changed design</li>
<li>Tons of band-aid solutions</li>
<li>New features need to be workaround</li>
</ul>
<p>Defects</p>
<ul>
<li>Only critical ones</li>
<li>Lots and time and effort in regression ? $$$</li>
<li>Many bugs don’t get fixed – bad code</li>
<li>Often sketchy manual testing</li>
</ul>
<p>Maintainability</p>
<ul>
<li>Goes down with technical debt</li>
<li>Dead core after 5 years</li>
<li>Inventor’s dilemma – productivity goes down over time.</li>
<li>Difficult to get new people who can work with the code base.</li>
</ul>
<h2>Why do teams fall into this trap?</h2>
<p>People follow cost of change curve.  It rises exponentially: requirements to analysis to design to test to production.  Code is fragile for everyone but the author.</p>
<p>Test-first development makes the cost of change linear.  Courage?  Not needed so much since you have a test harness.  Tests act as a signaling system to people working on the system that there is something they need to pay attention to.</p>
<p>“Programming as Theory Building” – this can only be learned through <em>apprenticeship </em>which is not practiced in corporate America.  So what do you use?  Documents don’t work – this results in a new paradigm and the level of mismatch leads to additional cost.  Perhaps <em>pairing is the new apprenticeship model</em>.</p>
<h2>Breaking dependencies and adding test to legacy code</h2>
<p>Low coupling and high cohesion are main design principles. &#8211;&gt; Get teams to agree to “do no harm” to the design</p>
<p>Example of adding code into a function.  This will make cohesion worse.</p>
<ol>
<li>Take the code to be modified and move the code to a new function.  (Extract method refactoring)</li>
<li>How hard is it to create the main object?  Probably really hard.</li>
<li>So, refactor to a new class (a sprout) instead so you can create it and test it.</li>
<li>And may need to create mock objects to make this work due to parameters.</li>
<li>Use refactoring to aggregate related sprouts.</li>
</ol>
<p>Read Michael Feather&#8217;s book - <a href="http://www.amazon.ca/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052">Working Effectively with Legacy Code</a>.</p>
<p>Like most things, this is a people problem.  And then we had an interesting digression into Christopher Avery&#8217;s material on personal responsibility.</p>


<p>Related posts:<ol><li><a href='http://www.agilitrix.com/2010/04/strategies-for-effectively-managing-legacy-systems/' rel='bookmark' title='Permanent Link: Strategies for Effectively Managing Legacy Systems'>Strategies for Effectively Managing Legacy Systems</a> <small>Derek Longmuir presented ThoughtWorks QTB on working with legacy systems....</small></li>
<li><a href='http://www.agilitrix.com/2010/08/agile-2010-keynote-by-dave-thomas/' rel='bookmark' title='Permanent Link: Agile 2010 Keynote by Dave Thomas'>Agile 2010 Keynote by Dave Thomas</a> <small>Dave Thomas talked about a lot stuff so I pulled...</small></li>
<li><a href='http://www.agilitrix.com/2010/02/inventors-dilemma-and-the-dead-core/' rel='bookmark' title='Permanent Link: Inventors Dilemma and the Dead Core'>Inventors Dilemma and the Dead Core</a> <small>Ken Schwaber has a great presentation where he talks about...</small></li>
</ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.agilitrix.com/2009/09/xptoronto-talk-understanding-and-dealing-with-technical-debt-by-amr-elssamadisy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
