<?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>&#62;kloctalk&#187; Agile Development</title>
	<atom:link href="http://www.klocwork.com/blog/category/agile-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.klocwork.com/blog</link>
	<description>&#62;kloctalk is a blog and a community for software development professionals who create and maintain mission-critical software and the challenges they face on a daily basis.</description>
	<lastBuildDate>Tue, 27 Jul 2010 15:00:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Agile Tools: An ROI Example</title>
		<link>http://www.klocwork.com/blog/2010/07/agile-tools-an-roi-example/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=agile-tools-an-roi-example</link>
		<comments>http://www.klocwork.com/blog/2010/07/agile-tools-an-roi-example/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 15:06:02 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1036</guid>
		<description><![CDATA[There has been lots of discussion on this blog (and others for that matter) on the importance of early defect detection, refactoring, and code reviews, but what does it all mean to a team of developers trying to maximize their velocity in a 2 week iteration? Based on a number of studies, and some real-world [...]]]></description>
			<content:encoded><![CDATA[<p>There has been lots of discussion on this blog (and others for that matter) on the importance of <a href="http://www.klocwork.com/blog/2009/06/get-the-red-out/">early defect detection</a>, <a href="http://www.versionone.com/Agile101/Refactoring.asp">refactoring</a>, and <a href="http://www.klocwork.com/blog/2010/04/the-joy-of-code-review-part-4/">code reviews</a>, but what does it all mean to a team of developers trying to maximize their <a href="http://softwaredevelopmenttoday.blogspot.com/2008/10/what-is-velocity-in-agile-software.html">velocity </a>in a 2 week iteration? Based on a number of studies, and some real-world customer feedback  we have put together the following ROI&#8230;but note that this ROI is not measured in dollars, but rather in hours saved, because a development team can more easily relate to a 20 hour time savings per iteration rather than a break even point of 14.5 months. A few assumptions first&#8230;the team is made up of 10 developers, working on 5 stories (each story creates about 300 LOC) every 2 week iteration. Also, we used internal estimates for the refactoring time savings since we couldn&#8217;t find any 3<sup>rd</sup> party data on refactoring ROI. . If you have anything more concrete, I&#8217;d love to hear about it.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/07/roi1.jpg"><img class="size-large wp-image-1040 alignleft" title="roi" src="http://www.klocwork.com/blog/wp-content/uploads/2010/07/roi1-e1279631266773.jpg" alt="" width="626" height="187" /></a></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>From this table (which has been a regular slide in our Agile in Action roadshow series) we see that tools can help, in this example just over 40 hours/iteration, which if you break that down further works out to about 1/2 day per developer every 2 weeks. Now that is an ROI that an agile development team can relate to&#8230;</p>
<p><br class="spacer_" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/07/agile-tools-an-roi-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting developers to RTFM</title>
		<link>http://www.klocwork.com/blog/2010/05/getting-developers-to-rtfm/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=getting-developers-to-rtfm</link>
		<comments>http://www.klocwork.com/blog/2010/05/getting-developers-to-rtfm/#comments</comments>
		<pubDate>Thu, 27 May 2010 19:08:42 +0000</pubDate>
		<dc:creator>Helen Abbott</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[technical writing]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=979</guid>
		<description><![CDATA[Documentation is the castor oil of programming. The managers know it must be good, because programmers hate it so much. Gerald M. Weinberg I used to be a strong believer in formal doc reviews. Distribute a draft, plan a meeting, and have everyone gather around the table. But in the last few years, my team [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Documentation is the castor oil of programming. The managers know it must be good, because programmers hate it so much. <a title="Gerald Weinberg" href="http://www.softwarequotes.com/showquotes.aspx?id=605&amp;name=Gerald%20M.%20Weinberg" target="_blank">Gerald M. Weinberg </a></p>
</blockquote>
<p>I used to be a strong believer in formal doc reviews. Distribute a draft, plan a meeting, and have everyone gather around the table. But in the last few years, my team has moved towards mostly meetingless reviews&#8211;because people hate review meetings (you know, like <a href="http://www.klocwork.com/blog/2009/11/the-joy-of-code-review/" target="_blank">code reviews</a>, only worse), because people haven’t always read the drafts when they get to the meeting, and because some of our dev team is overseas.</p>
<ul>
<li>First, we distributed PDFs and asked reviewers to submit comments in email or on a hard copy. For the overseas team, email was the only option. This is not fun for either the reviewer, who has to do a lot of copying and pasting and referring to page numbers, or for the writer.</li>
<li>Then we tried Adobe Acrobat PDF reviews, which allowed all reviewers to comment on the same PDF and view others’ comments. This was a big improvement over the email method.</li>
<li>Now that all of our product documentation is hosted on a MediaWiki-based site, we’ve asked reviewers to edit the pages themselves, or add comments to the Talk pages. This makes life much easier for both reviewers and writers.</li>
</ul>
<p>Still, as <a href="http://justwriteclick.com/" target="_blank">Anne Gentle</a> stresses in <a href="http://www.amazon.com/gp/product/0982219113?ie=UTF8&amp;tag=justwriteclic-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0982219113" target="_blank">Conversation and Community</a>, using a collaborative medium doesn’t guarantee that collaboration will happen.</p>
<p>How do we encourage developers and testers to “own” the documentation for their tools, and to think of help as part of the product? If we can get developers and testers to RTFM, the benefits are obvious. They understand the tools in a way that no one else does, so they’ll provide feedback that no one else can. And they’ll become familiar with the help for the tools they’re responsible for, so they’d know whether a change they’re making or testing would affect the help.</p>
<ul>
</ul>
<p>I thought up a few ways that might increase the amount of review feedback:</p>
<ul>
<li>Create review tasks in our Agile project tracking tool, <a href="http://www.xplanner.org/" target="_blank">XPlanner</a>. A top-down approach, and I wasn’t enthusiastic about it. Kinda like the daily castor oil treatment.</li>
<li>Make everyone’s MediaWiki user page into their doc review page; we’d add links to these pages and reviewers would be notified through email, then they could delete the link when they’ve reviewed it. A nice bottom-up approach, I thought, in the spirit of the wiki.</li>
</ul>
<p>But encouraging collaboration may be less about tools and more about process. If we involve reviewers earlier, they can tell us what they think before we’ve written a draft. A draft takes a long time to review, and if a reviewer doesn’t like it, they might not provide any feedback at all.</p>
<p>As Donna L. Davis says in a <a href="http://www.developerdotstar.com/mag/bookreviews/davis_agiledocumentation.html" target="_blank">review</a> of Andreas Rüping&#8217;s <a href="http://www.amazon.com/Agile-Documentation-Producing-Lightweight-Documents/dp/0470856173/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1274971603&amp;sr=1-1" target="_blank"><em>Agile Documentation</em></a>:</p>
<blockquote><p>Documentation isn’t bad. But bad documentation is terrible.</p>
</blockquote>
<p>Is reviewing docs worse than eating Brussels sprouts? Do you review docs when asked, or do you hide the invitations under the edge of your plate, hoping mom won’t notice? Is the help so bad that you can’t be bothered? Are you just too busy? Are you one of those people who never consults the help for tools you use? Do you think your users will be able to use the tools you’re developing or testing without the docs?</p>
<p>What would make you more inclined to “own” the help for the tools you’re developing or testing?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/getting-developers-to-rtfm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Observations from the Agile in Action Roadshow</title>
		<link>http://www.klocwork.com/blog/2010/05/observations-from-the-agile-in-action-roadshow/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=observations-from-the-agile-in-action-roadshow</link>
		<comments>http://www.klocwork.com/blog/2010/05/observations-from-the-agile-in-action-roadshow/#comments</comments>
		<pubDate>Fri, 21 May 2010 19:41:11 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=973</guid>
		<description><![CDATA[Just returned from my second stint on the Agile in Action roadshow with our friends from Electric Cloud, Perforce, and VersionOne, this time visiting the cities of Toronto, Philadelphia and Chicago. Rather than going into minute detail (and the fact it is a Friday afternoon before a long weekend), I thought I would share a [...]]]></description>
			<content:encoded><![CDATA[<p>Just returned from my second stint on the <a href="http://www.perforce.com/perforce/roadshows/register-chicago052010-p4.html">Agile in Action </a>roadshow with our friends from <a href="http://www.electric-cloud.com/">Electric Cloud</a>, <a href="http://www.perforce.com/">Perforce</a>, and <a href="http://www.versionone.com/">VersionOne</a>, this time visiting the cities of Toronto, Philadelphia and Chicago. Rather than going into minute detail (and the fact it is a Friday afternoon before a <a href="http://en.wikipedia.org/wiki/Victoria_Day">long weekend</a>), I thought I would share a few random observations from this trip:</p>
<ul>
<li>Organizations (and individuals) are begging for as much information and guidance as they can get on Agile and tools for Agile, and are willing to give up a days in the office and brave horrific traffic to get it</li>
<li>Teams that are 6 to 9 months practicing Agile think they&#8217;re novices, but in reality are seasoned veterans and have lived through most of the nightmares newer teams are currently facing</li>
<li>Toronto cab drivers have a random-number generator for their &#8220;flat-rate&#8221; fares from the airport</li>
<li>The majority of our audience would rank low to medium on both their knowledge and their adoption of Agile&#8230;they all want to go Agile, they just don&#8217;t know where to start (or if they were started, how they could improve things)</li>
<li>Window seats suck, but not as much as middle seats</li>
<li>Developers do code reviews, but don&#8217;t like doing them&#8230;</li>
<li>&#8230;but you could always count of the one guy in the audience who claimed to like them&#8230;obviously someone&#8217;s living in denial</li>
<li>And finally, if you are in 3 different hotels in 3 nights, keep the sleeve your room key comes in on you at all times&#8230;I guarantee you&#8217;ll forget your room number at least once during the trip. </li>
</ul>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/05/Picture1.jpg"><img class="alignleft size-full wp-image-977" title="Picture1" src="http://www.klocwork.com/blog/wp-content/uploads/2010/05/Picture1.jpg" alt="" width="274" height="181" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/observations-from-the-agile-in-action-roadshow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>If you want users to RTFM, write a better FM</title>
		<link>http://www.klocwork.com/blog/2010/05/if-you-want-users-to-rtfm-write-a-better-fm/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=if-you-want-users-to-rtfm-write-a-better-fm</link>
		<comments>http://www.klocwork.com/blog/2010/05/if-you-want-users-to-rtfm-write-a-better-fm/#comments</comments>
		<pubDate>Thu, 06 May 2010 13:40:33 +0000</pubDate>
		<dc:creator>Helen Abbott</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[technical writing]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=963</guid>
		<description><![CDATA[When I was documenting a new refactoring plugin for Vim, I checked out the Vim web site, and came across this blasphemy: Vim isn&#8217;t an editor designed to hold its users&#8217; hands. It is a tool, the use of which must be learned. Later, someone sent me this beauty, from Elitist Jerks: Stop being lazy [...]]]></description>
			<content:encoded><![CDATA[<p>When I was documenting a new refactoring plugin for Vim, I checked out the <a title="Vim web site" href="http://www.vim.org/" target="_blank">Vim web site</a>, and came across this blasphemy:</p>
<blockquote><p>Vim isn&#8217;t an editor designed to hold its users&#8217; hands. It is a tool, the use of which must be learned.</p>
</blockquote>
<p>Later, someone sent me this beauty, from <a title="Elitist Jerks" href="http://www.elitistjerks.com" target="_blank">Elitist Jerks</a>:</p>
<blockquote><p>Stop being lazy and read.</p>
</blockquote>
<p>Are users lazy? Do they expect hand-holding? Do they expect one button and no manual?</p>
<p>Or is this more true to life?</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/05/If-you-want-them-to-rtfm.jpg"><img class="alignleft size-medium wp-image-964" title="If-you-want-them-to-rtfm" src="http://www.klocwork.com/blog/wp-content/uploads/2010/05/If-you-want-them-to-rtfm-300x225.jpg" alt="If you want them to RTFM, write a better FM" width="300" height="225" /></a><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>In the end, it probably comes down to this: Make tools usable. Then technical communicators can spend more time creating truly helpful help, and less time explaining a bad UI.</p>
<p>If our goal as communicators is not just great help, but a great product, Agile makes more sense than ever.  If we want our usability suggestions to be implemented, we need to get developers’ attention while they’re working on that feature. Find the rough edges that would require a lot of <a title="splainy" href="http://www.urbandictionary.com/define.php?term=Splainy" target="_blank">splainy-splainy</a>, request a change, and then rejoice that we don’t need to explain what’s now obvious. Sometimes it’s hard for me to decide what’s a rough edge. Would my audience of developers find this as confusing as I do? But I’m learning to trust my gut.</p>
<p>At the same time, though I appreciate the benefits of Agile, I’ve started to worry less about the help being “done” at the end of an iteration; instead, I want to make sure I understand a feature well enough before the end of the iteration to suggest design changes and know what help will be required.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/if-you-want-users-to-rtfm-write-a-better-fm/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>If Agile is going Lean, then get it right</title>
		<link>http://www.klocwork.com/blog/2010/04/if-agile-is-going-lean-then-get-it-right/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=if-agile-is-going-lean-then-get-it-right</link>
		<comments>http://www.klocwork.com/blog/2010/04/if-agile-is-going-lean-then-get-it-right/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 15:21:48 +0000</pubDate>
		<dc:creator>Eric Hollebone</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=947</guid>
		<description><![CDATA[There has been a start to bring the concepts of  lean manufacturing  into agile development. Recently, Mike Cottmeyer in How to Build a Large Agile Organization proposes that Agile on its own is not enough for a large organization.  In his view, Agile falls short and needs to be supplemented by additional methodologies like Lean or Kanban when coordinating [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/04/Kanban-LeanAgile-WithBacklog.png"><img class="alignleft size-medium wp-image-951" title="Kanban-LeanAgile-WithBacklog" src="http://www.klocwork.com/blog/wp-content/uploads/2010/04/Kanban-LeanAgile-WithBacklog-300x171.png" alt="" width="300" height="171" /></a>There has been a start to bring the concepts of  lean manufacturing  into <a title="Agile development and static analysis" href="http://www.klocwork.com/solutions/agile-development/" target="_blank">agile  development</a>. Recently, Mike Cottmeyer in <a href="http://www.leadingagile.com/2010/03/okay.html" target="_blank">How to Build a Large Agile Organization</a> proposes that Agile on its own is not enough for a large organization.  In his view, Agile falls short and needs to be supplemented by additional methodologies like Lean or Kanban when coordinating outside the development team.</p>
<p>If adoption of Agile is impeded by its very nature in large organizations and Kanban is the proposed answer, then the Agile solution is insufficient. Agile needs to expand its scope to be relevant and useful for non-developers as well as across development teams.</p>
<p>To understand how Lean applies to Agile development, I&#8217;m going to take a short detour though history.</p>
<p>Mapping manufacturing principles to software development is an interesting cross-pollination of ideas. Discrete manufacturing is quite different from application development, but that doesn&#8217;t mean the software industry can&#8217;t learn a thing or two from a different sector.</p>
<p>Lean was born out of a need to re-invent the manufacturing industry, which had not really evolved since the inventions of Henry Ford and the production line. From Ford&#8217;s time to the post second world war period, most manufacturing was very good at making enormous quantities of the same product, regardless of the demand. Ford&#8217;s famous quote about color clearly exemplified the thinking of the day: &#8220;Any customer can have a car painted any colour that he wants so long as it is black&#8221;. In other words, Ford&#8217;s production line was optimized for manufacturing, not profit, and turned out to be quite inflexible when market conditions changed.</p>
<p>In the 1950s, Sakichi Toyoda made a revolutionary leap forward with two principles:</p>
<ol>
<li>Pull vs. push &#8211; at any point in the production process, the trigger to start work on a production unit is governed by its upstream neighbor.  As an example, I do not start my work on a product unit until the guy following me says he will be able to receive it.</li>
<li>Efficient manufacturing depends on the management of three key inefficiencies: overburden (muri), inconsistency (mura), and eliminating waste (muda).</li>
</ol>
<p>Together, these elements formed the underlying principles that Sakichi spearheaded into what is now known as <a href="http://en.wikipedia.org/wiki/Toyota_production_system">The Toyota Production System (TPS)</a>.  The TPS has subsequently been used as the the basis for Western derivatives such as Just-In-Time, value-stream mapping, Six Sigma and Lean, to name a few.</p>
<p>So what does this have to do with Agile and large organizations?</p>
<p>There are well-documented cases where <a title="Agility XL by Robert Schaaf" href="http://www.sstc-online.org/Proceedings/2007/pdfs/RJS1722.pdf" target="_blank">agile alone was not enough</a>, and that&#8217;s where Lean/TPS can add value.  For the most part though, the application of Lean principles has been limited to just one part: Kanban.</p>
<p>The TPS Kanban methodology has two aspects. First,  a Kanban card is attached to every unit under production and carries contextual information (metadata) about the tasks that need to be performed on that unit  and second, task readiness and data are used to trigger an specific action (work).</p>
<p>Over the past decade, the Agile methodology has been used successfully within  development teams, usually sized between  8 and 15 people. Agile&#8217;s benefits and values for this type of environment have been well articulated by many others (including on <a title="Agile Development" href="http://www.klocwork.com/blog/category/agile-development/">this blog</a>), but most Agile adopters may not have realized the close mapping to Lean/TPS.</p>
<ul>
<li>Muri (overburden) &#8211; overproduction &#8211; in an Agile context, this is usually expressed as over-planning</li>
<li>Mura (inconsistency) - elimination of bugs at the earliest stages, resulting in more  stable and reliable iterations</li>
<li>Muda (waste) &#8211; close interaction with the customer to absorb change and prevent wasted iterations</li>
<li><a title="Kaizen" href="http://en.wikipedia.org/wiki/Kaizen">Kaizen</a> (continuous improvement) &#8211; refactoring, unit testing, system integration</li>
</ul>
<p>Secondly and more importantly for large teams, the TPS/Lean idea of pull vs. push is key. But there are other aspects of Lean/TPS that would benefit software development, Kanban being an important one but not the only one.</p>
<p>In an Agile context, Kanban is usually expressed as a board or wall with movable index cards to visualize units of customer value and work flow. This is where I think the rails have come off Agile/Kanban compared to the original TPS philosophy.  Kanban is just one gear in the whole TPS methodology.  Its an integral part but no more important than the other parts.  To function optimally, the TPS/Lean requires all the piece to be implemented not just one.</p>
<p>The other aspects of TPS/Lean are:</p>
<ul>
<li>Andon (signage, early warning)  - literally means paper lantern and is used to call attention to a problem in the process.  For Agile, it should be express as how do you measure your team&#8217;s progress and convey that information to the whole organization.</li>
<li>Jidoka (autonomation) &#8211; automation with human intelligence.  The efficient use of tools like <a href="http://www.klocwork.com/products/insight/klocwork-truepath/">static analysis</a> and continuous build to aid in development.</li>
<li>Poka-yoke (fail-safing) &#8211; not just exception handling, but actual prevention of faults and counter-measure strategies to prevent the fault from reoccurring.</li>
</ul>
<p>These other parts of the TPS were not born because people like more processes and rules; they came out of need, something the agile methodology has yet to realize it requires.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/04/if-agile-is-going-lean-then-get-it-right/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Joy of&#8230; Code Review (part 4)</title>
		<link>http://www.klocwork.com/blog/2010/04/the-joy-of-code-review-part-4/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-joy-of-code-review-part-4</link>
		<comments>http://www.klocwork.com/blog/2010/04/the-joy-of-code-review-part-4/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 13:56:51 +0000</pubDate>
		<dc:creator>Gwyn Fisher</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=945</guid>
		<description><![CDATA[Part IV – Joy is in the eye of the beholder In preceding posts on this topic, I’ve outlined the continuing shift from in-person, physical interactions as being the defining notion of both social and business contexts, towards virtual interactions and marketplaces, and the fact that in all aspects except the most personal the latter [...]]]></description>
			<content:encoded><![CDATA[<p>Part IV – Joy is in the eye of the beholder</p>
<p>In <a href="http://www.klocwork.com/blog/2010/03/the-joy-of-code-review-part-3/">preceding posts</a> on this topic, I’ve outlined the continuing shift from in-person, physical interactions as being the defining notion of both social and business contexts, towards virtual interactions and marketplaces, and the fact that in all aspects except the most personal the latter can fulfill everything expected of the former. But what does all this have to do with engendering a vibrant and successful <a href="http://www.klocwork.com/products/insight-pro/inspect-code-review/">code review</a> practice within a development organization? On the face of it, nothing much. Code review, you could determine, tends to happen within organizations that enforce it, so all we need to do is to pass a rule requiring code review before shipment and we’re gold, right? I mean, what could go wrong?</p>
<p>Unfortunately the reality isn’t so clear cut. Most organizations worth their salt have a “requirement” for code review to be performed. At least on the important bits (a definition I particularly like, particularly when it comes to motivating programmers working on the “unimportant” bits). Or the hard bits (likewise). One awesome process description I saw in action recently called for the architects in the team to review each others’ code, but everybody else got a free ride – because obviously the code that our highest paid, most talented developers produce is the stuff we’re really worried about being wrong, amirite?</p>
<p>Despite such requirements, whether they make sense or not, the rarity of code review is out there for all to see. In fact, we recently <a href="http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/">sponsored</a> the analysts at <a href="http://www.forrester.com/rb/research">Forrester</a> to produce a survey of code review practice in various different development environments (embedded, ISV, IT, etc.) and found that although most developers appear to believe that they live in organizations that do code review, most also claim that it doesn’t happen consistently for some reason or other.</p>
<p>Let’s take the most prevalent excuse claimed: too busy, got other stuff to do. Why is this claimed so uniformly? Certainly developers are busy people – we pay them a lot and expect a lot for that remuneration, after all, so sure they’ve got other stuff to do. But if we put this in another context, perhaps outside of the development process, say visiting Grandma, I’m sure there’s a parallel to be drawn. After all, we should definitely go visit Grandma more often. She’s probably not going to be around that long. She’s a nice lady, and she cooks cute little cupcakes when we do go there. So why not do it more often? Too busy, got other stuff to do. And, of course, it’s <em>really annoying</em> to drop whatever you are legitimately doing (whether development or otherwise) and go visit the old lady with the bad habit of talking about you as if you weren’t in the room.</p>
<p>As a manager, therefore, your task in ensuring code review has a much lower friction profile to it, is to remove what I think I’ll try to trademark as <em>The Grandma Effect</em>. If I have to stop what I’m doing, put on my Sunday best, and sit listening to stories from three decades past, I’m going to find all kinds of reasons not to. But if instead (to stretch the analogy to what I’m sure is the breaking point), Grandma were to learn how to play a <a href="http://www.worldofwarcraft.com/info/classes/rogue/">wtf-pwning Mutilate-spec’d Rogue</a>, then my interactions with her become much more palatable and <em>manageable. </em>Replace the trip to Grandma’s house with the annoyance of setting up a formal code review and you’ll get the picture.</p>
<p>There’s a <a href="http://books.google.com/books?id=MMlxzMNkE_0C&amp;dq=tipping+point&amp;printsec=frontcover&amp;source=bn&amp;hl=en&amp;ei=eoKzS_eNDcX_lgfxqaS6BA&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=4&amp;ved=0CB4Q6AEwAw#v=onepage&amp;q=&amp;f=false">tipping point</a> here, and it revolves around the place and relevance of social tooling within your development team. You, your peers and your reports are currently interacting with friends over <a href="http://windowslive.com/desktop/messenger">MSN</a>, <a href="http://www.twitter.com">Twitter</a>, <a href="http://www.facebook.com">Facebook</a>, you name it. They’re booking dates, arranging weekend schedules, and getting the latest news from <a href="http://www.reddit.com">Reddit</a>. You name it, they’re doing it and it’s all coming to them through a few pretty simple to leverage mechanisms.</p>
<p>Replace their social and common knowledge-gathering activities with knowledge <em>leveraged</em> within the code base, and it’s pretty easy to see how you could graft what has the potential to be a <a href="http://msdn.microsoft.com/en-us/library/aa302437.aspx">very</a> <a href="http://hub.opensolaris.org/bin/view/Project+jds/code_review">annoying</a> <a href="http://searchsoftwarequality.techtarget.com/generic/0,295582,sid92_gci1319923,00.html">activity</a>, e.g. code review, onto a natural way of conducting business. Instead of creating an entire workflow around the invite, simply inform interested parties about commits and let them decide whether to review or not. Instead of insisting on top-down imposition, encourage a bottom-up adoption simply through ubiquitous availability of information.</p>
<p>Nobody forces anybody to use a service like Reddit, after all. It exists and thrives because of the community that finds value in its presence. Personally I interact with it through <a href="http://www.reddit.com/.rss">RSS</a> as I find that the most natural way of learning what it’s got to say. Lots of different feeds of information for the <a href="http://www.reddit.com/r/programming/.rss">different</a> <a href="http://www.reddit.com/r/funny/.rss">types</a> of <a href="http://www.reddit.com/r/science/.rss">news</a>, all presented through a common aggregation mechanism that feels natural, that works well, and that I don’t have to think about.</p>
<p>So, if commits that my team members are making, or commits that others are making to a component for which I feel either moral or actual responsibility are available through that same mechanism, I’m going to take advantage of the tools to review those commits and to make my presence felt.</p>
<blockquote><p><em>No formal review.</em></p>
<p><em>No formal sign-off</em>.</p>
</blockquote>
<p>But also a guarantee of way more participation, and what’s more, a broad reach around the typical chain-of-command style code reviews that we know and hate, instead engaging atypical contributors, not to mention the legion of lurkers just out to learn more. And isn&#8217;t that what it&#8217;s all about at the end of the day?</p>
<p>In summary: don’t <em>require</em> the architect, but <em>appreciate</em> their presence. And instead of bringing the people to the code, bring the code to the people.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/04/the-joy-of-code-review-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where Agile shines</title>
		<link>http://www.klocwork.com/blog/2010/03/where-agile-shines/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=where-agile-shines</link>
		<comments>http://www.klocwork.com/blog/2010/03/where-agile-shines/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 22:22:04 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=939</guid>
		<description><![CDATA[In my previous post I discussed where I thought Agile really falls flat.  The problem I have is working remotely.  Several times now I&#8217;ve misinterpreted what exactly we covered in remote meetings.  These have been mostly minor things but they do add up. But here is where there is just a massive difference between Waterfall [...]]]></description>
			<content:encoded><![CDATA[<p>In my previous <a href="http://www.klocwork.com/blog/2010/03/where-agile-sucks/" target="_self">post </a>I discussed where I thought Agile really falls flat.  The problem I have is working remotely.  Several times now I&#8217;ve misinterpreted what exactly we covered in remote meetings.  These have been mostly minor things but they do add up.</p>
<p>But here is where there is just a massive difference between Waterfall versus Agile.  By far the biggest lesson for me and why I love Agile is all based on  visibility.  Having a working product in one simple iteration means the  world.  So even though I was ranting in my previous post, imagine if we were  doing waterfall.  Chaos could have ensued once the  product was integrated (maybe months after).  As many <a title="Leading   Agile" href="http://www.leadingagile.com/2009/01/agile-doesnt-fix-anything.html" target="_blank">point out</a>, iterative development shows us up front  (in two weeks or less) that we have a major problem.  I&#8217;ll stick to  Agile, thank you.</p>
<p>So Agile is great, I&#8217;m all aboard but I still have to do something about working remotely.  Once I get this addressed I should be sailing.</p>
<p>I&#8217;ve come across a few things that people are doing .  Mostly with some interesting video conferencing techniques (<a href="http://lisacrispin.com/wordpress/category/remote-team-members/" target="_blank">here </a>and <a href="http://www.hanselman.com/blog/BuildingAnEmbodiedSocialProxyOrCrazyWebcamRemoteCartThing.aspx" target="_blank">here</a>).  Do these really work?  There are some <a href="http://biblio.gdinwiddie.com/biblio/StudiesOfColocation" target="_blank">studies</a> which are interesting but they are not really applied in an Agile context.  I did come across one <a href="http://www.computer.org/portal/web/csdl/doi/10.1109/ADC.2003.1231464" target="_blank">article </a>that might be helpful&#8230;although I need to shell out a few bucks.  I did find one <a href="http://martinfowler.com/articles/agileOffshore.html" target="_blank">reference</a> on martinfowler.com that I thought was useful as it goes through the key points you need to consider with offshore development.</p>
<p>Overall, I still don&#8217;t have a good plan to deal with this.  So let me ask everyone out there, please let me know if you know of any good references.  I could certainly use some help.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/where-agile-shines/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code Reviews &#8211; Mandatory but Ad-Hoc?</title>
		<link>http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=code-reviews-mandatory-but-ad-hoc</link>
		<comments>http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 12:33:52 +0000</pubDate>
		<dc:creator>Brendan Harrison</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Forrester]]></category>
		<category><![CDATA[software verification]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=936</guid>
		<description><![CDATA[The importance of code reviews has already been well covered by lots of smart people like Jack Ganssle and Jason Cohen. Recently, the subject has become more important around here, so we want to offer our take. In particular, we’re looking at the best way(s) to incorporate code reviews into an overall software verification strategy [...]]]></description>
			<content:encoded><![CDATA[<p>The importance of <a href="http://www.klocwork.com/solutions/code-review/">code reviews</a> has already been well covered by lots of smart people like <a title="Peer Code Reviews in Embedded Software" href="http://www.ganssle.com/inspections.htm" target="_blank">Jack Ganssle</a> and <a title="Lightweight Peer Code Reviews" href="http://www.methodsandtools.com/archive/archive.php?id=66" target="_blank">Jason Cohen</a>. Recently, the subject has become <a title="Klocwork Code Review Tool" href="http://www.klocwork.com/products/insight-pro/inspect-code-review/" target="_blank">more important</a> around here, so we want to offer our take. In particular, we’re looking at the best way(s) to incorporate code reviews into an overall software verification strategy and how automated tools (such as <a title="Static Analysis" href="http://www.klocwork.com/products/insight/klocwork-truepath/" target="_blank">static analysis</a>, no shock there) can help unleash the benefits of peer code review. More on that angle another time, first the bigger picture.</p>
<p>Klocwork recently commissioned a survey conducted by Forrester research on this whole topic and the results are pretty interesting. While there’s a whole bunch of data that can’t be covered in a single blog post, a general theme we found is that developers see the value of code reviews, they’re often mandatory, but the process itself seems to be ad-hoc and quite ‘behind the times’. Here’s an example of what I mean:</p>
<div id="attachment_938" class="wp-caption aligncenter" style="width: 642px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/03/code_review_data11.png"><img class="size-full wp-image-938 " title="Code Review Survey Data" src="http://www.klocwork.com/blog/wp-content/uploads/2010/03/code_review_data11.png" alt="" width="632" height="336" /></a><p class="wp-caption-text">Code Reviews - Mandatory but Ad-Hoc</p></div>
<p>So, code reviews are mandatory but you can kinda invite whoever you want to review the code. Shouldn’t who reviews the code be pretty important? (Hint: Yes)</p>
<p>We’re gonna keep talking about different aspects of this important development milestone, so stay tuned and we’d be interested to hear anything you have to say on the topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Where Agile sucks</title>
		<link>http://www.klocwork.com/blog/2010/03/where-agile-sucks/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=where-agile-sucks</link>
		<comments>http://www.klocwork.com/blog/2010/03/where-agile-sucks/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 16:06:43 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=935</guid>
		<description><![CDATA[Unlike Todd who is this blog’s main Agile expert, I’m pretty new to agile.  I’ve gone through the typical training (CSPO) and all the other good stuff,  so I’m drinking the Kool-aid.  But I thought I would provide my perspective,  now that I’ve been working in an Agile shop for a while and tell you [...]]]></description>
			<content:encoded><![CDATA[<p>Unlike <a href="http://www.klocwork.com/blog/author/todd-landry/" target="_blank">Todd</a> who is this blog’s main Agile expert, I’m pretty new to agile.  I’ve gone through the typical training (<a href="http://www.scrumalliance.org/pages/certified_scrum_product_owner" target="_blank">CSPO</a>) and all the other good stuff,  so I’m drinking the Kool-aid.  But I thought I would provide my perspective,  now that I’ve been working in an Agile shop for a while and tell you what I think really sucks.  I’ve read lots of warnings why <a href="http://www.stickyminds.com/sitewide.asp?Function=WEEKLYCOLUMN&amp;ObjectId=12384&amp;ObjectType=ARTCOL&amp;btntopic=artcol" target="_blank">Agile can fail</a> and I’ve tried to stay focused on overcoming the hurdles.</p>
<p>Being a product manager, one of the things that is really ringing true to me is where Agile falls flat&#8211;working remotely.  Lots of discussions on how much it can suck <a href="http://weblogs.asp.net/astopford/archive/2006/08/03/The-impact-of-the-remote-worker-on-Agile-approaches.aspx" target="_blank">here</a>, <a href="http://jrothman.com/blog/mpd/2009/10/what-would-a-successful-agile-all-remote-team-look-like.html" target="_blank">here</a>, <a href="http://blog.mountaingoatsoftware.com/using-a-task-board-with-one-remote-team-member" target="_blank">here</a> and <a href="http://jrothman.com/blog/mpd/2009/10/agile-and-remote-people-part-1-telecommuting.html" target="_blank">here</a>.  As part of my job, I travel&#8230; lots.  If I’m not at a customer meeting I’m at the next trade show.  This means many design and planning meetings are done remotely.  I end up finding we have developed something different than what was originally discussed or at least what I thought.</p>
<p>This gets frustrating because it has a major impact &#8212; all of a sudden as opposed to having that working functionality at the end of the iteration, you are set back by redoing that same work the very next iteration.  About as productive as watching every single sport of the Winter Olympics (I don’t even like figure skating&#8230;I swear).</p>
<p>As much as I&#8217;m puking all over Agile, I&#8217;m still very invested (messy as it is).  Let&#8217;s face it, offshore development is a way of life and there are many things people are using to work in this remote context.  Next week I&#8217;ll post the opposite side of things and discuss the consequences of working remotely along with the value Agile does give you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/where-agile-sucks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Everything IS big in Texas</title>
		<link>http://www.klocwork.com/blog/2010/03/everything-is-big-in-texas/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=everything-is-big-in-texas</link>
		<comments>http://www.klocwork.com/blog/2010/03/everything-is-big-in-texas/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 13:20:40 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=931</guid>
		<description><![CDATA[As I write this, I&#8217;m sitting at the Dallas airport, suffering through a 3 hour delay on my flight to Washington D.C. to present at our 2nd Agile in Action Roadshow with our friends from Electric Cloud, Perforce, and VersionOne. As I have the time, I&#8217;ve been reflecting on my time here in Dallas, and [...]]]></description>
			<content:encoded><![CDATA[<p>As I write this, I&#8217;m sitting at the Dallas airport, suffering through a 3 hour delay on my flight to Washington D.C. to present at our 2nd <a href="http://www.electric-cloud.com/lp/road-show_TX030910-KW.php">Agile in Action Roadshow </a>with our friends from <a href="http://www.electric-cloud.com/">Electric Cloud</a>, <a href="http://www.perforce.com/">Perforce</a>, and <a href="http://www.versionone.com/">VersionOne</a>. As I have the time, I&#8217;ve been reflecting on my time here in Dallas, and the phrase &#8220;Everything is big in Texas&#8221; is bang on. Before I get to that though, I have to say that I do love Dallas&#8230;I&#8217;m not totally sure, but I truly believe I&#8217;m treated a little more special because of my last name (which I <em>casually </em>mention whenever<a href="http://www.klocwork.com/blog/wp-content/uploads/2010/03/yukon.jpg"><img class="alignright size-medium wp-image-932" title="yukon" src="http://www.klocwork.com/blog/wp-content/uploads/2010/03/yukon-300x225.jpg" alt="" width="210" height="158" /></a> I get the chance). Nothing like having the same surname as a famous <a href="http://en.wikipedia.org/wiki/Tom_Landry">coach </a>from the Dallas Cowboys!</p>
<p>Okay, so why do I think the Everything is big in Texas is accurate. For starters, my big delay is due to a big thunderstorm. My rental car preference is a Compact car, and what do I get? A Yukon&#8230;I&#8217;m not sure what is bigger, this vehicle, or the Canadian Territory with the same name.</p>
<p>I saw big hair, big hats, big rings, big belt buckles, big omelets, big waffles, and big enchiladas. What I also saw was a big enthusiasm for Agile development. We had a great turnout that was fully engaged from the instant the roadshow began, asking questions wanting to know more, sharing their experiences with others, visiting with the vendors and not leaving until they got the information they needed. I wrote a few weeks ago about <a title="Agile Adoption" href="http://www.klocwork.com/blog/2010/02/agile-adoption-an-update/" target="_blank">Agile adoption</a> and where it currently was, and participating in this event, and speaking with the attendees, it allowed me to gain some additional data points that only strengthened my beliefs on this&#8230;Agile is definitely growing, and in all industries. As I said before, I truly believe almost all organizations have some Agile developments teams.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/03/dallas.jpg"><img class="alignleft size-medium wp-image-933" title="dallas" src="http://www.klocwork.com/blog/wp-content/uploads/2010/03/dallas-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Hopefully the enthusiasm I encountered in Dallas will follow us to Washington D.C. And I&#8217;m thinking I may want to introduce myself as Todd Ovechkin&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/everything-is-big-in-texas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Joy of&#8230; Code Review (part 3)</title>
		<link>http://www.klocwork.com/blog/2010/03/the-joy-of-code-review-part-3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-joy-of-code-review-part-3</link>
		<comments>http://www.klocwork.com/blog/2010/03/the-joy-of-code-review-part-3/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 20:59:17 +0000</pubDate>
		<dc:creator>Gwyn Fisher</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=916</guid>
		<description><![CDATA[Part III – Joy is All Around Us When you think of a social activity, what do you think of? Perhaps a rave? Or maybe a quiet bridge foursome is more your style? Or even a Matrix-style meet-and-greet complete with latex and contortionists? Ahem… Or maybe you’ve finally let go of this old-world requirement to [...]]]></description>
			<content:encoded><![CDATA[<p>Part III – Joy is All Around Us</p>
<p>When you think of a social activity, what do you think of? Perhaps a rave? Or maybe a quiet bridge foursome is more your style? Or even a Matrix-style meet-and-greet complete with latex and contortionists? Ahem…</p>
<p>Or maybe you’ve finally let go of this old-world requirement to actually be in the presence of an individual to enjoy a social encounter with them, and instead have <a href="http://www.chatroulette.com">embraced</a> the <a href="http://omegle.com/">reality</a> of the 21<sup>st</sup> century, that <a href="http://www.reddit.com">society</a> and social interactions no longer require physical presence, and instead surround us every day, at every minute, as long as we (virtually) get out there and find them. Speaking as a long-time <a href="http://www.worldofwarcraft.com">online gamer</a>, I have a circle of folks I consider friends, with whom I <a href="http://www.ventrilo.com">talk most evening</a>s<a href="http://www.ventrilo.com/"></a>, with whom I’ve spent quality time learning and beating goal-based activities, yet none of whom I’ve ever met. And whilst their reaction to some family tragedy on my part may result in no more than a weak “dude, that blows…” on some forum or other, in every other aspect of social interplay, they fulfill exactly the same role as those few- and far-between actual, you know, <em>friends</em> that each of us cling to throughout life.</p>
<p>According to a <a href="http://en.wikipedia.org/wiki/Friendship#Decline_of_friendships_in_the_U.S.">study on the topic</a> conducted earlier this decade, friendship is becoming something of a luxury for the average American adult. Rather than expanding our circle of friends as travel has become more reachable for the masses, we’ve instead decreased that circle from an average of 3 to just above 1. So are we all just becoming obnoxious, introverted, “bah humbug!” Ebenezer Scrooge wannabes? Perhaps, and certainly that’s the <a href="http://www.usatoday.com/news/nation/2006-06-22-friendship_x.htm">trite response</a> to the statistics for people in search of a quick buzzword or appliance to blame.</p>
<p>But perhaps instead of this reflecting a net diminution of our quality of life, we’re simply replacing much of what was considered necessary in previous generations (beer with the boys, poker night, ice fishing trips, whatever floats your boat) with a more constant, more consistent, but at the same time more arms length notion of <a href="http://www.facebook.com">friendship</a> and <a href="http://www.twitter.com">social interaction</a>. Though different, it fulfills everything we need in terms of <a href="http://news.bbc.co.uk/2/hi/7920434.stm">communication</a> and <a href="http://jcmc.indiana.edu/vol12/issue4/ellison.html">support</a>, but leaves us free to concentrate on our family lives, or personal hobbies, or whatever else makes us happy to be, well, us.</p>
<p>Friendship when <em>we </em>want it, on <em>our </em>terms, and only then.</p>
<p>One potential projection of all of this can be found in the ongoing trending of the social nexus of life, business and relationships towards the online marketplaces that have sprung up around activity-, or focus-based requirements (I referred to this in my first post on this topic, drawing the correlation between <a href="http://www.facebook.com">Facebook</a> and dating, <a href="http://www.linkedin.com">LinkedIn</a> and prospecting, etc.).</p>
<p>Find a marketplace, find a life (or maybe, a <a href="http://www.secondlife.com">Second Life</a>) – and frankly, is that really any different from the actual bricks-and-mortar reality of the rat-infested, smelly locales of the distant past (minus, you know, the scary crone shouting on the street corner, and the propensity for picking up the Black Death at a moment’s notice…)?</p>
<p>Indeed, my Chief Architect likes to describe an attendee at a recent conference as saying something like, “But what should we do about all these <em>old people</em> who can only e-mail or even worse need to use the phone? I mean, how am I supposed to communicate with somebody who doesn’t have a Facebook account, or doesn’t keep up with Twitter?” Note that this wasn’t a casual conversation over a beer, but rather a key point in a presentation (presumably to a room full of people with the requisite qualifications to be able to laugh affably at such an observation).</p>
<p>Whether we like it or not, whether we can personally deal with our relationships migrating into the ether, that’s where they’re headed, at double-quick time. So are you the guy with a red flag making sure that cars only drive at the same speed as horses, or are you busy building a Formula 1 car in your back yard?</p>
<p>And actually, perhaps more importantly, whether you’re either of these, you&#8217;d better believe your staff are busy climbing onboard with everything the new paradigm has to offer, so do you really want to be left playing catch up?</p>
<p>At a recent customer meeting I was surprised to hear that this highly compartmentalized, classified installation was putting a social media strategy in place (they termed it “our space”) to embrace what was happening anyway, and obviously to attempt to contain it within the security mechanisms required by their business. If they can do it, with all the restrictions and fenced-off classified strictures they have to deal with, why can&#8217;t we all?</p>
<p><a href="http://www.klocwork.com/products/insight-pro/inspect-code-review/">Code review</a>, you say? <em>Social</em> code review, more like. The current means of accomplishing the goal is fundamentally broken and will never scale, just like the requirement to only befriend people you could physically reach out and touch. The paradigm is changing, time to keep up&#8230;</p>
<p>And now in a deferential nod to the awesome Douglas Adams, this trilogy of posts on code review as a social activity will be continued in <a title="Code Review Part IV – Joy is in the eye of the beholder" href="http://www.klocwork.com/blog/2010/04/the-joy-of-code-review-part-4/">part IV</a>, coming to a blog near you soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/the-joy-of-code-review-part-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Limping through agile: Part 2</title>
		<link>http://www.klocwork.com/blog/2010/03/limping-through-agile-part-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=limping-through-agile-part-2</link>
		<comments>http://www.klocwork.com/blog/2010/03/limping-through-agile-part-2/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:28:56 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=892</guid>
		<description><![CDATA[At the risk of sounding like a co-dependent, in this post I discuss coping mechanisms that a “big picture” technical  writer (say, like my friend Beulah) can use to adjust to working in the granular conditions of an agile environment. Don’t give up the big picture When you work on a bunch of stories or [...]]]></description>
			<content:encoded><![CDATA[<p>At the risk of sounding like a co-dependent, in this post I discuss coping mechanisms that a “big picture” technical  writer (say, like my friend Beulah) can use to adjust to working in the granular conditions of an agile environment.</p>
<p><strong>Don’t give up the big picture</strong></p>
<p><strong> </strong></p>
<div id="attachment_909" class="wp-caption alignright" style="width: 310px"><strong><strong><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/03/Agile_tech_writing_2_tasks1.png"><img class="size-medium wp-image-909" title="Agile_tech_writing_2_tasks" src="http://www.klocwork.com/blog/wp-content/uploads/2010/03/Agile_tech_writing_2_tasks1-300x145.png" alt="Life planning with XPlanner" width="300" height="145" /></a></strong></strong><p class="wp-caption-text">Wouldn&#39;t it be great to use XPlanner for everything? Just imagine the velocity I could achieve.</p></div>
<p><strong> </strong></p>
<p>When you work on a bunch of stories or tasks, it’s trees, trees, trees everywhere  you look and not a forest to be found.  This means that a nice concise how-to could be a long way off while you document myriad  features.</p>
<p>My advice is to finish the pieces and try to get to the minimalist documentation afterwards. In fact, Shannon Greywalker <a href="http://greyfiti.com/2009/why-minimalist-documentation-not-always-good-match-for-agile-development/">suggests going back and fixing things up later</a>, but mentions that the business case for this can be a bit weak.  I think it’s worth the effort if you can swing it.</p>
<p>I’ve blogged before about how <a href="http://www.klocwork.com/blog/2009/10/hounding-your-sources/">workflow can be helpful</a> in getting the big picture. If the feature is big enough, workflow is your friend and can really pull you through.</p>
<p><strong>Go for “What’s New” first</strong><br />
For each release, we document the cool new features on a &#8220;<a href="http://www.klocwork.com/products/documentation/Insight-9.0/What%27s_New">What’s New</a>&#8221; page and &#8220;What’s New&#8221; is where I like to start.</p>
<p>If you can neither summarize nor explain why people would want to use a new feature, you have no business documenting it. &#8220;What’s New&#8221; keeps me focused on the whole point of the development work in the first place.</p>
<p><strong>“XPlan” everything</strong><br />
I was a slow adopter of <a href="http://www.xplanner.org/">XPlanner</a>, which is the tool our team uses to document development, testing and now, documentation.</p>
<p>Documentation has a separate project in XPlanner where we track our stories. At first, I found it difficult to update XPlanner regularly because some of our work can be difficult to account for.</p>
<p>For example, one our sales engineers is a prodigious reader of documentation who meanders over for his (thrice) daily “found a spelling mistake” or “did we document?” or “why can’t titles be printed on the PDFs generated by the wiki?” questions. All good points, with some requiring immediate action and others requiring medium and long-term planning.</p>
<p>But after reading <a href="https://secure.davidco.com/store/catalog/Getting-Things-Done-Paperback-Save-40-p-16175.php">Getting Things Done</a>, I can really see XPlanner as a great life planning tool. See the screenshot above. For low self-esteem days, I recommend first completing tasks such as “Wake up”, “Shower” and “Eat breakfast” under the Personal Maintenance story.</p>
<p><strong>Targeted procrastination</strong><br />
We’ve gone from blanket procrastination, which was a two-week offset, to carefully picking features that could benefit from a little more “fleshing out” before documentation. I like this approach because we show great planning with our procrastination.</p>
<p>For example, I like to spend bigger chunks of time on one thing, so I may delay documenting a bigger feature in favor of knocking some smaller stuff off the list one week, so I can string together several days in a row for the big stuff. I work better that way.</p>
<p><strong>Ask a lot of questions</strong><br />
My modus operandi is asking as many questions as possible. Be annoying, but in a friendly and charming way. There’s<a href="http://www.idratherbewriting.com/2010/02/17/the-art-of-asking-questions/"> an art to asking good questions</a>, but sometimes it takes a bunch of stupid ones to get there. Dive in.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/03/limping-through-agile-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Adoption: An Update</title>
		<link>http://www.klocwork.com/blog/2010/02/agile-adoption-an-update/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=agile-adoption-an-update</link>
		<comments>http://www.klocwork.com/blog/2010/02/agile-adoption-an-update/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 16:01:01 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=872</guid>
		<description><![CDATA[So awhile back, I was begging for some good statistics on Agile adoption, since at that time, there really wasn’t anything substantial to sink your teeth into. Well, a new report from Forrester came across my desk, and it helped to strengthen what most people believe&#8230;that Agile processes have overtaken Waterfall as the development methodology [...]]]></description>
			<content:encoded><![CDATA[<p>So <a href="http://www.klocwork.com/blog/2009/03/using-iteration-offsets-in-agile-development/">awhile</a> back, I was begging for some good statistics on Agile adoption, since at that time, there really wasn’t anything substantial to sink your teeth into. Well, a new report from <a href="http://www.forrester.com/rb/research">Forrester</a> came across my desk, and it helped to strengthen what most people believe&#8230;that Agile processes have overtaken <a href="http://en.wikipedia.org/wiki/Waterfall_model">Waterfall</a> as the development methodology of choice. In this report, which cites information gathered from a Q3 2009 survey of IT professionals, it states that 35% of respondents said that Agile most closely reflected their development process, while waterfall processes came in at 13%. I would even argue that iterative development could possibly be included in the Agile bucket, not because it is full-fledged Agile, but it is a baby-step in Agile’s direction. Perhaps I’m stretching things there&#8230;</p>
<p>Secondly, the data supports the fact that people are adopting the aspects of Agile that work for them and there’s no monolithic Agile implementation approach, something that is consistent with the many Agile teams I’ve spoken to over the last 3 ½ years or so. I’d be curious to know how many teams out there are doing , say, Scrum “by the book”&#8230;if there is such a thing.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/02/adoption.jpg"><img class="alignleft size-medium wp-image-873" title="Agile adoption" src="http://www.klocwork.com/blog/wp-content/uploads/2010/02/adoption-300x195.jpg" alt="" width="300" height="195" /></a>Finally, the other thing that the report hinted at, that I have seen firsthand, is that while most organizations are not completely Agile today, they almost all have some groups that are. I honestly believe that the percentage of organizations that have small pockets of groups doing Agile development is very high&#8230;perhaps in the 80s or 90s. I don’t have any hard data on this point, this is more of a gut-feel, but I would be interested to hear from our readers as to what they think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/02/agile-adoption-an-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Death by a thousand cuts</title>
		<link>http://www.klocwork.com/blog/2010/02/death-from-a-thousand-cuts/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=death-from-a-thousand-cuts</link>
		<comments>http://www.klocwork.com/blog/2010/02/death-from-a-thousand-cuts/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 19:40:38 +0000</pubDate>
		<dc:creator>Helen Abbott</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[technical writing]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=836</guid>
		<description><![CDATA[As a manager of a small tech writing team in an agile environment (are there any large tech writing teams left out there?), it’s easy to lose myself in how-the-heck-can-we-keep-up-with-myriad-coders-frantically-coding thinking. So when my manager scheduled a meeting to ask what innovations my team has planned for the next release or two, I thought of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_850" class="wp-caption alignleft" style="width: 226px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/02/orange-slice-crop.jpg"><img class="size-medium wp-image-850  " title="orange slice crop" src="http://www.klocwork.com/blog/wp-content/uploads/2010/02/orange-slice-crop-300x285.jpg" alt="" width="216" height="206" /></a><p class="wp-caption-text">Spend 80% of your time on One Thing.</p></div>
<p>As a manager of a small tech writing team in an agile environment (are there any large tech writing teams left out there?), it’s easy to lose myself in how-the-heck-can-we-keep-up-with-myriad-coders-frantically-coding thinking.</p>
<p>So when my manager scheduled a meeting to ask what innovations my team has planned for the next release or two, I thought of a few choice responses, such as “Um&#8230; how about documenting the new features in time for release? Is that innovative enough for ya?” and “Innovate THIS.”</p>
<p>Eventually I calmed down, since he’s the boss, and I have a mortgage.</p>
<p>I looked at the presentation I’d given after our last research period, that oh-so-short breathing time between releases. I reviewed the precious feedback we’ve gotten from a few customers and thought hard about it. I felt a bit better when I realized several of the goals we’d set for ourselves were already underway.</p>
<p>I dutifully wrote up a wiki page (because I can’t think without writing) that summarized a bunch of initiatives under each of our themes: process, community, quality, coverage, usability, and media. And I decided whether they’d fit into this release or the next. And I sent it off to my manager before our meeting.</p>
<p>He said OK, but where does all this get us?</p>
<p>He called my list depressing. Death by a thousand cuts.</p>
<p>He told me that to be successful, you need to put 80% of your time or money into one thing.</p>
<p>He suggested creating completely different help for just one tool. Throw out the old stuff and start over.</p>
<p>Once I played devil’s advocate for awhile, I began to see where he was going with this. I suggested a tool that I thought would be a good candidate. So I think we’ve picked our One Thing for this release.</p>
<p>Here’s how I’m thinking about our One Thing so far:</p>
<ul>
<li> Make sure everything the user needs to know is accessible from one place.</li>
<li> Target two very different points of interacting with the help: the getting started phase and the troubleshooting phase.</li>
<li> Use media that are best suited to the user and the information that needs to be conveyed.</li>
<li> Make the help interesting, fun and effective. Grab and keep the user&#8217;s attention long enough to convey what needs to be understood. Defuse frustration.</li>
</ul>
<p>And again (annoyingly), my manager is right; it’s much less daunting to try to make one thing better than to try to make everything better.</p>
<p>Now to persuade a few of the developers to star in our walk-through video&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/02/death-from-a-thousand-cuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Joy of&#8230; Code Review (part 2)</title>
		<link>http://www.klocwork.com/blog/2010/01/the-joy-of-code-review-part-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-joy-of-code-review-part-2</link>
		<comments>http://www.klocwork.com/blog/2010/01/the-joy-of-code-review-part-2/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 16:58:20 +0000</pubDate>
		<dc:creator>Gwyn Fisher</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=708</guid>
		<description><![CDATA[Part II &#8211; Joy is the word… OK, so Grease is really the word, but it didn’t fit my theme, gimme a break… Anyway, back on topic, since Joy of code review &#8211; part one of this series was published last year we’ve seen our new code review product in action in a variety of [...]]]></description>
			<content:encoded><![CDATA[<p>Part II &#8211; Joy is the word…</p>
<p>OK, so Grease is really the word, but it didn’t fit my theme, gimme a break… Anyway, back on topic, since <a href="http://www.klocwork.com/blog/2009/11/the-joy-of-code-review/">Joy of code review &#8211; part one</a> of this series was published last year we’ve seen our new <a href="http://www.klocwork.com/products/insight-pro/inspect-code-review/">code review</a> product in action in a variety of customer and prospect situations, and much like the eponymous hair product in the musical mentioned above, what we thought of as an interesting twist on an existing paradigm has turned into a bit of a barn burner. I refer, in this case, to the notion of what constitutes a code review if you remove the formalism of the invite from the process.</p>
<p>Consider what I’ll call, for the sake of being what marketers insist on terming “edgy” (for no really good reason as far as I can make out), <em>old fashioned</em> code reviews. You know the type, we talk about how we really should do more of them all the time. Check in your code, mail out a bunch of invites, mail some more when those get declined, gather around a table, project your code and wait for the insults to come rolling in.</p>
<div id="attachment_709" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/01/Review.jpg"><img class="size-medium wp-image-709 " title="Code Review, the old fashioned way" src="http://www.klocwork.com/blog/wp-content/uploads/2010/01/Review-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">You want to try that again, Mr. Coding Specialist...?</p></div>
<p>On the down side of these things are all the obvious problems… People don’t like getting reviewed, and unless you have a particularly unpleasant architect, the reviewer is no happier about being in the room than the person on the sharp end. Factor in the time, the annoyance of the arrangements, the opportunity cost of yanking the architect away from whatever they were previously doing, and you’ve got a really expensive, not very productive, but very important from a pointy-haired-manager-perspective process.</p>
<p>It’s really the classical no-win situation. Your manager requires it to be done. You hate it, and you know everybody else in the room hates it too. It’s like a giant dose of spinach to a five year old – doesn’t matter how good it is for you, you’d rather scream and sit in the naughty chair all day than let that stuff past your lips.</p>
<p>So when we were thinking about changing the approach to code review, it seemed obvious to us that whilst code review itself is valuable, the means by which it gets accomplished is fundamentally broken. Factor in peoples’ unthinking delight when confronted with anything <a href="http://www.facebook.com" target="_blank"><em>social</em></a> and what the heck, we figured, let’s turn the whole thing on its head. Instead of going top-down into a software organization and helping the manager enforce something unpleasant in an all new and collaborative-y, enterprise-y way, how about reaching out and encouraging bottom-up engagement through a model that people are comfortable with anyway, namely formless (a.k.a. social) communities.</p>
<p>Who’s the most obvious person to review the code of a good developer, after all? It might be their architect, but the chances of a good developer making a blunder of the architectural type (or any kind of dumb error) is probably reasonably low. Not saying it doesn’t happen, but we pay people at that level a good amount of money on the understanding that they produce decent code, so why then treat them like kids? Instead, if the code produced by that guy is made available for <em>anybody</em> to review, quite literally, then rather than getting the architect grumpy because he’d rather be thinking about the next huge money maker than what this guy happened to have done mostly right but nit-pickingly-wrong in this one situation, you get other team members taking part who have (in most cases) more useful input to impart anyway.</p>
<p>Instead of feedback of the “so… rather than using that particular transitive constructor, I’ve found that explicitly instantiating a new object and then initializing only what I need saves me, on average, 3 cycles a day” type, you might get the “hey, I was hacking on that a while back… might want to filter that data, cuz Bob’s front end passes in all kinds of crap… just saying” type instead – your choice, but personally I’d rather hear an hour’s worth of the latter than a moment’s worth of the former…</p>
<p>So who is at the review turns out to be much more important than whether it’s held, given some arbitrary set of “holding” conditions. But of course this comes with its own set of challenges, notably how do you know when you’re done if there’s no formal “meeting” to review your code (and to insult you, have we mentioned that part?).</p>
<p>In fact, it’s much like how the transition from waterfall to Agile was accompanied by many a gnashing of management gums and misplaced wails of “but how will I know if it’s going to be done on time?” But hey, that didn’t work out so bad, did it? People got used to time boxing, to changing requirement sets, to not waiting until it was arbitrarily “finished” and instead shipping it so as to gather feedback faster.</p>
<p>In my next post I’ll look at this new world order from the top down and examine the benefits to encouraging (rather than imposing) a social code review paradigm, and how it can make those metrics we know you care about look better than ever before.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/01/the-joy-of-code-review-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Limping through agile</title>
		<link>http://www.klocwork.com/blog/2010/01/limping-through-agile/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=limping-through-agile</link>
		<comments>http://www.klocwork.com/blog/2010/01/limping-through-agile/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:47:55 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[technical writing]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=635</guid>
		<description><![CDATA[I’m a technical writer who’s a big picture kind of person and that means agile development is sheer torture for me. Going into my second agile project, I thought I would be able to go with the “flow” a bit more. I was wrong. But, it’s important to point out that our documentation team hit [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_654" class="wp-caption alignright" style="width: 223px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/01/agile_limping3.png"><img class="size-full wp-image-654" style="border: 1px solid black;" title="agile_limping" src="http://www.klocwork.com/blog/wp-content/uploads/2010/01/agile_limping3.png" alt="" width="213" height="184" /></a><p class="wp-caption-text">The not-so-agile technical writer</p></div>
<p>I’m a technical writer who’s a big picture kind of person and that means agile development is sheer torture for me.</p>
<p>Going into my second agile project, I thought I would be able to go with the “flow” a bit more. I was wrong.</p>
<p>But, it’s important to point out that our documentation team hit all of our deadlines for new features, while substantially rewriting our help set and moving it to a <a title="RTFW" href="http://www.klocwork.com/blog/2009/12/rtfw/">wiki</a>. I’m pleased with the outcome, but the trip was not pleasant.</p>
<p>This will be my first post in a series about technical writing in an agile environment. Today’s post outlines the obstacles that I face—aspects of being me (mostly). The next post will outline my coping mechanisms, as well as our team’s plan for our next project.</p>
<p>If there’s no follow-up post, that means that my unbridled honesty has gotten my keester kicked to the curb.</p>
<p><strong>Waterfall nostalgia</strong></p>
<p>I got started on this tech writing gig as a consultant. The product would be a month or two away from release, but mostly fleshed out and I’d swan in, grab the requirements documentation and the design specifications (sometimes I’d write those), play around with the tool and voilà: a manual. I could be very single minded about what I was writing and just get it done.</p>
<p>To be clear, I&#8217;m in no way saying that the <a href="http://www.waterfall2006.com/">waterfall</a> method delivered better products or documentation, just that I had a better view of where we were going.</p>
<p>With agile, I feel like I’m jumping hither and yon doing all these minute tasks, with very little view of how they’re supposed to fit together. I’d often snarl to my manager after meetings that “I’m given a doorknob, a shingle and a shrub and told to go build a house with them.”</p>
<p>In fact, in his blog post about <a href="http://greyfiti.com/?p=114">minimalist documentation and agile</a>, Shannon Greywalker hits on my problem very accurately, and it’s this: “user stories are typically too granular” for <a title="minimalist documentation" href="http://www.teced.com/services_training_minimalist.html">minimalist documentation</a>. Minimalist documentation, as he says, requires the &#8220;35,000 foot view&#8221;.</p>
<p>And what I want runs counter to the whole agile methodology: THE BIG PICTURE RIGHT NOW.</p>
<p><strong>Multi-tasking versus uni-tasking</strong></p>
<p>Another problem I face is that I’m a uni-tasker; I like to finish what I start—not doable when features span several development iterations and are in major flux.</p>
<p>There are blogs out there about what <a href="http://www.employeeevolution.com/archives/2008/05/23/10-ways-generation-y-will-change-the-workplace/">Generation Y</a> is like, good or bad, but the one thing I do envy is their multi-tasking ability. These folks grew up doing homework, while downloading music and instant messaging their friends.</p>
<p>That’s the kind of splintered attention I envy. So, I got <a href="http://www.davidco.com/">David Allen’s</a> book, <a href="https://secure.davidco.com/store/catalog/Getting-Things-Done-Paperback-Save-40-p-16175.php">Getting Things Done</a>, but I couldn’t finish it. I read the line about having “a mind like water” and then froze. Uh-oh. Mind like ice. When I think of my work and personal to-do lists, I&#8217;m paralyzed.</p>
<p>So, I signed up for <a href="http://patti-murphy.blogspot.com/2009/11/why-not-inner-peace-and-whiter-teeth.html">meditation classes</a> and I’m now making another attempt to read <em>Getting Things Done</em>. I’m hoping it’ll help me switch directions faster. Not easy when you feel like the Titanic and need an hour’s notice to hang left. Now that I think about it, the Titanic is a career-limiting metaphor.</p>
<p><strong>Procrastination</strong></p>
<p>Now it’s time for confession. Our documentation department fought for and won a two-week offset for our last two projects. Yep, that’s right, we trailed development by a two-week iteration.  It’s amazing that we haven’t been rounded up and thrown in agile jail.</p>
<p>By procrastinating this way, we hoped that features would be more fleshed out before we started writing about them. It was our vain hope that this would contain some of the rewriting efforts. We still did a lot of rewriting, but this round we were rewriting a lot of material for the <a href="http://www.klocwork.com/documentation">wiki</a> anyway, so the offset didn’t matter that much.</p>
<p>By now, you’re probably thinking that it must be very hard being me. Don’t cry for me, <a href="http://www.klocwork.com/blog/2009/09/%E2%80%9Cokay-i%E2%80%99m-in-costa-rica-now-what%E2%80%9D/">Costa Rica</a>; I have ways of getting by. Tune in whenever the next post surfaces to find out how I cope and how I hope to improve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/01/limping-through-agile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Going Agile Part 4 &#8211; Iteration 1: The Good, The Bad, and the Ugly</title>
		<link>http://www.klocwork.com/blog/2010/01/going-agile-part-4-iteration-1-the-good-the-bad-and-the-ugly/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=going-agile-part-4-iteration-1-the-good-the-bad-and-the-ugly</link>
		<comments>http://www.klocwork.com/blog/2010/01/going-agile-part-4-iteration-1-the-good-the-bad-and-the-ugly/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 16:09:57 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Nasty Bugs]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=689</guid>
		<description><![CDATA[I just couldn’t resist using the classic spaghetti Western as the title for this instalment of my Going Agile series because it a) it was an awesome movie, and b) it truly sums up that 1st iteration of ours. My last post was all about the 1st iteration planning meeting, and how it was such [...]]]></description>
			<content:encoded><![CDATA[<p>I just couldn’t resist using the classic spaghetti <a href="http://en.wikipedia.org/wiki/The_Good,_the_Bad_and_the_Ugly">Western </a>as the title for this instalment of my Going Agile series because it a) it was an awesome movie, and b) it truly sums up that 1<sup>st</sup> iteration of ours. My <a href="http://www.klocwork.com/blog/?p=672">last post </a>was all about the 1<sup>st</sup> iteration planning meeting, and how it was such an exciting and productive time for our team. We came out of that meeting a little weary, but extremely motivated to get to work. We were also just a tad naive.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/01/the-good-the-bad-and-the-ugly.jpg"><img class="alignleft size-medium wp-image-690" title="the-good-the-bad-and-the-ugly" src="http://www.klocwork.com/blog/wp-content/uploads/2010/01/the-good-the-bad-and-the-ugly-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>The next 2 weeks were a roller coaster as we cut our teeth with Scrum. First the good:</p>
<ul>
<li>Communication: the interaction amongst the team members was definitely improved. If someone needed an answer to something, they immediately sought out help. The team realized that if they didn’t get timely answers, tasks wouldn’t get done. They really didn’t want to say those dreaded 2 words, “nothing finished”, in the daily scrum meeting.</li>
<li>Meetings: The <a href="http://www.mountaingoatsoftware.com/scrum/daily-scrum">daily Scrum </a>meetings were kept short and  sweet as everyone said what tasks they had finished, what they were working on, and if there were any roadblocks in the way. If something required further discussion, a break out meeting with the appropriate people was held.</li>
<li>Energy: This was a high performing team to begin with, but there was now a newfound energy and buzz. This was a fun team to be around!</li>
</ul>
<p>As the title suggests, there certainly was some bad in that first iteration.</p>
<ul>
<li>Testing and documentation: These were the 2 areas that struggled the most in the first iteration (and the next couple as well). They felt that their work was too heavily back loaded, that is, they would receive their stuff too late in the iteration to either test or document properly. Many of the stories were not totally Done because they were either not tested properly or documented with the time they were given.</li>
<li>Defects and bugs: Because testing happened so late in the iteration, many of the bugs they found could not be addressed in that iteration. These bugs would have to be carried over to the next iteration, meaning the number of new stories would have to be reduced.</li>
</ul>
<p>Now for the ugly.</p>
<ul>
<li>After just a day or so into the iteration, a plethora of unplanned tasks starting showing up on the Scrum board for many of the stories. These stories now had many new hours of tasks added to them, and we fell behind very quickly. This leads into the next ugly&#8230;</li>
<li>The <a href="http://en.wikipedia.org/wiki/Burn_down_chart">Burndown</a> chart: Talk about a misnomer! We started to affectionately call our chart the burn-up chart, because there was very little down direction going on with it. Our chart would have looked great at a sales meeting, but in our Scrum meeting, not so much.</li>
</ul>
<p>So as you can see our 1<sup>st</sup> iteration had its share of warts, and in fact, the next couple did as well. But we didn’t get frustrated. We learned from our mistakes and changed/added things based on those mistakes. The <a href="http://www.infoq.com/news/2009/09/key-elements-agile-retrospective">Retrospective</a> meetings were incredibly useful because they made us all take a hard, honest look at what went well, and what didn’t. The next, and last entry in my Going Agile series will look at the Retrospective meeting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/01/going-agile-part-4-iteration-1-the-good-the-bad-and-the-ugly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Going Agile Part 3 &#8211; The 1st Iteration Planning Meeting</title>
		<link>http://www.klocwork.com/blog/2010/01/going-agile-part-3-the-1st-iteration-planning-meeting/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=going-agile-part-3-the-1st-iteration-planning-meeting</link>
		<comments>http://www.klocwork.com/blog/2010/01/going-agile-part-3-the-1st-iteration-planning-meeting/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 12:30:49 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[product owner]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=672</guid>
		<description><![CDATA[Now that the New Year is upon us, I thought it would be a good time to add another chapter to my Going Agile series. My last entry left off at the point where we had prepared our backlog, created team rules and defined “Done”. Now we were ready for our first Iteration Planning meeting. [...]]]></description>
			<content:encoded><![CDATA[<p>Now that the New Year is upon us, I thought it would be a good time to add another chapter to my Going Agile series. My <a href="http://www.klocwork.com/blog/2009/10/going-agile-part-2-preparing-for-iteration-1/">last entry </a>left off at the point where we had prepared our backlog, created team rules and defined “Done”. Now we were ready for our first Iteration Planning meeting.</p>
<p>In our “team room” we had all the essentials in place for this meeting: stacks of color-coded cards (for capturing the various to do’s, or tasks), pens and highlighters, our <a href="http://www.mountaingoatsoftware.com/scrum/task-boards">Scrum board </a>(with pins) to stick our tasks onto, and a keg of Red Bull, because we had no clue as to how long this meeting was going to last.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/01/3M-Post-It-Notes.jpg"><img class="alignleft size-thumbnail wp-image-676" title="Post-It Notes" src="http://www.klocwork.com/blog/wp-content/uploads/2010/01/3M-Post-It-Notes-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Everyone was anxious to get started, so I (as the Product Owner) introduced the first story that we were going to work on. I gave as much detail as I could about what the feature was, what it should do, the benefits the users would get from it, and so on. The team asked questions, and I answered them as best I could.</p>
<p>Once I was done talking, the most remarkable thing happened:  the team started to write down the various tasks required to complete the story. It started off quietly, as all the team members started writing on their cards, and to be honest, I was a little concerned that this was going to be the way this meeting would go. (Where’s the Red Bull, because this is shaping up to be a long and painful session.) But then the questions started coming from all sides &#8211;developers asking other developers questions, testers asking developers questions, documentation asking developers questions, developers asking testers questions, follow up questions, and so on. I vividly remember watching this, and the frenetic pace at which things were happening. I had worked with this team for a few years (doing Waterfall development), but I had never seen this level and intensity of communication and cooperation from the team. Once all the questions were asked (and answered), the task cards were collected and posted to our Scrum board. On to the next story, rinse and repeat&#8230;</p>
<p>The meeting lasted another few hours as we worked our way down the backlog and watched the new tasks go up on the Scrum board. By the end of the meeting, we were ready to start our Iteration. As the team left the room, they each moved a task from the “To Do” column to the ‘In Progress’ column, and the Iteration was underway.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/01/posts1.jpg"><img class="alignright size-medium wp-image-678" title="Iteration Tasks" src="http://www.klocwork.com/blog/wp-content/uploads/2010/01/posts1-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p>It was truly incredible to see this team come together and work as a team so quickly, and to see how motivated they were to move to this new way of developing software. The next chapter in this series will look at the trials and tribulations of that first iteration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/01/going-agile-part-3-the-1st-iteration-planning-meeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embedded Systems Engineering &#8211; German 2009 Edition</title>
		<link>http://www.klocwork.com/blog/2009/12/embedded-systems-engineering-german-2009-edition/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=embedded-systems-engineering-german-2009-edition</link>
		<comments>http://www.klocwork.com/blog/2009/12/embedded-systems-engineering-german-2009-edition/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 18:53:58 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[code reviews]]></category>
		<category><![CDATA[source code analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=542</guid>
		<description><![CDATA[Just wrapped up a successful 2 day Embedded System Engineering conference in Stuttgart, Germany. This &#8220;all-German&#8221; show had just shy of 600 attendees, as well as about 60 individuals (representing the 20 or so companies exhibiting), so this was considered very good by the show organizers (who by the way did a fantastic job&#8230; the [...]]]></description>
			<content:encoded><![CDATA[<p>Just wrapped up a successful 2 day <a href="http://www.ese-kongress.de/english/">Embedded System Engineering </a>conference in Stuttgart, Germany. This &#8220;all-German&#8221; show had just shy of 600 attendees, as well as about 60 individuals (representing the 20 or so companies exhibiting), so this was considered very good by the show organizers (who by the way did a fantastic job&#8230; the food here, for example, was as good as I’ve ever seen for such an event). The Klocwork booth was shared with our good friends at <a href="http://www.emenda.eu/index.php?option=com_content&amp;view=article&amp;id=15&amp;Itemid=5&amp;lang=de">Emenda</a>, and we had a choice spot that allowed a good flow of people. We had an interesting mix at our booth as well&#8230; a Scotsman who now lives in Germany and speaks flawless German (albeit with a hint of a wee Scottish accent), an Englishman who had numerous stories that kept us entertained during the quiet times, and myself, the jetlagged Canadian.</p>
<p><img class="aligncenter size-medium wp-image-544" title="IMG_0070" src="http://www.klocwork.com/blog/wp-content/uploads/2009/12/IMG_0070-300x225.jpg" alt="IMG_0070" width="300" height="225" /></p>
<p>As I mentioned earlier, this show is advertised as the only German-language conference around&#8230; and it was. So other than saying &#8220;hello&#8221;, &#8220;goodbye&#8221;, &#8220;thank you&#8221;, or &#8220;<a href="http://translate.google.com/?hl=de#en|de|">another beer please</a>&#8220;, my German is, uhm, lacking. However, not a problem here; the Germans all speak very good English&#8230; which was a good thing since my presentation was in English. I had over 40 attendees at my session about how Source Code Analysis fits into Agile development environments, and it went very well. A number of attendees came to our booth after the talk to pick up our White Paper on<a href="http://www.klocwork.com/resources/white-paper/source-code-analysis-agile">static analysis and agile</a>, and to get a demo of our latest release.</p>
<p>My two-week stint of planes, trains and automobiles continues tomorrow when I head up to Berlin for the weekend to see some good friends (and a football game in the Olympic Stadium), then it is back home on Monday. It has been a great couple of weeks in Europe, but I am looking forward to being back on good ole EST.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/12/embedded-systems-engineering-german-2009-edition/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IP ESC &#8217;09 &#8211; Vive la France!</title>
		<link>http://www.klocwork.com/blog/2009/12/ip-esc-09-vive-la-france/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ip-esc-09-vive-la-france</link>
		<comments>http://www.klocwork.com/blog/2009/12/ip-esc-09-vive-la-france/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 20:10:46 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[source code analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=517</guid>
		<description><![CDATA[Thought I would take a moment to share with you my experience at this year’s IP ESC show in Grenoble, France. First off, Grenoble is beautiful sitting at the foot of the French Alps. If you get the chance, go! Back to the show. This is typically the IP Show, but this year is the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-522" title="IMG_0046" src="http://www.klocwork.com/blog/wp-content/uploads/2009/12/IMG_00461-300x225.jpg" alt="IMG_0046" width="300" height="225" />Thought I would take a moment to share with you my experience at this year’s IP ESC show in Grenoble, France. First off, Grenoble is beautiful sitting at the foot of the French Alps. If you get the chance, go!</p>
<p>Back to the show. This is typically the IP Show, but this year is the first that ESC has been added to the agenda. I don&#8217;t think it helped attendance-wise. From what I can tell, there are maybe 200-250 attendees in total. I spent the last couple of days sharing booth duty with our friends from Emenda, France. Today, I spoke about how source code analysis fits into Agile development teams. I had about 15 attendees, which by all accounts was a good turnout.</p>
<p>I was able to cram about 40 minutes of material into 20-minute slot, and even had time left over to answer a few questions. Unfortunately, this show did not allow Exhibitors to attend any of the sessions. Too bad really, I was hoping to attend a few of them.</p>
<p>Next week, I am off to a similar show in Stuttgart, Germany, where I will have more time to present. Check back here next week for a recap of that event.<img class="alignleft size-medium wp-image-521" title="esc" src="http://www.klocwork.com/blog/wp-content/uploads/2009/12/esc1-300x225.jpg" alt="esc" width="300" height="225" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/12/ip-esc-09-vive-la-france/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Joy of &#8230; Code Review?</title>
		<link>http://www.klocwork.com/blog/2009/11/the-joy-of-code-review/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-joy-of-code-review</link>
		<comments>http://www.klocwork.com/blog/2009/11/the-joy-of-code-review/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 21:18:37 +0000</pubDate>
		<dc:creator>Gwyn Fisher</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=506</guid>
		<description><![CDATA[Part I – Ode to Joy Since the launch of the seminal “Joy” work which hopefully doesn’t need mention here, we’ve seen everything from The Joy of Cooking to The Joy of Not Working (my personal favorite!), and so further to that deeply mined vein of authoritative works we bring you the necessarily over burdened… [...]]]></description>
			<content:encoded><![CDATA[<p>Part I – Ode to Joy</p>
<p>Since the launch of the seminal “Joy” work which hopefully doesn’t need mention here, we’ve seen everything from The Joy of Cooking to The Joy of Not Working (my personal favorite!), and so further to that deeply mined vein of authoritative works we bring you the necessarily over burdened… Joy of <a href="http://www.klocwork.com/products/insight-pro/inspect-code-review/">Code Review</a>!</p>
<p>Joy, you say? Let me count the ways…</p>
<ul>
<li>I implement a task, using what I consider to be best practice patterns and guidelines; I slave over this, my creation, and when it’s done, I stand back and admire, much in the tone of an old master, this latest image of my greatness.</li>
<li>Then I remember I need to get it reviewed…</li>
<li>So, I timidly invite my Architect and 3 of his best friends to the war room to review my new baby</li>
<li>After many rescheduling pauses, we finally gather…</li>
<li>I hold my breath, turn on the projector, and bare my soul to the collective seniors in attendance</li>
<li>30 minutes later, having endured a ritual mind flaying, and the predictable but nevertheless enjoyable tortured examination of my parentage, education, upbringing and such fun rhetorical musings as “why do they let people like you graduate?” I slink out</li>
<li>Follow up is, if anything, more painful as I’m reminded moment-by-moment of just how badly I’ve lived up to the expectations laid out for me by the senior team members</li>
</ul>
<p>Anyway, so code reviews suck, <em>amirite</em>? <a href="http://www.artima.com/lejava/articles/javaone_2007_matt_quail.html">But we all know we need to do them</a>. Of course, we all know we need to do them for completely different reasons from each other…</p>
<ul>
<li> Kids right out of grad school know they need to do code reviews because although their code is, like, totally perfect, it’ll be good to show the old dudes their skillz, and for the old dudes to check out some rad new stuff that they might have missed along the way.</li>
<li>Senior guys know they need to do code review because otherwise all kinds of terrible cruft will get promoted into the head branch and somebody (are you looking at me??) will have to fix it…</li>
<li>Managers know they need to do code reviews because they read all about them in a book with a cool cover, and it’s all <em>Agile</em> and stuff, and let’s face it they’re being measured on code review coverage, so come hell or high water you’re going to do code reviews!</li>
<li>And of course, regular professional developers know that code reviews, however painful, genuinely lead to better code, regardless of the pain involved in getting there.</li>
</ul>
<p style="text-align: center;"><a href="http://www.stellman-greene.com"><img class="aligncenter" title="Missteps in code review" src="http://www.klocwork.com/blog/wp-content/uploads/2009/11/sally-code-review.png" alt="" width="432" height="370" /></a></p>
<p>What we have here, folks, is a social organization, complete with the crazy uncle, the embarrassing grandma and the pimply teenagers. And social organizations, as we’ve all come to know and love, are at their best when the forum in which they’re fostered exists for a reason that encourages the unstated, but nevertheless in-your-face activity of which those in the respective societal groups are desperately in need:</p>
<ul>
<li>Facebook? Getting a date. And then getting another one while simultaneously trying desperately to avoid the previous partner. Rinse/repeat. Seriously, I have no idea how kids manage today. At least when I was young and awkward we could hide behind the silence and foot shuffling of real face-to-face meetings. Now with a keyboard and the internet in the way, there’s <em>nowhere to hide!!!! </em>I’m off topic again… ahem…</li>
<li>Linked-In? Getting a job.</li>
<li>Myspace? Getting a clue.</li>
</ul>
<p>You get the idea.</p>
<p>So code review as a social engagement… really? Parts 2 and 3 of this series of posts will examine how such interactions, fostered by social networking tools, are the best way to ensure code review gets done and returns value both to the participants and to the companies in which they work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/11/the-joy-of-code-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;I&#8217;m gonna write me a new minivan&#8221; &#8211; is zero software bugs the right goal?</title>
		<link>http://www.klocwork.com/blog/2009/10/im-gonna-write-me-a-new-minivan-is-zero-software-bugs-the-right-goal/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=im-gonna-write-me-a-new-minivan-is-zero-software-bugs-the-right-goal</link>
		<comments>http://www.klocwork.com/blog/2009/10/im-gonna-write-me-a-new-minivan-is-zero-software-bugs-the-right-goal/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 19:16:55 +0000</pubDate>
		<dc:creator>Eric Hollebone</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[Nasty Bugs]]></category>
		<category><![CDATA[bugs]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=473</guid>
		<description><![CDATA[I have always loved &#8220;I&#8217;m gonna write me a new minivan&#8221;  from Scott Adams.  To me, it never gets old.  Originally published in 1998, the theme that applied then still does today: driving 100% of defects or bugs out of the code-base is a laudable goal, but is it really the right one?   I would have to argue [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left; "><img class="alignnone size-full wp-image-478" title="dilbert-minivan-small" src="http://www.klocwork.com/blog/wp-content/uploads/2009/10/dilbert-minivan-small.png" alt="dilbert-minivan-small" width="450" height="147" /></p>
<p style="text-align: left; ">I have always loved &#8220;I&#8217;m gonna write me a new minivan&#8221;  from <a title="Dilbert.com" href="http://www.dilbert.com" target="_blank">Scott Adams</a>.  To me, it never gets old.  Originally published in 1998, the theme that applied then still does today: driving 100% of defects or bugs out of the code-base is a laudable goal, but is it really the right one?   I would have to argue no.  There&#8217;s no silver bullet out there that will find all software defects and solve issues automagically, and until there is, software development will continue to struggle with prioritization.  Unfortunately, we live in a world of finite resources and constantly evolving demands, but we can always dream about being Wally for a little while.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/10/im-gonna-write-me-a-new-minivan-is-zero-software-bugs-the-right-goal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hounding your sources</title>
		<link>http://www.klocwork.com/blog/2009/10/hounding-your-sources/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hounding-your-sources</link>
		<comments>http://www.klocwork.com/blog/2009/10/hounding-your-sources/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 13:08:11 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[User Documentation]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[technical writing]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=465</guid>
		<description><![CDATA[I remember that idyllic summer day when I saw my very agile dog Maggie jumping through the sprinkler. I laughed until I cried. And then I thought:  This reminds me of what I do for a living. I’m a technical writer and technical writing in an Agile environment is somewhat like chasing those water drops. [...]]]></description>
			<content:encoded><![CDATA[<p>I remember that idyllic summer day when I saw my very agile dog Maggie jumping through the sprinkler. I laughed until I cried. And then I thought:  This reminds me of what I do for a living.</p>
<div id="attachment_467" class="wp-caption alignright" style="width: 262px"><img class="size-medium wp-image-467" title="Maggie_blog_resized" src="http://www.klocwork.com/blog/wp-content/uploads/2009/10/Maggie_blog_resized-252x300.jpg" alt="Maggie_blog_resized" width="252" height="300" /><p class="wp-caption-text">Jumping into the Agile fray: a technical writer&#39;s perspective</p></div>
<p>I’m a technical writer and technical writing in an Agile environment is somewhat like chasing those water drops.</p>
<p>You can run after those features, but early in the game there’s not really anything to hold onto.</p>
<p>So, how does one document a feature that will probably change from one iteration (or day) to another without chasing one’s tail?</p>
<p>Workflow can be your rock in that ever-changing environment. While the feature is likely far from finalized, someone’s gotta have an idea of how people are going to interact with it.</p>
<p>The developers can get you started, but the workflow people (at least in my experience) are the product managers.</p>
<p>So, while my agile dog chases water drops, this technical writer chases product managers—and if I still don’t have enough of a big picture outline for the feature or a collection of features, then the Chief Technical Officer is in my sights.</p>
<p>For major features “in flux”, the best way to get “good enough” content to meet your iterative deadlines is to channel the Australian shepherd within and herd the developer, product managers and testers into a room with a whiteboard and a marker.</p>
<p>In half an hour, you’ll get something workable. And maybe a chance to put your two-cents’ worth into the design.</p>
<p>What if there’s no workflow available?</p>
<p>If it’s a sunny day, go find a sprinkler to jump through. These days, that’s a chilly prospect indeed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/10/hounding-your-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Agile Part 2: Preparing for Iteration 1</title>
		<link>http://www.klocwork.com/blog/2009/10/going-agile-part-2-preparing-for-iteration-1/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=going-agile-part-2-preparing-for-iteration-1</link>
		<comments>http://www.klocwork.com/blog/2009/10/going-agile-part-2-preparing-for-iteration-1/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 12:01:57 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[backlog]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=457</guid>
		<description><![CDATA[In part one of Going Agile,I talked about how we introduced Agile to our development team. This next post will look at the events that led to our first iteration planning meeting. During the weeks that led up to Iteration 1, there was much work that went on as a team, and much that each [...]]]></description>
			<content:encoded><![CDATA[<p>In <a title="Going Agile: Introduction" href="http://www.klocwork.com/blog/2009/09/going-agile-part-1-introducing-agile/">part one</a><img class="size-medium wp-image-460 alignright" title="Scrum Board" src="http://www.klocwork.com/blog/wp-content/uploads/2009/10/DSC01166-300x225.jpg" alt="Scrum Board" width="300" height="225" /> of Going Agile,I talked about how we introduced Agile to our development team. This next post will look at the events that led to our first iteration planning meeting.</p>
<p>During the weeks that led up to Iteration 1, there was much work that went on as a team, and much that each team member did individually. As the Product Owner, my biggest task was to create a <a href="http://www.mountaingoatsoftware.com/product-backlog">backlog</a>. Sure, I knew what the main new features were going to be, but I still needed to capture this, and add other oft-requested features. I scoured every correspondence I had with customers, sales, support, development, and so on to gather this information.</p>
<p>After everything was said and done, I had a pretty massive backlog&#8230; a pretty massive, unprioritized backlog. At this point, I really didn’t know any good techniques for backlog prioritization (that would change after attending the CPO training with <a href="http://www.mountaingoatsoftware.com/">Mountain Goat Software</a>). This training was not going to happen for a few months, but something needed to be done&#8230; so I did what any good Product Manager does&#8230;I used the ‘wet finger in the air’ technique. Now, my ‘estimations’ were based on a number of concrete data points and some not-so-concrete assumptions and anecdotal evidence, so they weren’t totally of the ‘wild-assed guess’ ilk. After a few more days I had my backlog read for the team.</p>
<p>While the backlog creation was going on, a number of team meetings were occurring. Two of the more important meetings involved creating rules for the team and preparing our definition of “Done” . I highly recommend spending some time up front on both of these activities.</p>
<p>Creating the team rules was a great exercise, because it was the first time the team sat down as a collective and decided what the rules would be. Many of the rules were not groundbreaking&#8230;things such as everyone’s opinion is equal, treat everyone with respect, don’t be late for meetings, and when and where <a href="http://www.controlchaos.com/old-site/meeting.htm">daily Scrums</a> were going to happen.</p>
<p>The best result from this meeting centered on the team’s communication methods. Everyone was already using email, so that was covered. Instant messaging was rolled out to the team, and everyone was to use it. Of course face-to-face discussions were encouraged the most, but there needed to be some way to let people know you didn’t want to be disturbed (unless something was urgent). Everyone created a Do Not Disturb sign, and when it was posted, it was to be respected. Sometimes people just need to focus on the task at hand, rather than constantly being disrupted. We came out of that meeting with a clear set of easy-to-understand team rules, and we posted these rules in our team conference room for all to see. Note&#8230; rules can and will change over time.</p>
<p>Next was coming up with our <a href="http://www.scrumalliance.org/articles/105-what-is-definition-of-done-dod">definition of Done</a>. The team sat down for a couple of hours to determine what should/should not be included. Looking back, we thought we were cavaliers and were blazing new trails with the definition we came up with&#8230;in reality, we put together a definition that was pretty much in line with the ‘industry norm’. One thing that we did not include initially was <a href="http://www.klocwork.com/products/insight-pro/inspect-code-review/">code reviews</a>&#8230;that is, for a story to be considered done, the code had to be reviewed by at least one other developer (who was not associated with that piece of code). During our Iteration 1 retrospective, we modified our definition of Done, and code reviews became part of it. In fact, this definition of Done may go through many, ahem, iterations before becoming finalized.</p>
<p>Finally, we needed to get our ‘room’ set up and have all the necessary supplies on hand. Our team decided to use a wall board with color-coded cards for the tasks. Green cards were for development tasks, red cards were bugs, blue cards were for testing tasks, and yellow cards were for documentation tasks. Now we just needed a board to pin these tasks to. We didn’t want to spend a small fortune on a big pin-board, so we got creative and used carpet under padding. (You can get a huge piece of this at any DIY store for next to nothing and it works like a charm.) We fastened it to the wall, put on some masking tape borders and labels, and we had ourselves a Scrum board.</p>
<p>So with our prioritized backlog, team rules, definition of Done, and Scrum room all set, we were now armed and dangerous, and ready for our first iteration planning meeting&#8230;TO BE CONTINUED.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/10/going-agile-part-2-preparing-for-iteration-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Going Agile &#8211; Part 1: Introducing Agile</title>
		<link>http://www.klocwork.com/blog/2009/09/going-agile-part-1-introducing-agile/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=going-agile-part-1-introducing-agile</link>
		<comments>http://www.klocwork.com/blog/2009/09/going-agile-part-1-introducing-agile/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 12:20:54 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Agile Development]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[product management]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=434</guid>
		<description><![CDATA[The first instalment in my &#8216;Going Agile&#8217; series will reflect on the earliest days that led up to our development team becoming an Agile development team. Before I get into this too deep, I should first set the stage a little. This organization is a medium sized ($500M in revenue) software company, with no other [...]]]></description>
			<content:encoded><![CDATA[<p>The first instalment in my &#8216;Going Agile&#8217; series will reflect on the earliest days that led up to our development team becoming an Agile development team. Before<img class="alignleft size-full wp-image-435" title="blindfolded" src="http://www.klocwork.com/blog/wp-content/uploads/2009/09/blindfolded_forecaster.jpg" alt="blindfolded" width="210" height="316" /> I get into this too deep, I should first set the stage a little. This organization is a medium sized ($500M in revenue) software company, with no other teams using Agile techniques. We were going to be the first. The product was well established, having been on the market for about 5 years, and traditional development methods were fairly effective from a delivery and quality perspective. The team comprised of about 12 members, which included all developers, testers, documentation, the Scrum Master, and myself as the Product Owner.</p>
<p>The first meeting ever held with the whole team was intended to introduce Agile (Scrum) to them and get their buy in&#8230;we did not want to ram it down their throats and say we are doing this. At the time we were doing this, the concept of an Agile Coach was pretty much non-existent, so we were on our own. Our Scrum Master had been on some training, and thought for this meeting it would be good to try an exercise with the team to illustrate how Agile could work. So without any preamble or mention of Agile, everyone in the room was instructed to pick a partner, and then the goal of the exercise was explained. The goal was to navigate your team member around the room as many times as possible in 1 minute. Seemed pretty easy, until we told them about the twist&#8230;the team member that was walking around the room was to be blind folded. To add to the fun, our Scrum Master played the role of a roadblock, stepping in front of the blind folded people as they tried to circle the room, requiring new instructions to be shouted out to navigate around him. Once the clock started the chaos broke out, as 6 different people were simultaneously shouting out instructions trying to navigate their team member around the room, and around the roadblock. By the end of the 60 seconds we tallied total trips around the room, and came up with a number in the 30’s.</p>
<p>The 2<sup>nd</sup> part of the exercise was quite a bit simpler, and merely had all team members walk around the room (no blind folds), and make their own decisions to navigate around the room and the ‘roadblock’. I’m sure you can imagine how much calmer the room was, and by the end of the 60 seconds we again tallied our results. This time we were well over 120.</p>
<p>So what was the purpose of this exercise, and how did it relate to Agile? Basically it illustrated the power of a self-managing team, and how the productivity of such a team can be magnitudes better when team members are given the ability to make decisions on their own, in real-time. After the exercise, we then introduced the idea of the team adopting Agile, what it is, how it could work, etc. In my opinion, doing this exercise first (and doing it without ever mentioning the term Agile) did more than a week’s worth of powerpoint sessions on why Agile is the way to go. The team was very receptive to the idea (at least most members, more on that in another blog), which set the stage for a series of follow on meetings to further flesh out what was really involved, and what needed to be done to prepare for our first Iteration. The next instalment in this series will delve into that preparation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2009/09/going-agile-part-1-introducing-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
