<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>&gt;kloctalk</title>
	
	<link>http://www.klocwork.com/blog</link>
	<description>&gt;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>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Kloctalk_blog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="kloctalk_blog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Kloctalk_blog</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Get a (tool-selection) plan, Stan</title>
		<link>http://www.klocwork.com/blog/2010/07/get-a-tool-selection-plan-stan/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=get-a-tool-selection-plan-stan</link>
		<comments>http://www.klocwork.com/blog/2010/07/get-a-tool-selection-plan-stan/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 15:00:50 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[General Industry]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[tool selection]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1027</guid>
		<description><![CDATA[Today, Mark Grice is in a better mood. The last time I spoke to the Klocwork Director and Manager of the International Reseller/Partner Network, he outlined 7 habits of highly ineffective Source Code Analysis (SCA) tool selection. Among those terrible habits, he described an SCA tool-selection process that involved endless feature comparisons and massive checklists [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1033" class="wp-caption alignright" style="width: 226px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/07/Lotus_edit1.jpg"><img class="size-full wp-image-1033 " title="Lotus_edit" src="http://www.klocwork.com/blog/wp-content/uploads/2010/07/Lotus_edit1.jpg" alt="" width="216" height="189" /></a><p class="wp-caption-text">Mark Grice in a more peaceful moment. </p></div>Today, Mark Grice is in a better mood.</p>
<p>The last time I spoke to the Klocwork Director and Manager of the International Reseller/Partner Network, he outlined <a href="http://www.klocwork.com/blog/2010/06/7-habits-of-highly-ineffective-sourc-code-analysis/">7 habits of highly ineffective Source Code Analysis (SCA) tool selection</a>.</p>
<p>Among those terrible habits, he described an SCA tool-selection process that involved endless feature comparisons and massive checklists of irrelevant requirements.</p>
<p>His head  almost exploded, but on this day our SCA guru was calmer.  Clearly, he&#8217;s been using relaxation techniques or drinking some of the good stuff, like acai juice.</p>
<p style="text-align: left;">According to Grice, successful SCA tool adoption involves three key steps:</p>
<ol>
<li>Involve your developers in the process.<br />
 “Developers understand what their requirements are,” Grice says. “And that means your selection criteria will be more realistic and achievable, and it will focus on what&#8217;s relevant to the organization’s software and environment. Developers are also best equipped to assess the SCA results.”</li>
<li>Limit your selection to market-leading tools with the functionality relevant to your software needs.<br />
 “For example, if MISRA compliance is something you care about, then make that part of your selection criteria,” he says.</li>
<li>Have a game plan with a path and a defined end. Work toward a goal that’s realistic—spend enough time, but not forever, finding the tool (or tools) you need.<br />
 “Have a good idea of what will constitute success, and be prepared to make a decision and move on,” Grice says. “Avoid paralysis analysis—unless your goal is to just waste time and money and contribute nothing to improving your software.”</li>
</ol>
<p style="padding-left: 30px;">That’s it for today. Grice is off to yoga class (um, or a pub). Stayed tuned for the next post in this series&#8211;How smart companies adopt SCA tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/07/get-a-tool-selection-plan-stan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>Real developers don’t need tools</title>
		<link>http://www.klocwork.com/blog/2010/07/real-developers-dont-need-tools/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=real-developers-dont-need-tools</link>
		<comments>http://www.klocwork.com/blog/2010/07/real-developers-dont-need-tools/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 13:10:46 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[command line tools]]></category>
		<category><![CDATA[defect detection]]></category>
		<category><![CDATA[development environment]]></category>
		<category><![CDATA[ides]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1022</guid>
		<description><![CDATA[As the topic suggests, this kind of argument has been around for some time.  Most developers can recognize the need for tools but once you start breaking the developer&#8217;s day-to -day workflow you might as well flush that tool down the drain. What developers need is a tool that seamlessly integrates with their development environment [...]]]></description>
			<content:encoded><![CDATA[<p>As the topic suggests, this kind of <a href="http://meiert.com/en/blog/20100514/real-debugging-tools/" target="_blank">argument</a> has been around for some time.  Most developers can recognize the need for tools but once you start breaking the developer&#8217;s day-to -day workflow you might as well flush that tool down the drain.</p>
<p>What developers need is a tool that seamlessly integrates with their development environment <em>and</em> their workflow, so they can meet their quality goals without taking a big productivity hit.</p>
<p>It’s one thing to provide plug-in tools for the more popular IDEs like Visual Studio and Eclipse, but it’s an added bonus when defect detection is a seamless part of the edit cycle. No buttons to click, just continuous analysis and issue highlighting while you work.</p>
<p>Let&#8217;s take the analogy to the spell checker.  Initially, you had to click a button to spell check your document. That has obviously changed dramatically. Now we see any mistakes we make as we type them (and can even fix them automatically).</p>
<p>That’s what we were thinking when we introduced continuous analysis in our plug-in tools and our source viewer for command-line tools, Klocwork Desktop.</p>
<p>Here’s the spell checker equivalent for source code analysis:</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/07/vs2.jpg"><img class="alignleft size-medium wp-image-1025" title="vs2" src="http://www.klocwork.com/blog/wp-content/uploads/2010/07/vs2-300x248.jpg" alt="" width="300" height="248" /></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><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>The above screenshot is from our Visual Studio plug-in.</p>
<p>When you open or save a file, the analysis runs in the background. A bug marker in the left gutter and a squiggly line, in the true spirit of the spell checker, clearly marks the detected issue.</p>
<p>Find ‘em and fix’em while you work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/07/real-developers-dont-need-tools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I have the software skills; I had a decent interview; why didn’t I get the job?</title>
		<link>http://www.klocwork.com/blog/2010/07/i-have-the-software-skills-i-had-a-decent-interview-why-didn%e2%80%99t-i-get-the-job/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=i-have-the-software-skills-i-had-a-decent-interview-why-didn%25e2%2580%2599t-i-get-the-job</link>
		<comments>http://www.klocwork.com/blog/2010/07/i-have-the-software-skills-i-had-a-decent-interview-why-didn%e2%80%99t-i-get-the-job/#comments</comments>
		<pubDate>Tue, 13 Jul 2010 15:26:37 +0000</pubDate>
		<dc:creator>Carolyn Perkins</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[Software Career]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1023</guid>
		<description><![CDATA[People who do not get hired after an interview second guess themselves; they look for concrete reasons as to why they were not hired for that particular job.  They might justify it by saying the company sucked, the interviewer was an HR douchebag, the hiring manager did not know their stuff.  Of course, they may [...]]]></description>
			<content:encoded><![CDATA[<p><br class="spacer_" /></p>
<div class="wp-caption alignleft" style="width: 268px"><a href="http://www.ibiblio.org/Dave/Dr-Fun/inline/thumbs/tn20040419.jpg"><img style="margin-right: 10px;" title="It was a mistake for Eric to wear a t-shirt to his job interview, and it was a bigger mistake to wear that particular t-shirt. " src="http://www.ibiblio.org/Dave/Dr-Fun/inline/thumbs/tn20040419.jpg" alt="" width="258" height="190" /></a><p class="wp-caption-text">It was a mistake for Eric to wear a t-shirt to his job interview, and it was a bigger mistake to wear that particular t-shirt. </p></div>
<p><br class="spacer_" /></p>
<p>People who do not get hired after an interview second guess themselves; they look for concrete reasons as to why they were not hired for that particular job.  They might justify it by saying the company sucked, the interviewer was an HR douchebag, the hiring manager did not know their stuff.  Of course, they may be correct in passing these judgments, however, chances are there simply was a mismatch between the person interviewing and the company.  When this happens, count your blessings that the people doing the interviewing for the company knew that.  Being brought into a company that is a mismatch with your values and attitudes can impact everything you do, not to mention, make you downright miserable.</p>
<p>An interview is an opportunity for you to interview the company…to find out if you like them.  It is not just about sitting in front of some scary people and answering the questions they fire at you.   For most people, interviews are not pleasant experiences.  However, they are an evil necessity, until a more effective way of assessing people is invented.  And this brings me to the point of this blog…how the hell do you get through an interview?</p>
<ol>
<li>Be prepared, know the names of the interviewers, know the company business and feel free to bring in notes.  It is entirely reasonable to request more information from the company representative setting up the interview.</li>
<li>Appear enthusiastic and interested (but not so much that you are confused with a salesperson!).</li>
<li>Dress appropriately.  This generally means clean trousers and a shirt with a collar, maybe a tie for the men, a clean skirt and a blouse for the women. </li>
<li>Answer the questions, and if you do not know the answer, let the interviewer know with the promise to get back to them.</li>
<li>ASK QUESTIONS…find out enough information to determine whether you want to be an employee.</li>
<li>Finally, follow up…if you like what you heard during the interview.  Just an e-mail will suffice, and believe me that will set you apart from 90% of the candidates.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/07/i-have-the-software-skills-i-had-a-decent-interview-why-didn%e2%80%99t-i-get-the-job/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Are in-person code review meetings a bad thing?</title>
		<link>http://www.klocwork.com/blog/2010/07/are-in-person-code-review-meetings-a-bad-thing/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=are-in-person-code-review-meetings-a-bad-thing</link>
		<comments>http://www.klocwork.com/blog/2010/07/are-in-person-code-review-meetings-a-bad-thing/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 16:16:46 +0000</pubDate>
		<dc:creator>Brendan Harrison</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Code Review]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Software Quality]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1011</guid>
		<description><![CDATA[As readers know, we&#8217;ve been talking about code reviews pretty regularly here and elsewhere over the past few months. To continue that discussion, here&#8217;s a question we run into often: are in-person code reviews as the primary way to communicate, by definition a bad thing? Here&#8217;s some more data from the Forrester Consulting study commissioned [...]]]></description>
			<content:encoded><![CDATA[<p>As readers know, we&#8217;ve been talking about code reviews pretty <a title="Developers Like Code Reviews" href="http://www.klocwork.com/blog/2010/06/developers-think-code-reviews-are-great-what/" target="_blank">regularly</a> <a title="Code Reviews - Mandatory or Ad-hoc?" href="http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/" target="_blank">here</a> and <a title="Code Review Resources" href="http://www.klocwork.com/resources/code-review/">elsewhere</a> over the past few months. To continue that discussion, here&#8217;s a question we run into often: are in-person code reviews as the primary way to communicate, by definition a bad thing?</p>
<p>Here&#8217;s some more data from the Forrester Consulting study commissioned by Klocwork that shows the majority of respondents still conduct in-person reviews&#8230; elsewhere in the survey only 36% of respondents indicated that they worked on a centralized team with everyone in one location. So that means, if 60% still conduct in-person reviews, they&#8217;re likely excluding valuable contributors to the review.</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<div id="attachment_1014" class="wp-caption aligncenter" style="width: 520px"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/07/code_review_data_jul6.png"><img class="size-full wp-image-1014 " title="code_review_data_jul6" src="http://www.klocwork.com/blog/wp-content/uploads/2010/07/code_review_data_jul6.png" alt="" width="510" height="326" /></a><p class="wp-caption-text">Data that shows majority still conduct in-person code reviews</p></div>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p>Is this practice just being done because &#8220;that&#8217;s the way it is&#8221; or are there good reasons for in-person meetings being the primary way to review code? I could see the odd in-person meeting being necessary for a variety of reasons but given how distributed teams are these days and the variety of tools available to effectively review code remotely, it doesn&#8217;t seem that efficient.</p>
<p>There&#8217;s a <a title="37 Signals Meetings are Harmful" href="http://37signals.com/svn/archives2/meetings_considered_harmful.php" target="_blank">general</a> <a title="Reduce Number of Scrum Meetings" href="http://agilesoftwaredevelopment.com/blog/cspag/agile-meeting-dilemma" target="_blank">philosophy</a> gaining more prominence around meeting reduction, whether in software development or elsewhere. We&#8217;re seeing many organizations question why their code review process needs to be in-person when it excludes people who aren&#8217;t co-located and generally takes up too much of people&#8217;s time. What are you seeing?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/07/are-in-person-code-review-meetings-a-bad-thing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>7 habits for highly ineffective source code analysis</title>
		<link>http://www.klocwork.com/blog/2010/06/7-habits-of-highly-ineffective-sourc-code-analysis/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=7-habits-of-highly-ineffective-sourc-code-analysis</link>
		<comments>http://www.klocwork.com/blog/2010/06/7-habits-of-highly-ineffective-sourc-code-analysis/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:30:09 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[Static Analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1010</guid>
		<description><![CDATA[Mark Grice is a pretty unflappable guy, but when you ask him a question about barriers to successful adoption of Source Code Analysis (SCA) technology, he starts to splutter. “There are things I see over and over that make me want to bang my head against a wall,” says the Klocwork Director and Manager of [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Grice is a pretty unflappable guy, but when you ask him a question about barriers to successful adoption of <a title="Klocwork's source code analysis engine" href="http://www.klocwork.com/products/insight/klocwork-truepath/">Source Code Analysis</a> (SCA) technology, he starts to splutter.</p>
<div id="_mcePaste">“There are things I see over and over that make me want to bang my head against a wall,” says the Klocwork Director and Manager of our International Reseller/Partner Network.  For the past nine years, Grice has helped companies from around the world to successfully implement SCA.</div>
<div id="_mcePaste">There are many companies that <a href="http://www.klocwork.com/blog/2010/05/leveraging-static-analysis/">deploy SCA</a> tools and reap their ROI, but there are others that can’t get to first base.  Below are barriers Grice has consistently encountered from a persistent minority.</div>
<div></div>
<div id="_mcePaste">Here are 7 sure-fire ways to ensure that your organization will fail at SCA:</div>
<div id="_mcePaste">
<ol>
<li> Make sure your SCA tool evaluation process is long and costly.<br />
 “I’ve seen companies spend three years in the analysis phase, involving a number of key staff,” Grice  says. His advice? “Buy them all and just start using them. At least you’ll have spent three years producing better code instead of just testing and evaluating.” Or, just buy one and start using it. If it doesn’t do everything you want it to, buy another one.</li>
<li>Cling to your tool-selection criteria to the point of impotence.<br />
 “I’ve seen companies not buy a tool because they couldn’t check off one requirement out of 100.  It didn’t matter that the other 99 criteria were met,“ Grice says.  Often, these checklists eliminate every tool.  These companies opt to do nothing rather than something about their code quality.</li>
<li>Insist that one tool must do everything.<br />
 No one tool will do everything. Buy a couple of them.  “If I’m working on a construction project and I need to drive some nails and cut some wood, I’m going to go and buy a hammer and a saw.” What? There’s no such thing as a sammer (or a haw) for both those tasks?</li>
<li>Focus solely on the number of false positives the tools throw.<br />
 “A zero false-positive rate is ridiculous,” Grice says.  A very low false positive rate is often tied to a higher false negative rate. It’s easier to manage false positives than false negatives, particularly since the latter rear their ugly mugs after your product is shipped, he says.  If a tool is tunable and customizable, you can just filter or turn off the defect types that don’t interest you.</li>
<li>Denial:  You don’t have to fix problems if you don’t find them.<br />
 “Gack!” Grice has to do deep breathing to get through this one. “If you don’t want to find anything, then don’t test! I mean, jeez!”</li>
<li> Have a persecution complex: Management will use the information against us.<br />
 Developers sometimes worry that they’ll be ranked by number of defects per lines of code. But if you’re finding and fixing defects before you check in, your numbers will actually improve. “I’ve seen one team resist the SCA tool because they were at the top of their game. Then that team saw their ranking fall because teams using the SCA tool made consistent quality gains with every build and then caught up and then surpassed them,” Grice says.</li>
<li>Make non-development staff responsible for rolling out the SCA tools.<br />
 “I know we’re in for it when the prime asks, ‘What’s a build?’ or ‘What’s make?’”<br />
 To successfully roll out, Grice says, you need a code expert&#8211;someone who really understands your build process, the development environments and how to evaluate the findings.</li>
</ol>
</div>
<div id="_mcePaste">And there you have it—your SCA-failure habits. We’ll end here because Grice has to go and get his  blood pressure checked.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/7-habits-of-highly-ineffective-sourc-code-analysis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How not to submit your software developer resume…</title>
		<link>http://www.klocwork.com/blog/2010/06/how-not-to-submit-your-resume-2/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-not-to-submit-your-resume-2</link>
		<comments>http://www.klocwork.com/blog/2010/06/how-not-to-submit-your-resume-2/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 15:57:54 +0000</pubDate>
		<dc:creator>Carolyn Perkins</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[Software Career]]></category>
		<category><![CDATA[careers]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=990</guid>
		<description><![CDATA[I like developers. I have spent a career hiring, motivating, confusing, annoying and retaining developers.  I am not going to go so far as to say I understand you guys, but I do know what makes a good developer.  More importantly, I know what makes someone a bad fit for the team I am recruiting [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/my-resume.png"><img class="size-medium wp-image-1007 alignright" style="margin-left: 20px;" title="How not to write a developer resume" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/my-resume-300x193.png" alt="" width="240" height="154" /></a>I like developers.</p>
<p>I have spent a career hiring, motivating, confusing, annoying and retaining developers.  I am not going to go so far as to say I understand you guys, but I do know what makes a good developer.  More importantly, I know what makes someone a bad fit for the team I am recruiting for.</p>
<p>First impressions are important. Yeah, I know, it sucks and your technical prowess should speak for itself, but it doesn’t.  Let’s face it, if you forget the &#8220;L&#8221; in Klocwork in your cover letter, I&#8217;m laughing too hard to pay attention to your superior coding skills.</p>
<p>If you continually refer to me as “Sir”, my feminist nose gets a bit out of joint; resumes filled with spelling errors throw into question your attention to detail and your level of concern for putting forth solid code.</p>
<p>While I am on the subject of resumes, it&#8217;s very impressive that people have the experience to fill up 15 pages of a resume. Maybe it&#8217;s even impressive that they have the time to type out a 15-page resume, but no one else has the time or the inclination to read a 15-page resume.  To date, the record length for a resume that I have received is 25 pages – this person is not employed here.</p>
<p>Being in this industry and in HR for as long as I have, I have learned something shocking – people stretch the truth on their resumes!  Imagine that!  And then imagine a company having the audacity to have someone in for an interview and test the person to assess whether what they claim on their resume is actually the case.  Of course, as a candidate, you should then take great offense to the fact that my colleagues and I called into question your integrity, your intelligence, and your worth as a citizen of the world.  In fact, you should probably follow up your interview with a strongly worded e-mail addressed to Sir at Kocwork.  Or maybe you shouldn’t.</p>
<p>Just…don’t…do…that.   We are not attacking your credibility. We do not enter the interview room thinking you are a lying, worthless waste of skin. In fact, we are pretty excited to meet you, so far we have liked what we have seen, otherwise you would not be here.</p>
<p>We will remain excited to meet you, right up to the point where you show up half an hour late, wearing a questionable outfit covered with what appears to be last week’s Sunday dinner.  Maybe you will look me in the eye, or maybe you will direct your eyes to my chest and keep them fixed there throughout the interview.  When that happens I like to observe where your eyes remain clamped when my male coworkers are interviewing you because inevitably it has nothing to do with what is on the interviewer’s chest. It&#8217;s just a convenient place to rest one’s gaze.  However,  between you and me, it kinda freaks me out.</p>
<p>I found this blog to be rather cathartic. I have more, so much more and if I am invited back as a guest blogger, maybe my therapy bills will go down.  Until we meet across a table in our interview room, I wish you good luck and good code!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/how-not-to-submit-your-resume-2/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Top 5 reasons developers can relate to soccer players</title>
		<link>http://www.klocwork.com/blog/2010/06/top-5-reasons-developers-can-relate-to-soccer-players/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=top-5-reasons-developers-can-relate-to-soccer-players</link>
		<comments>http://www.klocwork.com/blog/2010/06/top-5-reasons-developers-can-relate-to-soccer-players/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 01:59:05 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[fifa 2010 world cup]]></category>
		<category><![CDATA[software developer]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1003</guid>
		<description><![CDATA[In the spirit of the FIFA 2010 World Cup, I thought it would be fitting to describe how software developers can relate to the game. Announcers &#8211; Have you ever really listened to what the announcers say?  One of my favorite things to listen to is the very opinionated soccer announcers.  Some of the things [...]]]></description>
			<content:encoded><![CDATA[<p>In the spirit of the FIFA 2010 World Cup, I thought it would be fitting to describe how software developers can relate to the game.</p>
<ol>
<li>Announcers &#8211; Have you ever really listened to what the  announcers say?  One of my favorite things to listen to is the  very opinionated soccer announcers.  Some of the things they say just  make me laugh.  For example, when the announcer was describing the  uncertainty of the game &#8211; “There’s one thing for certain, there is no  score.”  or in this year’s World Cup describing a slow and boring game &#8211;  “It’s like they are playing in slow motion”.  I’m not saying developers  are opinionated&#8230;no way ;).  One thing that is similar is the comments  developers will put in the code.  One of my favorites:</li>
<pre style="padding-left: 30px;">//When I wrote this, only God and I understood what I was doing
//Now, God only knows</pre>
<p style="padding-left: 30px;">For more funny comments go <a href="http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered" target="_blank">here</a>.</p>
<li>Money &#8211; Soccer players do what they love for vast amounts of money.  Developers do what they love&#8230;well okay maybe not the second part.</li>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/vuvuzela21.jpg"><img class="alignleft size-full wp-image-1005" style="margin-right: 30px;" title="vuvuzela" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/vuvuzela21.jpg" alt="" width="240" height="149" /></a><br class="spacer_" /></p>
<li>Vuvuzelas &#8211; whether you like them or not you are stuck with listening to hundreds of Vuvuzelas playing their merry tune.  Despite all the <a href="http://www1.voanews.com/english/news/sports/BBC-May-Filter-Out-Vuvuzelas-from-Broadcasts-96393404.html" target="_blank">complaints</a> it will continue to haunt spectators until the tournament ends.  So why is everyone blowing the god forsaken plastic tubes?  Well my first guess is that they are drunk, but I think mostly because it is fun.  So as a software developer you don&#8217;t get to blow on the vuvuzela but I bet you would want to when you finished your work or the latest complicated feature?  Hopefully this is not because you&#8217;re currently drunk.</li>
<p><br class="spacer_" /></p>
<li>The thumbs up &#8211; In a meeting I had with our customer advisory board there was one individual who kept giving the thumbs up.  I understood that he was voicing his agreement with what we were talking about but I never understood why it was always with the thumbs up&#8230;until the World Cup started.  Seems to be the universal sign for the soccer players to say “nice ball” or “good play”.</li>
<p><br class="spacer_" /></p>
<li>Drama &#8211; Have you ever noticed how the majority of soccer players act when they have been fouled?  They dive 10 feet in the air, roll 16 times and clutch their chest like they were just shot.  Okay maybe I’m exaggerating a <span style="text-decoration: underline;">little</span> but the point here is that some of these players are under the impression that they may get nominated for the next Academy award.  How does this relate to the software developer?  Well think of the code review, who really likes hearing that their baby is ugly?</li>
<p><br class="spacer_" /></p>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/top-5-reasons-developers-can-relate-to-soccer-players/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Alphabet Soup of Software Security Guidelines</title>
		<link>http://www.klocwork.com/blog/2010/06/the-alphabet-soup-of-software-security-guidelines/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-alphabet-soup-of-software-security-guidelines</link>
		<comments>http://www.klocwork.com/blog/2010/06/the-alphabet-soup-of-software-security-guidelines/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 13:48:33 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[Software Security]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[software security]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=1001</guid>
		<description><![CDATA[With the recent story that the iPad has inherent security vulnerabilities, I thought it might be an appropriate time to delve into the world of software security guidelines&#8230;but I must warn you, this blog will contain an abnormal amount of acronyms, and may not be suitable for all audiences. When talking about software security guidelines, [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent <a href="http://www.techeye.net/hardware/ipad-has-another-security-flaw-says-hacker-group">story</a> that the iPad has inherent security vulnerabilities, I thought it might be an appropriate time to delve into the world of software security guidelines&#8230;but I must warn you, this blog will contain an abnormal amount of <a href="http://codyfrew.wordpress.com/2007/06/29/acronyms-friends-or-foes/">acronyms</a>, and may not be suitable for all audiences.<a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/soup.jpg"><img class="alignright size-medium wp-image-1002" title="soup" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/soup-300x189.jpg" alt="" width="300" height="189" /></a></p>
<p>When talking about software security guidelines, there are really 5 or 6 organizations that are leading the charge, and they include:</p>
<p>-          OWASP</p>
<p>-          SANS Institute</p>
<p>-          MITRE</p>
<p>-          PCI Security Standards Council</p>
<p>-          SEI</p>
<p>Let’s first look at <a href="http://www.owasp.org/index.php/Main_Page">OWASP</a>. OWASP stands for Open Web Application Security Project, which is a not-for-profit charitable organization that is focused on improving the security of application software. They are probably best known for their Top 10 lists from 2004, 2007, and most recently <a href="http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project">2010</a>.</p>
<p>Next is the <a href="http://www.sans.org/">SANS Institute</a>. SANS of course is a FLA that stands for SysAdmin, Audit, Networking, Security. The SANS Institute claims to be the most trusted source for computer security training, certification and research, and have been developing and releasing their <a href="http://www.sans.org/top-cyber-security-risks/">Top 20 </a>annually for the past 7 years or so.</p>
<p>The <a href="http://www.mitre.org/">MITRE Corporation </a>is a not-for-profit organization that was founded in the late 50’s, and has over 7,000 very smart dudes (65% have Masters or PhDs). MITRE has come up with their own security guideline as well, that is the <a href="http://cwe.mitre.org/">CWE </a>(Common Weakness Enumeration) and it provides a common language of discourse for discussing, finding and dealing with the causes of software security vulnerabilities as they are found in code, design, or system architecture. The CWE lists over 800 programming errors, design errors, and architectural errors that can lead to exploitable vulnerabilities. Interestingly, MITRE and SANS decided to collaborate to come up with the <a href="http://cwe.mitre.org/top25/">CWE Top 25</a>, yet another “Top” list they have been putting together for the last couple of years.</p>
<p>The <a href="https://www.pcisecuritystandards.org/index.shtml">PCI Security Standards Council </a>was founded by American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. and is an open global forum for the ongoing development, enhancement, storage, dissemination and implementation of security standards for account data protection. The PCI SSC has come up with the <a href="https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml">PCI DSS</a>, “a multifaceted security standard that includes requirements for security management, policies, procedures, network architecture, software design and other critical protective measures. This comprehensive standard is intended to help organizations proactively protect customer account data”.</p>
<p>Finally, there is the <a href="http://www.sei.cmu.edu/">SEI </a>(the Software Engineering Institute, which is a federally funded R&amp;D center at CMU, aka Carnegie Mellon University). The SEI is home to <a href="http://www.cert.org/">CERT </a>which was established in 1988 to address internet security problems and to find ways to reduce the number and impact of security breaches. CERT focuses on protection, detection, and response to attacks on networked computer systems. Surprisingly enough, CERT is not actually an acronym.</p>
<p>Neither PCI nor CERT has received the memo yet that in order to be cool, you have to have a “Top X” list&#8230;perhaps next year?</p>
<p>Now, not to be left out of the fun, the NCSD (National Cyber Security Division) of the DHS (Department of Homeland Security) has their own strategic initiative called BSI (Build Security In). The NCSD obviously wants to cover pretty much all the bases since, in addition to their own <a href="https://buildsecurityin.us-cert.gov/bsi/home.html">BSI</a>, they also sponsor pretty much all of the other guidelines.</p>
<p>I would be remiss if I didn&#8217;t at least acknowledge a few other notables with respect to software security guidelines, and to make it more interesting, I will only provide the acronym. I challenge you to come up with the full name. So, a few others involved in security guidelines are NIST (who run a project called SAMATE, and also run an event called SATE, which BTW is also sponsored by DHS NCSD), WASC, and finally STIG. For fun, I’ll throw in CVE, even though it is not a guideline, but more of a dictionary or list that was put together by MITRE, and shockingly is sponsored by DHS NCSD. I&#8217;m starting to think that DHS wants to be everyone&#8217;s BFF.</p>
<p>Hopefully you’ve learned a little more about the alphabet soup of security guidelines out there. If you&#8217;re scratching your head thinking WTF, you&#8217;re probably not alone&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/the-alphabet-soup-of-software-security-guidelines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Error messages: Moving beyond WTF</title>
		<link>http://www.klocwork.com/blog/2010/06/error-messages-moving-beyond-wtf/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=error-messages-moving-beyond-wtf</link>
		<comments>http://www.klocwork.com/blog/2010/06/error-messages-moving-beyond-wtf/#comments</comments>
		<pubDate>Thu, 10 Jun 2010 20:25:30 +0000</pubDate>
		<dc:creator>Patti Murphy</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[error messages]]></category>
		<category><![CDATA[technical writer]]></category>
		<category><![CDATA[user error]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=994</guid>
		<description><![CDATA[By the time users hit the help documentation, they&#8217;re already snarly. Yeah, some people read the documentation first before using the tool, but&#8230; A lot of people just want to dive in and start using the tool. And when I’m stuck I want answers. Now, already!  You might think it’s stupid-user error and I might [...]]]></description>
			<content:encoded><![CDATA[<p>By the time users hit the help documentation, they&#8217;re already snarly. Yeah, some people read the documentation first before using the tool, but&#8230;</p>
<p>A lot of people just want to dive in and start using the tool. And when I’m stuck I want answers. Now, already!  You might think it’s stupid-user error and I might think it’s stupid software design, but who cares? I want help right NOW.</p>
<p>Troubleshooting information lives or dies by the search-and-I-better-frickin-find-what-I&#8217;m-looking-for mentality. How do we look for this help? We copy and paste error messages into a browser and search.</p>
<p>When my ideas about organizing  troubleshooting information compete with how Google finds stuff, Search Engine Optimization (SEO) carries the day.  Or at least it should. Of course, there are SEO factors that put help documentation at a disadvantage, but that’s another topic for another day and I’ll let <a href="http://idratherbewriting.com/2010/05/28/search-engine-optimizing-your-help-content-for-google-organizing-content-10/">Tom Johnson</a> do the talking on that one.</p>
<p>What does this mean for me, a technical writer?</p>
<p>Well, if two (or 5) of our tools throw the same error message, I’m going to have one page for each error message and have instructions on that page that explain how to fix it in each tool. Yeah, it’s nice to have tool-specific help information, but Google gives more weight to page titles and URLs. For good measure, I’m going to repeat the error message in the body of the page and format it in bold or italics.</p>
<p><a href="http://ffeathers.wordpress.com/2008/05/18/aodc-error-messages/">Sarah Maddox</a> highlights elements of what makes a good error message (including some hilarious examples of bad ones), so no need for repetition.</p>
<p>Aside from clarity, what do I want in an error message?</p>
<p>Firstly, I’d like to be able to copy and paste it.</p>
<p>Secondly, I’d like the solution to be stated.</p>
<p>As an added bonus, I’d like to be provided with a link in that message that would bring me to the dialog where I can take remedial action. Then, I won’t even have to look for help information. I can just fix it. Here’s an example of one these helpful messages from our Eclipse plug-in:</p>
<p style="text-align: center;"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/error_message_example3.png"><img class="aligncenter size-large wp-image-998" title="error_message_example" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/error_message_example3-1024x85.png" alt="" width="1024" height="85" /></a><br class="spacer_" /></p>
<p>See? Documentation not required. The solution is outlined, and you can click the link to get to the license dialog, where you can check your host and port information.</p>
<p>Hmmm. Maybe that would put me out of a job. Sergey, please change that message to:</p>
<p>ERROR:FROZEN:BAD LICENSE.</p>
<p>I have a mortgage to pay here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/error-messages-moving-beyond-wtf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How developers communicate. Not (using social media)!</title>
		<link>http://www.klocwork.com/blog/2010/06/how-developers-communicate-not-using-social-media/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-developers-communicate-not-using-social-media</link>
		<comments>http://www.klocwork.com/blog/2010/06/how-developers-communicate-not-using-social-media/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 21:23:27 +0000</pubDate>
		<dc:creator>Eric Hollebone</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=988</guid>
		<description><![CDATA[So a while back, I explored where developers get their information.  Surprisingly, it is hard to find hard data on the subject.  As a bonus from a Forrester study commissioned by Klocwork into the habits of code review, part of  the data revealed developers&#8217; use of social media tools.  When asked directly about their use of these tools [...]]]></description>
			<content:encoded><![CDATA[<p>So a while back, I explored where <a href="http://www.klocwork.com/blog/2009/08/so-where-do-you-get-your-information/">developers get their information</a>.  Surprisingly, it is hard to find hard data on the subject.  As a bonus from a Forrester study commissioned by Klocwork into the habits of <a title="Code Review - a modern approach" href="http://www.klocwork.com/resources/code-review/" target="_blank">code review</a>, part of  the data revealed developers&#8217; use of social media tools.  When asked directly about their use of these tools to communicate with other developers, the majority polled would not choose a social media channel.</p>
<p style="text-align: center;"><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/klocwork-social-media-developer-usage.png"><img class="aligncenter size-medium wp-image-992" title="Software developer usage of social media" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/klocwork-social-media-developer-usage.png" alt="Software developer social media usage for communications with other developers" width="500" height="361" /></a></p>
<p>It just goes to show that yet again, software developers are a breed apart.  As an aside, as I was researching this topic, I found an interesting post on why <a href="http://www.noop.nl/2009/05/social-media-experts-are-poets-software-developers-are-novelists.html" target="_blank">Social Media Experts are poets, Software developers are novelist</a> that delves into ideas on barrier-of-entry as related to quality-perception of creative tasks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/how-developers-communicate-not-using-social-media/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer productivity – you’ve got mail</title>
		<link>http://www.klocwork.com/blog/2010/06/developer-productivity-youve-got-mail/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=developer-productivity-youve-got-mail</link>
		<comments>http://www.klocwork.com/blog/2010/06/developer-productivity-youve-got-mail/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 14:56:14 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Klocwork]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[Static Analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=986</guid>
		<description><![CDATA[A while back, I talked about how I keep running into organizations that seem to go out of their way to make developers&#8217; lives hell.  I&#8217;ve run into several examples where developers had to switch between different environments just to write and compile code.  That&#8217;s as productive as watching paint dry and as much fun [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I <a title="Developer productivity thrown out the door" href="http://www.klocwork.com/blog/2009/06/developer-productivity-thrown-out-the-door/" target="_blank">talked</a> about how I keep running into organizations that seem to go out of their way to make developers&#8217; lives hell.  I&#8217;ve run into several examples where developers had to switch between different environments just to write and compile code.  That&#8217;s as productive as watching paint dry and as much fun as rearranging the deck chairs on the Titanic.</p>
<p>For teams that want to run source code analysis in these types of environments (or any kind of dev tooling, frankly)  it&#8217;s very difficult for vendors to support.  I did my usual PM grumbling about these environments but since that post exactly 1 year ago I&#8217;ve come to realize that these environments are a reality and we need to figure out a way to support them.  Maybe it&#8217;s not productive but organizations are making it work.  I&#8217;m sure they would even argue that they have made it productive (good luck to them).  It&#8217;s for this reason that Klocwork has given in and instead of pointing our finger and making fun (I swear I never did), we&#8217;ve decided that it&#8217;s in our best interest to make sure we provide these customers with the capability to run static analysis.</p>
<p>A couple of releases ago, Klocwork introduced a new tool called Klocwork Desktop that provides Klocwork command line users with the same graphical capabilities that one would get from Visual Studio or Eclipse.  This tool was great for users who never used an IDE.  With Klocwork&#8217;s 9.1 release we have extended Klocwork Desktop&#8217;s reach by providing a remote capability that&#8217;s designed to support the type of environments described above.  Using Klocwork Desktop in remote mode allows users to view their source  and detected-issue information when Klocwork Desktop does not have  direct access to source files or defects, yet still get the benefits of finding and fixing your defects before you check-in your code.</p>
<p>One really cool feature that is part of this is the &#8220;you&#8217;ve got mail&#8221; notification.  At first, I have to admit this is something that worried me.  If I had to label one thing as a productivity drain it was those annoying alerts you get of new email coming in.  Of course right in the middle of doing something important you get distracted by a new email with plans for the next party (or in my case hearing about the kids latest poop explosion).  The first thing I always do is turn it off.  But in the case of finding bugs while coding, it only makes sense to give you these notifications in a heartbeat.  So you can actually be writing code on some machine in Jakarta and automatically your machine in San Jose is alerting you of bugs.  Pretty neat stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/developer-productivity-youve-got-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developers think code reviews are great… what?</title>
		<link>http://www.klocwork.com/blog/2010/06/developers-think-code-reviews-are-great-what/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=developers-think-code-reviews-are-great-what</link>
		<comments>http://www.klocwork.com/blog/2010/06/developers-think-code-reviews-are-great-what/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 15:30:31 +0000</pubDate>
		<dc:creator>Brendan Harrison</dc:creator>
				<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Forrester]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=980</guid>
		<description><![CDATA[It&#8217;s often taken as read that developers think code reviews are just a pain in the behind. Maybe that sentiment is true when a developer&#8217;s sitting amongst his/her peers and getting interrogated on the quality of their code, but some of the data from a Forrester Consulting study commissioned by Klocwork seems to contradict that [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s often taken as read that developers think code reviews are just a pain in the behind. Maybe that sentiment is true when a developer&#8217;s sitting amongst his/her peers and getting interrogated on the quality of their code, but some of the data from a <a title="Code Review Resource Centre" href="http://www.klocwork.com/resources/code-review/" target="_blank">Forrester Consulting study commissioned by Klocwork</a> seems to contradict that a bit. The survey asked software development professionals a whole bunch of questions related to code reviews (some of which we&#8217;ve <a title="Code Reviews - Mandatory but Ad-hoc?" href="http://www.klocwork.com/blog/2010/03/code-reviews-mandatory-but-ad-hoc/" target="_blank">referenced before</a>) and here are two interesting data points that suggest developers see real benefits from code reviews.</p>
<p><br class="spacer_" /></p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/06/code_review_data_results_jun1_v31.png"><img class="aligncenter size-full wp-image-985" title="code_review_data_results_jun1_v3" src="http://www.klocwork.com/blog/wp-content/uploads/2010/06/code_review_data_results_jun1_v31.png" alt="" width="591" height="694" /></a></p>
<p><br class="spacer_" /></p>
<p>So 79% of respondents indicate that, yes, code reviews have been effective at reducing the number of bugs found later in the development cycle. Furthermore, 43% state that code reviews have caused a fundamentally positive shift in their project&#8217;s direction. Cool.</p>
<p>Of course, in other parts of the survey, respondents complain about aspects of code review, in particular how time consuming and difficult they can be to implement consistently. Nonetheless, the data indicates that when organizations put their heads down and make them part of their development process, real benefits will be realized. So, the challenge is making them part of the process &#8211; of course we advocate a tools-based approach, making them more lightweight, and combining automation into your software verification strategy so that manual reviews aren&#8217;t the only technique being used to find implementation errors.</p>
<p>This data line-up with what you&#8217;re seeing within your organization?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/06/developers-think-code-reviews-are-great-what/feed/</wfw:commentRss>
		<slash:comments>4</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>Why don’t developers want the latest toys?</title>
		<link>http://www.klocwork.com/blog/2010/05/why-dont-developers-want-the-latest-toys/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=why-dont-developers-want-the-latest-toys</link>
		<comments>http://www.klocwork.com/blog/2010/05/why-dont-developers-want-the-latest-toys/#comments</comments>
		<pubDate>Tue, 25 May 2010 21:05:11 +0000</pubDate>
		<dc:creator>Gwyn Fisher</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=978</guid>
		<description><![CDATA[There’s a tradition in R&#38;D management that goes something like this: “give them toys and they’ll be happy.” Typically this has meant the biggest monitors, or the fastest CPUs, or an egregiously unnecessary SLI GPU configuration (for, ahem, high capacity computation tasks, right…), or whatever the latest piece of hardware might be that catches the [...]]]></description>
			<content:encoded><![CDATA[<p>There’s a tradition in R&amp;D management that goes something like this: “give them toys and they’ll be happy.” Typically this has meant the biggest monitors, or the fastest CPUs, or an egregiously unnecessary SLI GPU configuration (for, ahem, high capacity computation tasks, right…), or whatever the latest piece of hardware might be that catches the purchasing manager&#8217;s eye.</p>
<p>But what about the software on that hardware? Sure, we equip people with an IDE (if they’ll use it, or whatever text editor they demand if they won’t) and whatever other tools are mandated as part of their development lifecycle. In fact, typical managers would dearly love to be able to mandate more tools for their developers. It’s easy, after all, for a manager to make the correlation that more toys = happy developer = more productivity = more code = bigger bonus = happy manager.</p>
<p>So why do so many developers, particularly in the embedded space, use outdated software tools? What’s the excuse, after all, for vi or some close derivative being a dominant code editor?</p>
<p>Inverse snobbery has been a popular theme in the privileged parts of the world for much of the last thirty years. “Yes, we drive a Lada because we just don’t believe that a BMW is necessary.” Really? Does anybody actually believe that tripe? I mean, I can well believe “I use vi because I have to; it’s the only editor that works on this cruddy piece of hardware.” But forgive me if I have a hard time with “I use vi because I like it better than anything else.” We all get used to stuff that makes no real sense, but surely there’s a point where even the most inverted technical snob has to look themselves in the mirror and know, deep in their darkest most hidden-away recesses of existential reality, that they’re just full of it.</p>
<p>Intransigence. Inertia. Feet dug in harder than you could possibly shift in a lifetime. Call it what you will, but unless something life-changing, like a project in a new language happens, many developers have a nasty habit of sticking with what they know. “What we do is hard enough,” goes the meme, “we don’t need to make it any worse.”</p>
<p>So how are those same developers coping with the demands of the ever-increasing footprint that is professional development? After all, it’s not enough anymore to simply bang out some code and check it in, moving on to the next assignment and hoping nobody notices. Now the professional developer is tasked with unit testing, performance testing, static analysis, memory profiling, code review, refactoring for maintenance, architectural cohesion, you name it. The list only ever gets longer as we move the goal posts for QA closer and closer to the consumer, requiring the developer to pick up the slack in the interim.</p>
<p>How does that footprint get coverage? There are still the same number of hours in the day, and the required amount of code generated by each developer hasn’t markedly decreased over the last 10 years. So what gives? One thing’s for sure… vi hasn’t made developer productivity much better than when it was first written at Berkley all those years ago (with all due deference to the strides made by vim/gvim in recent years).</p>
<p>I’m going to examine several different communities in upcoming posts and look at the approach they take to solving this problem, covering a range of backgrounds and roles from embedded driver writers to creators of modern web applications. In the meantime, have a look inside yourself and, if you pass muster as some analog of the crusty vi user I paint above, ask yourself why, and what might make you change. Recent history abounds with case studies, some of which I’ll reference, but at the end of the day it’s all about you and your personal work practice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/why-dont-developers-want-the-latest-toys/feed/</wfw:commentRss>
		<slash:comments>2</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>So many developer tools – which ones to pick</title>
		<link>http://www.klocwork.com/blog/2010/05/so-many-developer-tools-which-ones-to-pick/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=so-many-developer-tools-which-ones-to-pick</link>
		<comments>http://www.klocwork.com/blog/2010/05/so-many-developer-tools-which-ones-to-pick/#comments</comments>
		<pubDate>Wed, 19 May 2010 15:51:25 +0000</pubDate>
		<dc:creator>Eric Hollebone</dc:creator>
				<category><![CDATA[Code Review]]></category>
		<category><![CDATA[General Coding]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[Static Analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=972</guid>
		<description><![CDATA[What is the ROI to the company for developer tools?  This has always been and continues to be a struggle in any development organization. Developer productivity to date has been very poorly measured and studied. Programming has always been a creative task bound within the constraints of  a framework.  Many people have tried to measure direct individual [...]]]></description>
			<content:encoded><![CDATA[<p>What is the ROI to the company for developer tools?  This has always been and continues to be a struggle in any  development organization. Developer productivity to date has been very poorly measured and studied. Programming has always been a creative task bound within the constraints of  a framework.  Many people have tried to measure direct individual developer productivity with less than convincing results:</p>
<blockquote><p>Bugs per dev, bugs per team, bug regression rates, bug trend lines, comparative .NET Framework book sales rates,  # of [static analysis] violations per kloc, etc, etc.. the list is really endless…</p>
</blockquote>
<p>So when it comes to assessing the value of development tools, what are the motivational and productivity drivers?  During my time as a development manager, my focus was always on reducing roadblocks and mindless repetitive tasks.  When you are well compensating developers to use their grey matter, you don&#8217;t want their efforts to be wasted on the simple stuff.</p>
<p>Focusing on a bottom-up approach, I base the tool choices on the marginal cost for adding a developer.  After getting the basics out of the way, including corporate overhead, dev box, standard  software load and a complier, what&#8217;s next?</p>
<p>Well, there are a plethora of vendors all screaming at you to buy their product, but let&#8217;s take a step back and look at what makes a developer produce better code.</p>
<p>Here is my list in order and why.  It starts at the developer desktop and depends on frequency of use and then spreads out to the rest of the development team:</p>
<ul>
<li>Source control (with nightly backups) &#8211; Even for a development team of one, don&#8217;t leave home without it.  The benefits of source control really can&#8217;t be overstated: revision control, easy diffs, build integration, product branching  and maintenance, etc.</li>
</ul>
<ul>
<li><a href="http://www.klocwork.com/products/insight/klocwork-truepath/" target="_blank">static analysis</a> &#8211; like grammar checking for Office but so much deeper. It has been proven time and time again that getting rid of the minor flaws and style inconsistencies right when the developer is working and the code is fresh in their brain is the most productive.  Waiting 2 hours, a  day and for some even a week costs a context switch.  When you add in the regression analysis for the maintainability, this tool just shines and pays for itself quickly</li>
</ul>
<ul>
<li>Issue tracking &#8211; some might debate that this tool&#8217;s placement should be above static analysis, but as I said,  my focus here is on the developer&#8217;s desktop and not team or management needs.</li>
</ul>
<ul>
<li>refactoring &#8211; only sightly better than find/search/replace - not essential but when used frequently and consistently can be used for good productivity benefits .  It&#8217;s one of the small tools that get you through the day.</li>
</ul>
<ul>
<li><a href="http://www.klocwork.com/solutions/code-review/">code review</a> &#8211; similar to static analysis but now we have widened our view off of the desktop and include the team to build better code. No one person can know everything and extra pairs of eyes on the code is only going to make it better.</li>
</ul>
<ul>
<li>unit testing &#8211; anything to take away the drudgery of building simple test cases that completely cover the class/api interfaces and maintaining with the refactoring that will happen over time.  You might ask why unit testing is lower on the list. Simple. You can&#8217;t test code that has not been written yet.</li>
</ul>
<ul>
<li>dynamic/performance profiling and input injection &#8211; your customer will like you for this one.  Over time, most applications grow, add new features and become sluggish pigs.  Version performance testing and making critical judgments in trading off performance for value is one of the  keys to repeat customers.</li>
</ul>
<p>There you have it.  A list of tools for developers (note I said developers not PMs or teams) that I consider essential to have on each desktop to get them through their day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/so-many-developer-tools-which-ones-to-pick/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MISRA rules that don’t make sense</title>
		<link>http://www.klocwork.com/blog/2010/05/misra-rules-that-dont-make-sense/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=misra-rules-that-dont-make-sense</link>
		<comments>http://www.klocwork.com/blog/2010/05/misra-rules-that-dont-make-sense/#comments</comments>
		<pubDate>Thu, 13 May 2010 20:18:11 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Software Quality]]></category>
		<category><![CDATA[coding standards]]></category>
		<category><![CDATA[MISRA]]></category>
		<category><![CDATA[MISRA C]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=967</guid>
		<description><![CDATA[Previously I posted the value of using coding standards, specifically MISRA C and MISRA C++.  This time I wanted to go through some general experiences we had with some of the checkers, specifically the ones that seem to throw a lot of violated rules, to the point that on some code bases MISRA flagged more [...]]]></description>
			<content:encoded><![CDATA[<p>Previously I <a href="http://www.klocwork.com/blog/2010/03/misra-more-irrelevant-software-requirements-again/" target="_blank">posted</a> the value of using coding standards, specifically MISRA C and MISRA C++.  This time I wanted to go through some general experiences we had with some of the checkers, specifically the ones that seem to throw a lot of violated rules, to the point that on some code bases MISRA flagged more than one error per LOC!</p>
<p>There are still tons of great rules you can apply even if you don&#8217;t make an embedded product.  But as I said before, it doesn&#8217;t make sense to turn on all the MISRA rules.  After running through many code bases and looking at the value of MISRA we certainly noticed a trend with a few culprits.  Here are a few examples that we found to be noisy with non-MISRA compliant code.</p>
<p>MISRA C 6.3 and MISRA C++ 3-9-2:</p>
<p>MISRA has the distinction of &#8220;required&#8221; rules and &#8220;advisory&#8221; rules.  This is an &#8220;advisory&#8221; rule.  Essentially it wants you to avoid using types like char, int, short, long etc. and to use specific length typedefs instead.  Obviously, many code bases use the basic types, so be prepared for many issues.</p>
<p>MISRA C 14.9 and MISRA C++ 6-4-1:</p>
<p>This is a &#8220;required&#8221; rule.  This rule  is really about making sure you have braces for your if/else keywords.  Good practice to have but how many of us really do this?</p>
<p>MISRA C 12.13 and MISRA C++ 5-2-10:</p>
<p>This is an &#8220;advisory&#8221; rule.  The rule doesn&#8217;t want you to mix increment and decrement operators into an expression.  This makes sense because it can be pretty confusing to read.  But in our experiments this seems to be something that many developers do.</p>
<p>MISRA C 17.4 and MISRA C++ 5-0-15:</p>
<p>This is a &#8220;required&#8221; rule.  The rule only wants to allow you to use array indexing for pointer arithmetic.  Everything else is non-compliant.</p>
<p>MISRA C 14.7 and MISRA C++ 6-6-5:</p>
<p>This is a &#8220;required&#8221; rule and another control flow example.  A function can only have one point of exit at the end of a function.  I can understand this but as you know, that is not reality.</p>
<p>MISRA C 13.2:</p>
<p>This is an &#8220;advisory&#8221; rule.  It states that tests against zero should be made explicit.  In other words: if (x != 0) is the proper way, not if (x).  The exception to this is if the operand is Boolean.  I don&#8217;t know about you, but you can crown me the super wiener on this? I never make it explicit.<br class="spacer_" /></p>
<p>So if you plan to pick up MISRA on your existing project beware of these rules.  I&#8217;d like to hear if you do any of those things in your code base.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/misra-rules-that-dont-make-sense/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leveraging static analysis</title>
		<link>http://www.klocwork.com/blog/2010/05/leveraging-static-analysis/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=leveraging-static-analysis</link>
		<comments>http://www.klocwork.com/blog/2010/05/leveraging-static-analysis/#comments</comments>
		<pubDate>Wed, 12 May 2010 13:20:05 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=966</guid>
		<description><![CDATA[In a previous post I discussed the process where we practice dogfooding.  This is the process of using Klocwork on Klocwork (KonK).  We started this program several years back with the hopes that we would learn some valuable lessons about usability, performance and anything else that would give us an edge.  The truth is that [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous <a title="Dogfooding" href="http://www.klocwork.com/blog/2010/04/dogfooding/" target="_blank">post</a> I discussed the process where we practice <a href="http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food" target="_blank">dogfooding</a>.  This is the process of using Klocwork on Klocwork (KonK).  We started this program several years back with the hopes that we would learn some valuable lessons about usability, performance and anything else that would give us an edge.  The truth is that KonK has consistently allowed us to test our design assumptions early by allowing our own developers to use Klocwork as part of their development.</p>
<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/05/konk.bmp"><img class="alignleft size-full wp-image-969" title="KonK" src="http://www.klocwork.com/blog/wp-content/uploads/2010/05/konk.bmp" alt="" width="374" height="216" /></a></p>
<p>One of the unexpected results was inadvertently uncovering data that further validated for us the importance of bugs found by a static analysis tool. We correlated testing-found issues and KonK (static analysis) issues assigned to each developer. The result as this graph shows (note: graph is using a logarithmic scale and is a few years old), is there was a very high relationship between the two. Those familiar with bugs found by static analysis tools know that they are often quite different in nature from a bug found by testing where you’re testing requirements, yet developers with a high count of testing-found issues also had a high KonK count. In some cases they pointed to the same problem, in others an indication of the overall bad to the bone problems in some of the new components.</p>
<p><br class="spacer_" /></p>
<p>Since we already eat our own dogfood, we’re already believers in the use of static analysis, but this kind of data is a great example of the benefit of finding issues early using static analysis</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/leveraging-static-analysis/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>ESC SJ 2010 – Optimism, Tools for small codebases and MISRA</title>
		<link>http://www.klocwork.com/blog/2010/05/esc-sj-2010-trends-optimism-tools-for-small-codebases-misra/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=esc-sj-2010-trends-optimism-tools-for-small-codebases-misra</link>
		<comments>http://www.klocwork.com/blog/2010/05/esc-sj-2010-trends-optimism-tools-for-small-codebases-misra/#comments</comments>
		<pubDate>Wed, 05 May 2010 13:20:51 +0000</pubDate>
		<dc:creator>Eric Hollebone</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[General Industry]]></category>
		<category><![CDATA[Static Analysis]]></category>
		<category><![CDATA[coding standards]]></category>
		<category><![CDATA[MISRA]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=961</guid>
		<description><![CDATA[I just got back from a visit to the Valley and had an awesome week in San Jose/San Fran.  I even had time to play a bit of the tourist this time (I ran the Golden Gate bridge/Presidio).  All that was fun, but what I always enjoy is the conversations we had with customers and prospects at [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/05/golden-gate-bridge-9.jpg"><img class="alignleft size-medium wp-image-962" style="margin-right: 10px; margin-left: 10px; margin-top: 0px; margin-bottom: 0px; border: 10px solid white;" title="San Francisco - Presidio - Golden Gate Bridge" src="http://www.klocwork.com/blog/wp-content/uploads/2010/05/golden-gate-bridge-9-300x199.jpg" alt="" width="210" height="139" /></a>I just got back from a visit to the Valley and had an awesome week in San Jose/San Fran.  I even had time to play a bit of the tourist this time (I ran the <a href="http://en.wikipedia.org/wiki/Presidio_of_San_Francisco">Golden Gate bridge/Presidio</a>).  All that was fun, but what I always enjoy is the conversations we had with customers and prospects at this year&#8217;s <a href="http://esc-sv09.techinsightsevents.com/">ESC SJ 2010</a> conference.</p>
<p>It is always interesting listening to their successes and teasing out the trending topics and new issues that matter to development teams.  Here are the top three themes that caught my ear this year:</p>
<ol>
<li>The economic rebound is well underway, with growth and optimism from every quarter.  It may be too early to see results on the balance sheets, but the positive attitude is back.</li>
<li>Embedded developers are searching for enterprise-class developer productivity tools, like <a title="Static analysis tools" href="http://www.klocwork.com/products/insight/klocwork-truepath/" target="_blank">static analysis</a>, for even tiny codebases (less than 40 kLOC).</li>
<li>By far, the most-often raised topic in one-on-one conversations was coding standards, with<a title="MISRA C/C++ coding standards" href="http://www.klocwork.com/solutions/misra-coding-standards/" target="_blank"> MISRA C and C++</a> as the favorite.  MISRA&#8217;s time has definitely arrived for the embedded community.</li>
</ol>
<p>So all in all, a great time, and looking forward to next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/05/esc-sj-2010-trends-optimism-tools-for-small-codebases-misra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dogfooding</title>
		<link>http://www.klocwork.com/blog/2010/04/dogfooding/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dogfooding</link>
		<comments>http://www.klocwork.com/blog/2010/04/dogfooding/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 13:52:51 +0000</pubDate>
		<dc:creator>Alen Zukich</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[dogfooding]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=948</guid>
		<description><![CDATA[Dogfooding?  Is this the process of making sure Rover is well fed?  Maybe it&#8217;s a movement of people eating dog food?  Or maybe Rover IS the dinner (cue animal activists).  No, dogfooding is coined from the saying “Eating one&#8217;s own dog food”. So what on earth am I talking about.  Well first I’m breaking a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.klocwork.com/blog/wp-content/uploads/2010/04/images1.jpeg"><img class="alignleft size-full wp-image-950" style="margin-top: 5px; margin-bottom: 5px; margin-left: 10px; margin-right: 10px;" title="Yum" src="http://www.klocwork.com/blog/wp-content/uploads/2010/04/images1.jpeg" alt="" width="125" height="90" /></a>Dogfooding?  Is this the process of making sure Rover is well fed?  Maybe it&#8217;s a movement of people eating dog food?  Or maybe Rover IS the dinner (cue animal activists).  No, <a href="http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food" target="_blank">dogfooding</a> is coined from the saying “Eating one&#8217;s own dog food”.</p>
<p>So what on earth am I talking about.  Well first I’m breaking a golden rule here when it comes to blogging which is talking about your company (I don’t know how I’ll sleep tonight).  Klocwork does eat its own dog food.  We call this KonK &#8211; Klocwork on Klocwork.</p>
<p>So why is this important?  Ultimately we make a software product that we sell to other companies  that make software.  So who better to experience first hand what we are designing.  By using KonK and updating it frequently it gives us immediate  feedback on usability and scalability (our code base is quite large).   Plus being in the business of bug detection it helps us sort out the  value of the quality of those bugs.  As the product manager I’m not  using it day to day like the developers, so they are the ones that  bring any kind of deficiencies to the design front and center.  Hopefully I can talk a little about the benefits and conclusions we have made by using KonK in a later post.</p>
<p>One thing that has helped me with dogfooding is requirements capture.  Being in product management obviously the clear objective is to work closely with customers to define requirements and your product direction.  Those requirements don’t necessarily paint the picture as much as you would expect or hope.  Now that I can play with the intended design on our own code base it paints a clear picture of what may be missing or what may just be plain ugly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/04/dogfooding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5th Annual Klocwork Customer Advisory Board</title>
		<link>http://www.klocwork.com/blog/2010/04/5th-annual-klocwork-customer-advisory-board/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=5th-annual-klocwork-customer-advisory-board</link>
		<comments>http://www.klocwork.com/blog/2010/04/5th-annual-klocwork-customer-advisory-board/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 19:16:15 +0000</pubDate>
		<dc:creator>Todd Landry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Static Analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=956</guid>
		<description><![CDATA[Just got back from our 5th annual Klocwork Customer Advisory Board, graciously hosted in hot and sunny Phoenix, Arizona by one of our top customers. These events are now running like, umm, clockwork, as we have come up with a winning recipe that mixes a nice combination of Klocwork delivered material and customer delivered material [...]]]></description>
			<content:encoded><![CDATA[<p>Just got back from our 5<sup>th</sup> annual Klocwork Customer Advisory Board, graciously hosted in hot and sunny Phoenix, Arizona by one of our top customers. These events are now running like, umm, clockwork, as we have come up with a winning recipe that mixes a nice combination of Klocwork delivered material and customer delivered material over the course of 2 days. We had a great mix of ‘seasoned veterans’ and new members to this year’s CAB which worked out extremely well. We decided to add a keynote speaker to kick our meetings off, which by all accounts was very well received. I think that will now be a permanent part of our meetings going forward.</p>
<p>While we were inside a meeting room for the better part of 2 days, we did have some time to experience the great outdoors in Phoenix.  The afterhours ‘event’ this year was riding around the <a href="http://www.fs.fed.us/r3/tonto/home.shtml">Tonto National Forest</a>&#8230;at night, without headlights&#8230;in Hummers. Not your garden-variety Hummers either, but bad-ass Hummers that seem unstoppable. Throw in some night-vision goggles, scorpions, cacti, and tarantulas and you’ve got yourself one heck of an outing. If you’re ever in the Phoenix area, you have to check out <a href="http://www.dshummer.com/tours/family-nightstorm/">Desert Storm Hummer Tours</a>.<a href="http://www.klocwork.com/blog/wp-content/uploads/2010/04/sonoran_four.jpg"><img class="alignleft size-full wp-image-957" title="sonoran_four" src="http://www.klocwork.com/blog/wp-content/uploads/2010/04/sonoran_four.jpg" alt="" width="165" height="165" /></a></p>
<p>Every year I come back from CAB wondering how we will top the last one, and it is no different this year. This CAB has set the bar very high, but I’m sure we will find a way to exceed it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/04/5th-annual-klocwork-customer-advisory-board/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>False False Positives</title>
		<link>http://www.klocwork.com/blog/2010/04/false-false-positives/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=false-false-positives</link>
		<comments>http://www.klocwork.com/blog/2010/04/false-false-positives/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 14:10:05 +0000</pubDate>
		<dc:creator>Brendan Harrison</dc:creator>
				<category><![CDATA[General Coding]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[source code analysis]]></category>
		<category><![CDATA[Static Analysis]]></category>

		<guid isPermaLink="false">http://www.klocwork.com/blog/?p=954</guid>
		<description><![CDATA[Our partners at Code Integrity have a good blog that touches on many of the benefits and barriers to static analysis within a development organization. They have an interesting post on “False false positives” – a great phrase that captures one of the key challenges in developer adoption of the technology. While increased sophistication means that static [...]]]></description>
			<content:encoded><![CDATA[<p>Our partners at <a title="Code Integrity Website" href="http://codeintegritysolutions.com/" target="_blank">Code Integrity</a> have a good blog that touches on many of the benefits and barriers to <a title="Static analysis" href="http://www.klocwork.com/products/insight/klocwork-truepath/" target="_blank">static analysis</a> within a development organization. They have an interesting post on “<a title="False false positive blog post" href="http://codeintegrity.blogspot.com/2010/03/false-false-positive.html" target="_blank">False false positives</a>” – a great phrase that captures one of the key challenges in developer adoption of the technology.</p>
<blockquote><p>While increased sophistication means that static analysis tools can catch more problems with a higher degree of accuracy, the burden increases on the reviewer of the results to interpret them correctly. If you were grep&#8217;ing through some code for something you can quickly review (and dismiss) many of the results because you understand what your &#8220;analysis&#8221; is doing. With static source code analysis, this is much less apparent.</p>
<p>We see many engineers look at a complex bug report and not take the necessary time to understand the problem and fix it. This is mostly because they don&#8217;t understand what the static analysis tool is doing and how deep it is analyzing the code. The result is a real bug being marked as a false positive &#8211; or a &#8220;false false positive&#8221; if you will. These bugs then disappear off the queue never to be seen again &#8211; a lost opportunity.</p>
</blockquote>
<p>One of their key recommendations to overcoming this barrier is using training and joint review of results to educate developers on why the tool is flagging a potential error, what the mitigation options are, etc. Code Integrity has a bunch of deployment and training services to help customers with these types of deployment hurdles.</p>
<p>In our experience, all developers need is one ‘aha’ moment where the tool finds a nasty, subtle bug that would be hard to find using any other method. Once that happens, the developer is a convert. I would also say the burden isn’t just on training, but the tool vendors as well. We all have to continue making the usability of the tool such that developers should be able to instantly recognize why the tool is flagging the error and give the developer all the info they need to recognize the bug and take the appropriate action.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.klocwork.com/blog/2010/04/false-false-positives/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss><!-- Dynamic page generated in 0.233 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-07-27 11:02:33 -->
