<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: The importance &#8212; and challenges &#8212; of debugging</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/</link>
	<description>A SearchSoftwareQuality.com blog</description>
	<pubDate>Wed, 25 Nov 2009 06:06:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Dvlprem</title>
		<link>http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/#comment-25</link>
		<dc:creator>Dvlprem</dc:creator>
		<pubDate>Tue, 23 Jun 2009 08:31:34 +0000</pubDate>
		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/#comment-25</guid>
		<description>Veru Good Article, It's really useful for me.  I am doing a bit on research about 'Debugging' and i found also macrotesting www.macrotesting.com to be very good source for software testing.

Thanks for your article
Prem</description>
		<content:encoded><![CDATA[<p>Veru Good Article, It&#8217;s really useful for me.  I am doing a bit on research about &#8216;Debugging&#8217; and i found also macrotesting&nbsp;&lt;a href="http://www.macrotesting.com" title="http://www.macrotesting. " target="_blank"&gt;www.macrotesting.com&lt;/a&gt; to be very good source for software testing.</p>
<p>Thanks for your article<br />
Prem</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuomoks</title>
		<link>http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/#comment-7</link>
		<dc:creator>Tuomoks</dc:creator>
		<pubDate>Mon, 06 Oct 2008 17:33:03 +0000</pubDate>
		<guid isPermaLink="false">http://itknowledgeexchange.techtarget.com/software-quality/the-importance-and-challenges-of-debugging/#comment-7</guid>
		<description>Debugging is (too often) difficult. IMHO not so much because of language, systems, etc but the environment. Very seldom an application can be debugged in production and if done in production there are many problems - maybe the rest has to be kept running, 24x7 systems!, avoid crashing the whole system, maybe it was just one of case and can not be replicated, etc - an of course it is in middle of the busiest time but you are three time zones away on a vacation day!. Fun? Unfortunately more and more common today - definitely not anything to give some junior developer.

Seriously, I may be old-fashioned but debugging is and should be the last option, the systems should be built good enough diagnostics, tracking and recoverability to survive maybe 9 our of 10 problems and the problems fixed later. Not happening any more, is it lack of systems design skills or just bad management - I don't know but a little frustrating.

Languages and environments can make it easier or more difficult, often a lot. I belong to the group which thinks that the "managed" languages and systems make the debugging much more difficult - you just don't know where the "root cause" for the problem is! Is it really a problem or feature in language system - seen that too often especially when the system version has changed! 

Really makes my day when the language "specialists", etc who have no idea of the system itself make changes and then the whole system starts misbehaving! And they still argue that the code is correct?

Mostly today in multi-threaded, multi-cpu and multi-node, asynchronous systems where the timing, memory access, interface, formating, etc problems can multiply very fast. Most (all?) developers start "debugging" the code instead of analyzing what, where, why, how, when, etc the problems occurred? Change the code just to get two more problems later on (maybe much later!) and now the original problem is hidden - time to 4th, 5th level support, i.e. they walk away and leave it to someone else to fix their problem(s)! Maybe I just hate cleaning other peoples mess?

So - debugging can be difficult but it can be made easy by correct design. Of course there always will be bugs which need debugging, no system is perfect, environments change, etc but it is almost as most systems have been developed in debugger just to get one special case to work instead using debugger just to find real problems? Meaning - change the environment means going back to debugger!

Enough complaining the lack of design - maybe complain the debuggers? Using debugger in EXEC8/TSO maybe -71 where you could execute in source format (or show the assembler/both), change the code (values, registers, etc), repeat some execution, save the code back to source, comment it, record the results, let the application to continue as nothing would had changed, etc - not many such debugging systems today? Too often the debuggers are depend (very heavily) on the development environment which is either not available in production or totally changes the run environment - not any more same as production!</description>
		<content:encoded><![CDATA[<p>Debugging is (too often) difficult. IMHO not so much because of language, systems, etc but the environment. Very seldom an application can be debugged in production and if done in production there are many problems - maybe the rest has to be kept running, 24&#215;7 systems!, avoid crashing the whole system, maybe it was just one of case and can not be replicated, etc - an of course it is in middle of the busiest time but you are three time zones away on a vacation day!. Fun? Unfortunately more and more common today - definitely not anything to give some junior developer.</p>
<p>Seriously, I may be old-fashioned but debugging is and should be the last option, the systems should be built good enough diagnostics, tracking and recoverability to survive maybe 9 our of 10 problems and the problems fixed later. Not happening any more, is it lack of systems design skills or just bad management - I don&#8217;t know but a little frustrating.</p>
<p>Languages and environments can make it easier or more difficult, often a lot. I belong to the group which thinks that the &#8220;managed&#8221; languages and systems make the debugging much more difficult - you just don&#8217;t know where the &#8220;root cause&#8221; for the problem is! Is it really a problem or feature in language system - seen that too often especially when the system version has changed! </p>
<p>Really makes my day when the language &#8220;specialists&#8221;, etc who have no idea of the system itself make changes and then the whole system starts misbehaving! And they still argue that the code is correct?</p>
<p>Mostly today in multi-threaded, multi-cpu and multi-node, asynchronous systems where the timing, memory access, interface, formating, etc problems can multiply very fast. Most (all?) developers start &#8220;debugging&#8221; the code instead of analyzing what, where, why, how, when, etc the problems occurred? Change the code just to get two more problems later on (maybe much later!) and now the original problem is hidden - time to 4th, 5th level support, i.e. they walk away and leave it to someone else to fix their problem(s)! Maybe I just hate cleaning other peoples mess?</p>
<p>So - debugging can be difficult but it can be made easy by correct design. Of course there always will be bugs which need debugging, no system is perfect, environments change, etc but it is almost as most systems have been developed in debugger just to get one special case to work instead using debugger just to find real problems? Meaning - change the environment means going back to debugger!</p>
<p>Enough complaining the lack of design - maybe complain the debuggers? Using debugger in EXEC8/TSO maybe -71 where you could execute in source format (or show the assembler/both), change the code (values, registers, etc), repeat some execution, save the code back to source, comment it, record the results, let the application to continue as nothing would had changed, etc - not many such debugging systems today? Too often the debuggers are depend (very heavily) on the development environment which is either not available in production or totally changes the run environment - not any more same as production!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- dynamic -->