<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>A Techie Thought</title>
	<atom:link href="http://lalitkale.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lalitkale.wordpress.com</link>
	<description>Passion for Technology</description>
	<lastBuildDate>Tue, 06 Dec 2011 01:54:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lalitkale.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>A Techie Thought</title>
		<link>http://lalitkale.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lalitkale.wordpress.com/osd.xml" title="A Techie Thought" />
	<atom:link rel='hub' href='http://lalitkale.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Combination Therapy for Requirements using BDD and UML</title>
		<link>http://lalitkale.wordpress.com/2010/03/08/combination-therapy-for-requirements-using-bdd-and-uml/</link>
		<comments>http://lalitkale.wordpress.com/2010/03/08/combination-therapy-for-requirements-using-bdd-and-uml/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 05:59:00 +0000</pubDate>
		<dc:creator>lalitkale</dc:creator>
				<category><![CDATA[Learning Organization]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Balsamiqmockups]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://lalitkale.wordpress.com/2010/03/08/combination-therapy-for-requirements-using-bdd-and-uml/</guid>
		<description><![CDATA[Generally, we write requirements in use case structure. Use case structure gives us all elements required but by design , it is a vague format which are devised around use case diagrams. Every software professional has its own flavor of writing use cases.Requirements have bigger impact on business and cost part of IT projects. Many times, due to not so clear communication between IT vendor and client over the requirements, this cost of lot of rework and hence the cost to client. So dilemma here is how to collect the requirements and the new approach should be better than standard use case structures and should be fairly objective.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=249&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><font size="4">Problem</font></strong></p>
<p>Generally, we write requirements in use case structure. Use case structure gives us all elements required but by design , it is a vague format which are devised around use case diagrams. Every software professional has its own flavor of writing <a class="zem_slink" title="Use case" href="http://en.wikipedia.org/wiki/Use_case" rel="wikipedia">use cases</a>. Even the sections of use case structure varies person to person.The intrinsic details of the parts of use case specially use case description, preconditions and post conditions etc] are vaguely defined. Writing use cases in clear format is also a skill and that depends upon the person who is responsible for collecting requirements.Use case are still useful in mature kind of organization but it is not so much effective way when we do not want to have upfront big designs. So dilemma here is how to collect the requirements and the new approach should be better than standard use case structures and should be fairly objective. </p>
<p>There is also a second angle to this use case discussion. Requirements have bigger impact on business and cost part of IT projects. Many times, due to not so clear communication between IT vendor and client over the requirements, this cost of lot of rework and hence the cost to client.From client’s viewpoint ,it is difficult to understand use case type of language and there is a chance to miss out or assume requirements/scenarios ,which becomes cost(in terms of money or time) for them afterword. Situation becomes bad in fixed cost projects. I had experienced this bitter pill many times. </p>
<p><strong><font size="4">Solution</font></strong></p>
<p>So the solution I am proposing here is , <a class="zem_slink" title="Behavior Driven Development" href="http://en.wikipedia.org/wiki/Behavior_Driven_Development" rel="wikipedia">Behavior Driven Development</a> [BDD] kind of requirements collection for even the people who are not practicing BDD. From past few months,I am sort of wandering in TDD,BDD forest. Now I am going ahead with <a href="http://www.codeplex.com/NBehave" target="_blank">nBehave</a> and <a href="http://specflow.org/" target="_blank">Specflow</a> and <a href="http://wiki.github.com/aslakhellesoy/cucumber/gherkin" target="_blank">Gherkin</a> which has changed whole lot of things for me on coding front. </p>
<p>I totally understand that BDD can’t be fully rolled out in some scenarios/in some organizations[no silver bullet!, lack of expertise, no enthusiasm to learn, cost of learning curve and transformation etc] but I am sure that, we can at least move to BDD style of requirement writing which is kind of closer to silver bullet:). See the following example. I had directly taken this example from Dan North&#8217;s blog. BTW, Dan is pioneer in BDD and I guess, he is the first who coined the term &quot;BDD&quot;. He has also compared use case format with BDD style. Here I think, interesting angle from my side is merge both of them to take advantage from both styles of requirements collection. </p>
<p>In BDD, The requirements are collected in story form like: </p>
<p><b>Title</b> (one line describing the story) </p>
<p><b>Narrative:</b> </p>
<p><b>As a</b> [role] </p>
<p><b>I want</b> [feature] </p>
<p><b>So that</b> [benefit] </p>
<p><b><u>Acceptance Criteria:</u></b> (presented as Scenarios) </p>
<p><b><em>Scenario 1</em></b>: Title </p>
<p><b><em>Given</em></b> [context] And [some more context]&#8230; </p>
<p><b><em>When</em> </b>[event] </p>
<p><em><b>Then</b> </em>[outcome] And [another outcome]&#8230; </p>
<p>Scenario 2: &#8230; </p>
<p><b>ACTUAL EXAMPLE:</b> </p>
<p><b></b></p>
<p><b>Story:</b> Account Holder withdraws cash </p>
<p><em>As an</em> Account Holder </p>
<p><em>I want</em> to withdraw cash from an ATM </p>
<p><em>So that</em> I can get money when the bank is closed </p>
<p><b><u>Scenario 1:</u></b> Account has sufficient funds </p>
<p><em>Given </em>the account balance is \$100 And the card is valid And the machine contains enough money </p>
<p><em>When</em> the Account Holder requests \$20 </p>
<p><em>Then </em>the ATM should dispense \$20 And the account balance should be \$80 And the card should be returned </p>
<p><b><u>Scenario 2:</u></b> Account has insufficient funds </p>
<p><em>Given</em> the account balance is \$10 And the card is valid And the machine contains enough money </p>
<p><em>When </em>the Account Holder requests \$20 </p>
<p><em>Then</em> the ATM should not dispense any money And the ATM should say there are insufficient funds And the account balance should be \$20 And the card should be returned </p>
<p><b><u>Scenario 3:</u></b> Card has been disabled </p>
<p><em>Given </em>the card is disabled </p>
<p><em>When</em> the Account Holder requests \$20 </p>
<p><em>Then </em>the ATM should retain the card </p>
<p><em>And</em> the ATM should say the card has been retained </p>
<p><strong><u>Scenario 4:</u></strong> The ATM has insufficient funds </p>
<p>&#8230; </p>
<p>I think Along with story, if we have mockup/screenshot[off course with <a href="www.balsamiq.com" target="_blank">Balsamiq mockups</a>! ] of proposed screen and control, <a class="zem_slink" title="Data type" href="http://en.wikipedia.org/wiki/Data_type" rel="wikipedia">data type</a> range chart we used to have with our existing UML format, we can move towards clear requirements. </p>
<p><strong><font size="4">Benefits</font></strong></p>
<p>This will benefit in following ways: </p>
<ol>
<li>It will help to gain common understanding between client and IT Vendor,about what has been covered as requirements and what has not. </li>
<li>Client will find easy to go through requirements since requirements are written in very structured fashion and in plain English. </li>
<li>Organization wide, requirements will be captured in same fashion and we can really estimate based on stories and find how simple or complex the story is based upon no. and complexity of scenarios it had. Hence its really easy for going with <a class="zem_slink" title="Statistical process control" href="http://en.wikipedia.org/wiki/Statistical_process_control" rel="wikipedia">statistical process control</a> for estimation. </li>
<li>Change Requests are dealt with adding/removing/updating the feature/story/scenarios.My observation here is they only change the scenarios. In very rare cases, features or stories are changed. </li>
<li>Testing team will reap the greater benefits here since they can write these stories as per their understanding and take part in RE process in very active way like finding out the missing/not clear scenarios etc. </li>
<li>Testing team do not have to write any other test cases, This can serve as live requirements as well as test cases for them. </li>
<li>Unit Testing for Developers will be easy since now they clearly know what kind of scenarios they have to cover which is bit difficult and time consuming in Use case format. </li>
</ol>
<p>Let me know your thoughts, specially BDD and UML experts&#8230; </p>
<p>Many good points are noted as what should be in story by BDD pioneer Dan north in his post (<a href="http://dannorth.net/whats-in-a-story" target="_blank">http://dannorth.net/whats-in-a-story</a>). </p>
<p>It&#8217;s really refreshing for me to see the BDD light. I will cover an example of my solution and more on requirements collection thought process that I follow, in next post.</p>
<p>&#160;</p>
<p> <span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td><a title="Post it to MSDN!" href="http://social.msdn.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;ttl=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" /></a></td>
<td><a title="Post it to Technet!" href="http://social.technet.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;ttl=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" /></a></td>
<td><a title="Post it to Live!" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" /></a></td>
<td><a title="Post it to Blogmemes!" href="http://www.blogmemes.net/post.php?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" /></a></td>
<td><a title="Post it to Del.icio.us!" href="http://del.icio.us/post?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" /></a></td>
<td><a title="Post it to Digg!" href="http://digg.com/submit?phase=2&amp;url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" /></a></td>
<td><a title="Post it to Dotnetkicks!" href="http://www.dotnetkicks.com/kick/?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" /></a></td>
<td><a title="Post it to Facebook!" href="http://www.facebook.com/sharer.php?u=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;t=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.technet.com/photos/james/images/1765319/original.aspx" /></a></td>
<td><a title="Post it to Reddit!" href="http://reddit.com/submit?url=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" /></a></td>
<td><a title="Post it to Technorati!" href="http://technorati.com/faves/?add=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;title=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" /></a></td>
<td><a title="Post it to Yahoo!" href="http://myweb.yahoo.com/myresults/bookmarklet?u=http://lalitkale.wordpress.com/2010/03/06/combination-theropy-for-requirements-using-bdd-and-uml&amp;t=combination-theropy-for-requirements-using-bdd-and-uml" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" /></a></td>
</tr>
</tbody>
</table>
<p> </span></p>
<br />Filed under: <a href='http://lalitkale.wordpress.com/category/learning-organization/'>Learning Organization</a>, <a href='http://lalitkale.wordpress.com/category/technology/'>Technology</a> Tagged: <a href='http://lalitkale.wordpress.com/tag/balsamiqmockups/'>Balsamiqmockups</a>, <a href='http://lalitkale.wordpress.com/tag/bdd/'>bdd</a>, <a href='http://lalitkale.wordpress.com/tag/learning-organization/'>Learning Organization</a>, <a href='http://lalitkale.wordpress.com/tag/requirements/'>requirements</a>, <a href='http://lalitkale.wordpress.com/tag/use-case/'>use case</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lalitkale.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lalitkale.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lalitkale.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=249&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lalitkale.wordpress.com/2010/03/08/combination-therapy-for-requirements-using-bdd-and-uml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5355b57b551647570d0e31edc1ddb13b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">iNeo</media:title>
		</media:content>

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" medium="image" />

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.technet.com/photos/james/images/1765319/original.aspx" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" medium="image" />
	</item>
		<item>
		<title>Programmer&#8217;s Bad Habits II</title>
		<link>http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii/</link>
		<comments>http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 03:15:00 +0000</pubDate>
		<dc:creator>lalitkale</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[Learning Organization]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bad habits]]></category>
		<category><![CDATA[BadHabits]]></category>
		<category><![CDATA[Programmers]]></category>
		<category><![CDATA[Programmers bad habits]]></category>

		<guid isPermaLink="false">http://lalitkale.wordpress.com/?p=238</guid>
		<description><![CDATA[Continuing part I of this series, here are some more things to add to bad habits or common fallacies and traps of programmers that are holding them from performing well.
1. Carry over the dead code/experiments/comments with you.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=238&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Continuing <a href="http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/" target="_blank">part I</a> of this series, here are some more things to add to bad habits or common fallacies and traps of programmers that are holding them from performing well.</p>
<p><strong>1. Carry over the dead code/experiments/comments with you.</strong></p>
<p>Go to any system/project’s codebase that is more than a year old and you will get to know what this means. You see the comment that says “Sales Invoice in next five lines” and more than 20 lines of code that is commented out and another 10 lines code that are currently working as you debug…and nobody can explain what that old commented code does but they don’t dare to clean that up.</p>
<p><strong>2. I can’t fix another programmer&#8217;s code, rather I will rewrite it.</strong></p>
<p>Ah! This is a classic and I admit that I had been also got hold of it in my early carrier. One programmer never says good things about another programmer’s code. I think this is in our gene and sometimes even if I think of this ,I think programmers in somewhere deep down their minds wanted a perfect world and each one has their own version J of it. Anyway, what all I can suggest is they can read martin fowler’s classic ‘refactoring’ book and this notion will go away.</p>
<p><strong>3. The world can be written only with “if-else” and “for” loops and method reuse.</strong></p>
<p>Junior junkie who can code for days and night and fresh from colleges or worse spent one or two years in some company can write entire systems in if-else and for loops and some procedure reuse. I think some or the other way this has a root cause of “failing to unlearn what we had learned first”. Most of these guys had learned C language as their first programming language and may found they were good at it or they presume that they are good at it. Biggest mistake our schools and some local book authors has did is they are teaching procedural and object oriented programming language the same way.</p>
<p>These authors had not thought over the <a title="object oriented principles" href="http://www.c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign" target="_blank">object oriented principles</a>, rather their focus is teaching upon the tooling of object orientation like inheritance and polymorphism and unfortunately this is the case in India which has got some credibility in IT.</p>
<p><strong>4. Testing is inferior to programming. It is not what true programmer&#8217;s do. Testing is THEIR (Test Engineer&#8217;s) JOB.</strong> </p>
<p>I spent my early years of career in small start-ups where we don’t have luxury of appointing a separate test engineer. Whatever we write, we have to make sure that we are doing it correctly and the result of it is though I have got respect for the test engineers since I realized that say after testing for basic flows and validation errors it is very difficult to think of something different that can break the system. In regard of this thought I had learned some testing basics from various websites and still those are very handy even as a programmer.</p>
<p>Nowadays, While working with midsized firm and continually reading about TDD all I am realizing is, programmers had a misconception that they can write a code that had errors and they can just give it to test engineer to clear even basic things like spelling mistakes.</p>
<p><strong>It is shameful that people do not want to test their own code and worst of all rely on some other individual for correcting their own mistakes.</strong></p>
<p>The notion of <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">TDD</a> is good but their also our cleaver programmer (as well as some lousy test engineers) friends tell us the list of excuses like schedule, how can I write the test when there is no development etc.</p>
<p><strong>5. Code review means somebody should check their code line by line for all aspects and point out the mistakes that they had made.</strong></p>
<p>Yes, it is insane but I had seen some managers and some programmers have such ridiculous expectations from code reviews. First thing is programmer should be responsible for the code he/she is writing and not the other fellow who is helping it out to make that code better.</p>
<p><a title="Code reviews" href="http://en.wikipedia.org/wiki/Code_review" target="_blank">Code reviews</a> should be conducted on sample basis and with the help of some tools likes of static code analysis etc. Checking the mere code conventions should not be the only intent of review. It would be more beneficial that code reviewer should do some firsthand refactoring and in that process programmer would learn things and two about the code as well as this leads to better design.</p>
<p><strong>6. Creating a build means compiling the code.</strong></p>
<p>For the people who have not been in the agile/product development have this misconception that compiling the code is the thing that makes the build process.</p>
<p>These people are missing so many steps that makes build process. I even really doubt that these people consider build as a process.</p>
<p>Many times project requires code signing ,obfuscation of code, replacing connection strings from test environment to production environment ,building for various platforms likes of Windows,*nix or 32 bit,64 bit as well as routine tasks as zipping the release, pushing the release over ftp, emailing about the release to stakeholders etc.</p>
<p>The people ignorant about the build process should really search for the continuous integration and trivial toolset of it which includes brilliant <a href="http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx" target="_blank">TFS</a>, <a href="http://cruisecontrol.sourceforge.net/" target="_blank">cruise control</a>, <a href="https://hudson.dev.java.net/" target="_blank">Hudson</a>, <a href="http://rake.rubyforge.org" target="_blank">rake</a>, <a href="nant.sourceforge.net/" target="_blank">NAnt</a> etc.</p>
<p>These fallacies and traps are costing our customers millions and we should recognize it. In my opinion the root cause of these is the way SME’s <a href="http://lalitkale.wordpress.com/2009/08/23/hiring-developers/" target="_blank">hiring the resources</a>, further on lack of training and setting the culture to sub standards. </p>
<p>The more I go deeper, I think the waterfall thinking model is still lurking people to write bad code and managers had their fear to adopt the bottom up management approach and what we need is agile mindset and <a href="http://lalitkale.wordpress.com/category/learning-organization/" target="_blank">learning organization</a>.</p>
<p><em>“Learning is not child&#8217;s play; we cannot learn without pain.”     <br />- Aristotle </em></p>
<p> <span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td><a title="Post it to MSDN!" href="http://social.msdn.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;ttl=Programmers Bad Habits II" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" /></a></td>
<td><a title="Post it to Technet!" href="http://social.technet.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;ttl=Programmers Bad Habits II" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" /></a></td>
<td><a title="Post it to blogmemes" href="http://www.blogmemes.net/post.php?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" /></a></td>
<td><a title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" /></a></td>
<td><a title="Post it to digg" href="http://digg.com/submit?phase=2&amp;url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" /></a></td>
<td><a title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" /></a></td>
<td><a title="Post it to Facebook" href="http://www.facebook.com/sharer.php?u=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;t=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.technet.com/photos/james/images/1765319/original.aspx" /></a></td>
<td><a title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" /></a></td>
<td><a title="Post it to reddit!" href="http://reddit.com/submit?url=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" /></a></td>
<td><a title="Post it to technorati!" href="http://technorati.com/faves/?add=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;title=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" /></a></td>
<td><a title="Post it to yahoo!" href="http://myweb.yahoo.com/myresults/bookmarklet?u=http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii&amp;t=Programmers Bad Habits II" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" /></a></td>
</tr>
</tbody>
</table>
<p> </span></p>
<br />Posted in code, Learning Organization, Technology Tagged: bad habits, BadHabits, code, Learning Organization, Programmers, Programmers bad habits, Technology <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lalitkale.wordpress.com/238/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lalitkale.wordpress.com/238/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lalitkale.wordpress.com/238/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=238&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lalitkale.wordpress.com/2009/09/14/programmers-bad-habits-ii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5355b57b551647570d0e31edc1ddb13b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">iNeo</media:title>
		</media:content>

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" medium="image" />

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.technet.com/photos/james/images/1765319/original.aspx" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" medium="image" />
	</item>
		<item>
		<title>Programmer&#8217;s Bad Habits</title>
		<link>http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/</link>
		<comments>http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 17:46:00 +0000</pubDate>
		<dc:creator>lalitkale</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[Learning Organization]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BadHabits]]></category>
		<category><![CDATA[Habits]]></category>
		<category><![CDATA[Programmer]]></category>

		<guid isPermaLink="false">http://lalitkale.wordpress.com/?p=234</guid>
		<description><![CDATA[“Good habits are formed; bad habits we fall into.” 
As a developers/programmers or architects, we also acquire habits/misconceptions in our work that consciously or unconsciously imposed or seems “quick and easy” solutions to our programming problems. I wanted to throw some light on such bad habits of us-developers in this post.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=234&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><em>“Good habits are formed; bad habits we fall into.”</em></strong></p>
<p>There are much literature that has been written on habits or misconceptions that gets acquired by human beings and how it become hard to leave, especially if those habits or concepts are considered as bad. Bad habits as we all know, seems easy and “quick” solutions that are acquired, mostly unconsciously. But good habits are hard to acquire but gives long lasting benefits to us.</p>
<p>As a developers/programmers or architects, we also acquire habits/misconceptions in our work that consciously or unconsciously imposed seems “quick and easy” solutions to our programming problems. I wanted to throw some light on such bad habits of us-developers…I had also gone through some of these bad habits but thankfully dropped them in my journey to become good dev. Some people may also term them as “anti patterns”, but I am not very comfortable about the word ‘anti-pattern” ;maybe I explain my reasons of terminology in some other post, but now let’s focus on these bad habits or misconceptions.</p>
<p><strong>1. Ignore the warnings, while compilation since they are not causing any problems.</strong> </p>
<p>I had seen this many times and I hate this. Some colleague of mine calls me up says that s/he couldn’t find the bug in their program and even after spending a couple of hours and tried all the things s/he can do… </p>
<p>First thing I would try is, I rebuild codebase and see if they had any compilation errors or warnings…and here we go..many warnings yelling for attention!! When questioned about the warnings, the usual answer I hear is “oh! They are not causing any problem so we just ignored them”&#8230;and when I see the warnings..Most of the unfound reasons of the bugs are lying in warnings that are in front of the programmers but they can’t see it. </p>
<p>I am not suggesting that you convert all those warning messages into error messages, but warnings are generally-the sign of future or runtime error places and signaling towards inefficiencies in code ;so treat them like errors and work on those.</p>
<p><strong>2. If code is compiling, it is working code.</strong></p>
<p>If you give some junior any requirement and say them that “ok, you need to code this feature/use case etc.” and just watch them. They just start writing the code at the blink of the eye and eager to show their worthiness. But the unfortunate part is next, and that is when they say I am done with the feature/s after their code is getting compiled. Hey Guys! Wake up… writing a compiling code is just a first step and hell…you are not done…Your code has not even passed those unit tests and how you dare to say that your are done.</p>
<p><strong>3. Code once written and running should never be touched.</strong></p>
<p>I generally deal with legacy not in C/C++ terms but have reengineered systems those are in VB 6, .NET 1.1, and likes. </p>
<p>In my opinion, legacy should be termed as “system with inefficiencies even it’s written with latest and greatest likes of .Net 3.5.” Unfortunately that is not the de-facto definition. </p>
<p>Most of the developers and even sometimes project managers have this nausea that if the code has written and that is running that should never be touched. </p>
<p>They say, hey! That is running and as per specifications, why you want to change it or make it better [they see as, this idiot is fooling us by wasting hours on thing that is already done!!] What they miss out is; it is like rusting of the iron. If the code can be improved even a bit by any means, it should be done. It is like you see a piece of rusting iron in your vehicle and still you do not do anything and run your vehicle until any accident occurs.</p>
<p>Damn, that kind of code can carry any characteristic like rigid to requirement changes , fragile like showing strange behavior like fixing bug in one part of code throws the strange error in some other part of the code which is not even related with first. So, the point here is ,we need to remove the inefficiencies. </p>
<p><strong>4. New features can only be floated out by writing tons of new code. </strong></p>
<p>This is really hard to realize that we had picked up such misconception and even harder to come out of this!! </p>
<p>For example, during one re-engineering project, I realized that our architecture is giving ability to product that the client can sell different modules/subsystems to the end users as on need basis and we communicated this to product owner and he liked that idea and which in turn given the product the new revenue stream.We have delivered a feature that is making a strong business sense for product owner without adding extra code!!</p>
<p>All this becomes possible not because we have added some more code for such business feature but cleverly re-architecting the system. </p>
<p>Oh! This post is somewhat getting bigger,I am sorry to break the continuum but just like ‘short methods’ is a good idiom to follow in code, I am keeping this post small and write it in chunks as a true agile developer <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Till then Happy Thinking!</p>
<p>Hope to see you next time…</p>
<p>&#160;</p>
<p> <span class="sbmLink"><br />
<table cellspacing="1" cellpadding="1">
<tbody>
<tr>
<td class="sbmText">Share this post : </td>
<td><a title="Post it to MSDN!" href="http://social.msdn.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;ttl=Programmer's Bad Habits" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" /></a></td>
<td><a title="Post it to Technet!" href="http://social.technet.microsoft.com/en-us/action/create/s/E/?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;ttl=Programmer's Bad Habits" target="_blank"><img border="0" src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" /></a></td>
<td><a title="Post it to blogmemes" href="http://www.blogmemes.net/post.php?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" /></a></td>
<td><a title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" /></a></td>
<td><a title="Post it to digg" href="http://digg.com/submit?phase=2&amp;url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" /></a></td>
<td><a title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" /></a></td>
<td><a title="Post it to Facebook" href="http://www.facebook.com/sharer.php?u=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;t=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.technet.com/photos/james/images/1765319/original.aspx" /></a></td>
<td><a title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;mkt=en-us&amp;url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" /></a></td>
<td><a title="Post it to reddit!" href="http://reddit.com/submit?url=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" /></a></td>
<td><a title="Post it to technorati!" href="http://technorati.com/faves/?add=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;title=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" /></a></td>
<td><a title="Post it to yahoo!" href="http://myweb.yahoo.com/myresults/bookmarklet?u=http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/&amp;t=Programmer's Bad Habits" target="_blank"><img border="0" src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" /></a></td>
</tr>
</tbody>
</table>
<p> </span></p>
<br />Posted in code, Learning Organization, Technology Tagged: BadHabits, code, Habits, Learning Organization, Programmer <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lalitkale.wordpress.com/234/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lalitkale.wordpress.com/234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lalitkale.wordpress.com/234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lalitkale.wordpress.com&amp;blog=571310&amp;post=234&amp;subd=lalitkale&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lalitkale.wordpress.com/2009/09/06/programmers-bad-habits/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5355b57b551647570d0e31edc1ddb13b?s=96&#38;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">iNeo</media:title>
		</media:content>

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" medium="image" />

		<media:content url="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" medium="image" />

		<media:content url="http://blogs.technet.com/photos/james/images/1765319/original.aspx" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" medium="image" />

		<media:content url="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" medium="image" />
	</item>
	</channel>
</rss>
