<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx</link><description>Fixing bugs is hard. For the purposes of this posting, I’m talking about those really “crisp” bugs -- those flaws which are entirely due to a failure on the developer’s part to correctly implement some mechanistic calculation or ensure some postcondition</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9678345</link><pubDate>Mon, 01 Jun 2009 18:37:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9678345</guid><dc:creator>jcoehoorn</dc:creator><description>&lt;P&gt;Looks like this has been on your mind a lot recently: it's basically a longer version of something I saw you write on StackOverflow recently:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://stackoverflow.com/questions/921180/c-round-up" target=_new rel=nofollow&gt;http://stackoverflow.com/questions/921180/c-round-up&lt;/A&gt;&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Indeed, that was the inspiration. -- Eric&lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9679029</link><pubDate>Mon, 01 Jun 2009 20:45:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9679029</guid><dc:creator>Jonathan</dc:creator><description>&lt;P&gt;Of course, you are still using cases. It's just that by focusing on one VT_DATE at a time to translate it into your sensible format, you only have to deal with 2 cases, rather than the many cases that come from the combined properties of 2 VT_DATEs, apparently so many they have not been successfully enumerated.&lt;/P&gt;
&lt;P&gt;But why were you using the horrible VT_DATE format in the first place?&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;VBScript uses that format to be compatible with VB. VB uses that format to be compatible with OLE Automation. OLE Automation uses that format to be compatible with Excel. Excel uses that format to be compatible with Lotus 1-2-3. With hindsight, the right thing to do would have been to say "Lotus chose a lousy way to represent dates, let's write a translation tool that turns their goofy date format into something sensible and industry-standard". But we did not do so when we had the chance and we're stuck with it now. -- Eric (PS: As a historical note, VB and OLEAUT were owned by the same team, so it is perhaps not quite fair to say that VB does it that way "because of OLEAUT". They both evolved that behaviour at the same time.) &lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9679844</link><pubDate>Mon, 01 Jun 2009 21:25:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9679844</guid><dc:creator>h t</dc:creator><description>&lt;p&gt;That's amazing that the Lotus bug dictated the new Day One, unbelievable! I just read about a 1000 line Switch block the other day. So the case by case approach is very much alive and cultivated.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9681154</link><pubDate>Mon, 01 Jun 2009 22:45:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9681154</guid><dc:creator>DRBlaise</dc:creator><description>&lt;P&gt;Why even have the unnecessary (vtdate &amp;gt;= 0.0) check when everything can fall into 1 case:&lt;/P&gt;
&lt;P&gt;return DatePart(vtdate) + TimePart(vtdate);&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Good point; my way is a potentially premature optimization. I'll fix it. Though in fact, given that probably 99.99% of dates we see are positive, and given how tight the rest of the code was already, it was actually probably a reasonable optimization to take the early out. I don't recall the details; this was 13 years ago after all. - Eric&lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9685012</link><pubDate>Tue, 02 Jun 2009 13:48:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9685012</guid><dc:creator>Grant</dc:creator><description>&lt;p&gt;The Lotus bit reminds me of this story: &lt;a rel="nofollow" target="_new" href="http://www.astrodigital.org/space/stshorse.html"&gt;http://www.astrodigital.org/space/stshorse.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Finding a way to replace useful but flawed code seems to be one of Microsoft's greatest challenges.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9688478</link><pubDate>Wed, 03 Jun 2009 04:05:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9688478</guid><dc:creator>configurator</dc:creator><description>&lt;P&gt;So, do these candidates that do *exactly the same as your smart coworkers* fail immediately or do they have a chance?&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;When I specifically tell the candidate "this problem is difficult to solve by cases, consider transforming the data into a better format for arithmetic", and they keep on trying to solve it by cases, no hire. When I write a bunch of interesting test cases on the board and they write me code that does not pass two of the four test cases, and they tell me it is correct, no hire. Heck, I've had candidates who were unable to write the code that computes the absolute value of the difference between two doubles. Those people will not be successful on a compiler team. No hire. -- Eric&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9689212</link><pubDate>Wed, 03 Jun 2009 07:30:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9689212</guid><dc:creator>Faraz</dc:creator><description>&lt;P&gt;"we just found out that the product name sounds like a rude word in Urdu"&lt;/P&gt;
&lt;P&gt;with Urdu as my native language, I would love to hear this story.&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Regrettably, there's no story there. I just made that up as characteristic of the sorts of geopolitical issues we sometimes run into. Usually we don't have too much difficulty with geopolitical issues on the programming language tools teams, but anyone who, say, displays a map of the world as part of their user interface is required to ensure that the map is carefully designed to not implicitly "take sides" in geopolitical disputes. I'm sure you can think of examples. -- Eric &lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9690063</link><pubDate>Wed, 03 Jun 2009 11:10:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9690063</guid><dc:creator>Denis</dc:creator><description>&lt;p&gt;&amp;quot;...immediately they’d write down code for another special case, rather than stopping to think...&amp;quot;&lt;/p&gt;
&lt;p&gt;...they are just trying to SERVE!!! How many times have we all been told that SOFTWARE DEVELOPMENT IS A SERVICE INDUSTRY? :-) Some people just confuse &amp;quot;service&amp;quot; with &amp;quot;subservience&amp;quot; or -- worse -- &amp;quot;servility&amp;quot;. So, I've writtent some buggy code?! Sorry, Master! Right away, Master! Whatever you say, Master! Here is another &amp;quot;if-else,&amp;quot; Master...&lt;/p&gt;
&lt;p&gt;A sad state of affairs, I'd say... :-( &lt;/p&gt;
&lt;p&gt;@configurator: I'd probably ask them to 1)relax, 2)shape up a bit, and 3)try again, calmly. Then I'd decide whether they deserve a chance or not...&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9690463</link><pubDate>Wed, 03 Jun 2009 12:46:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9690463</guid><dc:creator>Stuart Dootson</dc:creator><description>&lt;p&gt;I'm sure I remember Code Complete containing a warning against the root cause of all these VT_DATE issues - combining two pieces of data into one data item. The VT_DATE format would be better formulated as a tuple or struct containing (days_offset, offset_in_day), but instead those two parts have been shoehorned into a single double, leading to the mistaken assumptions about how arithmetic works with a VT_DATE because its representation is a familiar type.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9690855</link><pubDate>Wed, 03 Jun 2009 14:01:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9690855</guid><dc:creator>Ben</dc:creator><description>&lt;P&gt;Off topic, but any news of Wes Dyer? Very quiet on his blog...&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Wes drops by the C# language design committee meeting every now and then but I haven't heard much from him either lately. He seemed to be very well when last I saw him though. -- Eric &lt;/P&gt;&lt;/DIV&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9691269</link><pubDate>Wed, 03 Jun 2009 16:49:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9691269</guid><dc:creator>Avi Harush</dc:creator><description>&lt;p&gt;Great post. I always thought that a large IF is 90% a result of a bad design.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9691596</link><pubDate>Wed, 03 Jun 2009 18:43:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9691596</guid><dc:creator>Steve Owens</dc:creator><description>&lt;p&gt;I really like this line:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; I ask myself &amp;quot;how was the person who wrote the buggy code fooled into thinking it was correct?&amp;quot;&lt;/p&gt;
&lt;p&gt;When you comes across things you wrote that are clearly not working right, especially when someone else is looking over your shoulder, it's not always easy to admit you goofed. &amp;nbsp;(OTOH, it does seem to be rather easy to point out that someone else goofed.)&lt;/p&gt;
&lt;p&gt;No matter who goofed, this is a good time to start with some assumptions: &amp;nbsp;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;- We are all smart people (at least somewhere on the upper end of that continuum)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;- We all really try to do the right thing (i.e. not deliberately mis-coding)&lt;/p&gt;
&lt;p&gt;The comment from @Denis points out how knee-jerk we become when encountering errant code. &amp;nbsp;When you step back from the quick fix and assume that someone reasonably intelligent was trying their best to do the right thing, you have to say &amp;quot;How did they (I) get fooled?&amp;quot;&lt;/p&gt;
&lt;p&gt;When you can stop and do this, you might find out something. &amp;nbsp;It could be a bad spec or the need to be compatible with some legacy feature. &amp;nbsp;Or, it could be they never stopped to analyze the underlying issue, like you are now doing.&lt;/p&gt;
&lt;p&gt;Either way, you'll be ahead of the game if you ask the question.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9691718</link><pubDate>Wed, 03 Jun 2009 19:21:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9691718</guid><dc:creator>TheCPUWizard</dc:creator><description>&lt;p&gt;Of course the Chevy Chase approach to Jane Curtain during Weekend Update on SNL (in the 1970's) is an alternative approach to dealing with peoples mistakes [You should hear some of the names I have called myself].&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9692097</link><pubDate>Wed, 03 Jun 2009 21:31:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9692097</guid><dc:creator>Pete Montgomery</dc:creator><description>&lt;p&gt;if (frob(x) &amp;gt; 0 &amp;amp;&amp;amp; blarg(y)) return x – y;&lt;/p&gt;
&lt;p&gt;else if (frob(x) &amp;lt; blarg(y) &amp;amp;&amp;amp; blah_blah(x) &amp;gt; 0 || blah_de_blah_blah_blah(x,y)) return frob(x) – x + y + 1;&lt;/p&gt;
&lt;p&gt;else if…&lt;/p&gt;
&lt;p&gt;Ha ha! So true.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9693224</link><pubDate>Thu, 04 Jun 2009 00:35:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9693224</guid><dc:creator>Stefan Wenig</dc:creator><description>&lt;P&gt;// negative dates like –2.75 mean “go back two days, then forward .75 days”&lt;/P&gt;
&lt;P&gt;Sweet. Did you ever consider making VT_DATE turing-complete?&lt;/P&gt;
&lt;DIV class=yellowbox&gt;
&lt;P&gt;Lol. That almost made me spit-take my Diet Dr. Pepper. -- Eric&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9698683</link><pubDate>Thu, 04 Jun 2009 10:42:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9698683</guid><dc:creator>bob</dc:creator><description>&lt;p&gt;There are bugs for which there are no fixes. &amp;nbsp;Accept it. &amp;nbsp;Software is just a flawed thought process made real. &amp;nbsp;But that doesnt mean all bugs can be fixed. &amp;nbsp;Because underneath the hood of that bug, there are 700 other bugs.&lt;/p&gt;
&lt;p&gt;Just try and stop whining about other coders. &amp;nbsp;Fact is software can never ever be bug free. Ever. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ever.&lt;/p&gt;
</description></item><item><title>Бажная психология</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9698785</link><pubDate>Thu, 04 Jun 2009 11:12:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9698785</guid><dc:creator>Блог Эрика Липперта (перевод)</dc:creator><description>&lt;p&gt;Исправлять баги трудно. В контексте этой статьи я говорю о достаточно &amp;#171;явных&amp;#187; багах – тех изъянах, которые&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9699140</link><pubDate>Thu, 04 Jun 2009 13:34:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9699140</guid><dc:creator>Joren</dc:creator><description>&lt;p&gt;@bob&lt;/p&gt;
&lt;p&gt;Most implementations of Hello World are pretty bug free. It's also perfectly possible to structure your code so that it's provably correct. Read some of Edsger Dijkstra's works if you wish to be convinced of that.&lt;/p&gt;
&lt;p&gt;I might be able to agree that sufficiently complex software is astronomically unlikely to be bug free &amp;nbsp;(for a sufficiently vague definition of 'sufficiently complex').&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9699698</link><pubDate>Thu, 04 Jun 2009 16:58:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9699698</guid><dc:creator>TheCPUWizard</dc:creator><description>&lt;p&gt;I have to disagree with Bob's comment of &amp;quot;There are bugs for which there are no fixes&amp;quot;.&lt;/p&gt;
&lt;p&gt;There is ALWAYS a fic os some type of for any Bug.&lt;/p&gt;
&lt;p&gt;As an example, (going back to the mid 1980's) there was one 4GL RDBMS company which provided a new release of their product. Certain functionallity which worked great in the previous version was now crippled. Their response &amp;quot;It is not a bug, it is a feature with a negative performance impact&amp;quot;.&lt;/p&gt;
&lt;p&gt;Thus the bug was fixed.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9699788</link><pubDate>Thu, 04 Jun 2009 18:02:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9699788</guid><dc:creator>Greg</dc:creator><description>&lt;p&gt;Essentially, code modification usually can be done to refactor existing code to be &amp;nbsp;simpler, better or more robust. &amp;nbsp;Also, improve the inline comments with notes about the cases handled by the code.&lt;/p&gt;
&lt;p&gt;Continual application of this slow 0.01% improvement will turn a large system from a mess into much less of a mess within a year or two. &amp;nbsp;Six Sigma.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9700148</link><pubDate>Thu, 04 Jun 2009 23:03:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9700148</guid><dc:creator>Henry Skoglund</dc:creator><description>&lt;p&gt;I remember a similar bug from the days of Visual C 4.1 (mid-90s):&lt;/p&gt;
&lt;p&gt;We were coding a healthcare system and old patients, born before 12/30/1899, got their happy birthday greetings etc. on the wrong day when we upgraded from VC 4.0 to VC 4.1. I think it was a datediff() flavored function that had the same bug as you mention VBScript had. It got fixed in VC 4.2.&lt;/p&gt;
&lt;p&gt;BTW, there are so many facets re time and dates and computers: I remember in the 80's when Microsoft acquired Lattice C and later released their own Microsoft C 5 and later version 6, great products. One of the time functions had a safeguard so that when run on a PC without a hardware clock, it would instead return a date from 1955. And I always wondered if that was Bill Gates birthday...&lt;/p&gt;
&lt;p&gt;Rgrds Henry&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9700541</link><pubDate>Fri, 05 Jun 2009 03:48:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9700541</guid><dc:creator>Denis</dc:creator><description>&lt;p&gt;@Steve Owens, I totally agree with your assumptions. What I was trying to point out (not very successfully, a bug to my queue :-) ) is that here we have a management problem that results in a dodgy code. Or a corporate culture problem, if you will.&lt;/p&gt;
&lt;p&gt;There are some developers who really are over-sensitive about their code and believe in a sort of Samurai code (as in &amp;quot;code of honour&amp;quot;) demanding that whoever let a bug slip should perform a harakiri. But most people are twitchy simply because they are worried that, if they are noticed to have stuffed up a number of times, they will be singled out for the next staff reduction, with all that implies.&lt;/p&gt;
&lt;p&gt;The remedy to that, I believe, is to promote a culture of fixing the problem rather than the blame: find out what's stuffed up and fix it. In light of that, the question you propose &amp;nbsp;-- &amp;quot;How did they (I) get fooled?&amp;quot; -- may be rephrased into &amp;quot;How did it get stuffed up?&amp;quot; WHO exactly goofed is less of an issue here, because &amp;nbsp;-- and this is an additional assumption to those you propose -- EVERYONE can, and DOES, get goofed, stuffs up, or whatever is your local dialect expression for it. :-)&lt;/p&gt;
&lt;p&gt;A goog team leader/manager should be able to drive home the idea that there is no shame in admitting a mistake and putting your back into fixing it; persisting in your erroneous ways is much, MUCH more pathetic, whether it is done out of misplaced pride, or for political (politi-corporate, I mean) reasons of never, ever, wanting to be seen as someone capable of making a mistake.&lt;/p&gt;
&lt;p&gt;And the way to achieve that is to lead by example, I recon...&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9702519</link><pubDate>Sat, 06 Jun 2009 07:20:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702519</guid><dc:creator>Gabe</dc:creator><description>&lt;p&gt;Grant, as interesting as the story is about how the standard railway gauge is derived from ancient Roman standards, it's purely made-up. &lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Standard_gauge"&gt;http://en.wikipedia.org/wiki/Standard_gauge&lt;/a&gt; says why: there were many gauges used in the old days of railroads. Since old railways (often used to deliver coal from mines) were horse-driven, it's not surprising that the gauges were mostly around 5 feet, about the width of two horses. Therefore it shouldn't be surprising that ancient Roman wheel ruts were also about the width of two horses. The similarities are only a coincidence.&lt;/p&gt;
&lt;p&gt;The current standard gauge only came about as a convergence of many different standards, not because of a direct lineage to Roman chariots.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9702638</link><pubDate>Sat, 06 Jun 2009 10:59:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702638</guid><dc:creator>Tanveer Badar</dc:creator><description>&lt;p&gt;Interesting read. I was going to ask the same question as Faraz asked. :)&lt;/p&gt;
</description></item><item><title>Community Convergence XLIX (IL)</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9718429</link><pubDate>Tue, 09 Jun 2009 23:47:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9718429</guid><dc:creator>Charlie Calvert's Community Blog</dc:creator><description>&lt;p&gt;Welcome to the 49th edition of Community Convergence. The big excitment of late has been the recent release&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9723338</link><pubDate>Wed, 10 Jun 2009 07:37:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9723338</guid><dc:creator>Jim Lyon</dc:creator><description>&lt;p&gt;My favorite maxim to apply in situations like these is that, by the time you're done, the code should look like the author knew what he was doing from the beginning.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9823833</link><pubDate>Wed, 08 Jul 2009 15:42:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9823833</guid><dc:creator>Rich Kuzsma</dc:creator><description>&lt;p&gt;Consider the product out there that depends on the original, buggy implementation. Your crisp, clean solution breaks backwards compatibility.&lt;/p&gt;
</description></item><item><title>re: Bug Psychology</title><link>http://blogs.msdn.com/ericlippert/archive/2009/06/01/bug-psychology.aspx#9890855</link><pubDate>Thu, 03 Sep 2009 15:05:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9890855</guid><dc:creator>argatxa</dc:creator><description>&lt;p&gt;@Denis. &amp;nbsp; when fixing bugs, it is very helpful to know who did it so you know the style of thinking of whoever do it. &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Trying to figure out why somebody was doing something on a certain way it's way more difficult if you don't have background info (like &amp;quot;this guy always follows the happy path, be way of uncheked previous errors&amp;quot;) &lt;/p&gt;
&lt;p&gt;The &amp;quot;How did he/she get fooled on this&amp;quot; is easier to answer then. &lt;/p&gt;
</description></item></channel></rss>