<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Is it always a software problem?</title>
	<atom:link href="http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/</link>
	<description>Shedding Light on the Hidden World of Embedded Systems</description>
	<lastBuildDate>Mon, 28 Jul 2014 16:18:37 -0400</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: V.P. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-4133</link>
		<dc:creator>V.P. @ LI</dc:creator>
		<pubDate>Thu, 28 Oct 2010 23:01:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-4133</guid>
		<description>@F. &amp; S.. Fully agree w/ F. &amp; S., but... Yes, I actually was talking from perspective of those who builds silicon today and it&#039;s not 1990, correct, we have 100s of millions of transistors today to put on a die, and when it is out of wafer you do everything (reasonable of course) not to have another wafer coming out. That&#039;s very right thing to do at that scale. If you are at luxury of building FPGA design, then it&#039;s a different story. (Indeed, there are still nuances due to imperfection of the system and FPGA compilers when &#039;practically&#039; no change may render unexpected results and so, depending on the stage of your design and how close you are to production, amount of QA passed the decision needs to be reasonable and appropriate again, sometimes sw change just safer, sometimes hw change is OK to try). I think there is no general remedy, every case is different. I am just trying to make a point that &quot;sw problem&quot; not always literally means that but it could be the most appropriate solution to the problem at certain case (I never take it as offensive in any way, or I just got used to it in the culture of silicon building company...). BTW, for future designs I have no problem to request to put a few extra gates or else I would have to change sw (to support inverted signal etc. or change control distribution in better unified form to be able better abstract it&#039;s support in sw to be compatible for longer term and for more future designs, as an example) and I have no problem getting it done in hw even though it can be done w/ sw change but -why- to change sw if there is opportunity to &quot;fix&quot; the originally intended hw design to be better backward compatible w/ existed sw at the advantage of using already validated sw (or parts of it) on it -- Thanks!</description>
		<content:encoded><![CDATA[<p>@F. &amp; S.. Fully agree w/ F. &amp; S., but&#8230; Yes, I actually was talking from perspective of those who builds silicon today and it&#8217;s not 1990, correct, we have 100s of millions of transistors today to put on a die, and when it is out of wafer you do everything (reasonable of course) not to have another wafer coming out. That&#8217;s very right thing to do at that scale. If you are at luxury of building FPGA design, then it&#8217;s a different story. (Indeed, there are still nuances due to imperfection of the system and FPGA compilers when &#8216;practically&#8217; no change may render unexpected results and so, depending on the stage of your design and how close you are to production, amount of QA passed the decision needs to be reasonable and appropriate again, sometimes sw change just safer, sometimes hw change is OK to try). I think there is no general remedy, every case is different. I am just trying to make a point that &#8220;sw problem&#8221; not always literally means that but it could be the most appropriate solution to the problem at certain case (I never take it as offensive in any way, or I just got used to it in the culture of silicon building company&#8230;). BTW, for future designs I have no problem to request to put a few extra gates or else I would have to change sw (to support inverted signal etc. or change control distribution in better unified form to be able better abstract it&#8217;s support in sw to be compatible for longer term and for more future designs, as an example) and I have no problem getting it done in hw even though it can be done w/ sw change but -why- to change sw if there is opportunity to &#8220;fix&#8221; the originally intended hw design to be better backward compatible w/ existed sw at the advantage of using already validated sw (or parts of it) on it &#8212; Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SdR @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-4132</link>
		<dc:creator>SdR @ LI</dc:creator>
		<pubDate>Thu, 28 Oct 2010 23:00:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-4132</guid>
		<description>I think F. has hit part of it on the head:
&quot;Another thing that happens is most firms have a software defect tracking process that is more or less tied into the S/W release process but because of the historical context they do not have a similar capability on the H/W side or a way to properly assign problems in the first place.&quot;

Many places have a heavy process for hardware changes. ECN paperwork and such for even little changes during development and lack development bug tracking. SW bugs are usually tracked quickly and efficently using software like Bugzilla and can be &quot;fixed&quot; much easier from this standpoint.

I advocate using a bug tracking system, like Bugzilla, for ALL defect tracking, Software, Hardware, Documentation, Process, and so on. Setup categories for each of these with owners in the appropriate department. Separate it by product, and always include some general &quot;products&quot; that aren&#039;t products like &quot;Process&quot;, &quot;IT&quot; or &quot;Engineering Server&quot;, or &quot;Company&quot;. And that way you can track everything.

A bug would get entered on a product. An initial category can be set by the reporter (for example say it&#039;s a hardware problem and it&#039;s an actual obvious hardware issue). And as comments and discussion accumulates, perhaps it is decided that the best fix is in a different area. For our example, perhaps we decide it&#039;s best (easier/cheaper whatever, just think engineering trade-offs) to fix it in software. Change the category to software and fix it.

Make it easy to fix and switch catagories of problem and it&#039;s no longer &quot;that&#039;s a software problem&quot;, it becomes &quot;that&#039;s a problem, lets figure out the best engineering decision to fix it.&quot;

- S.</description>
		<content:encoded><![CDATA[<p>I think F. has hit part of it on the head:<br />
&#8220;Another thing that happens is most firms have a software defect tracking process that is more or less tied into the S/W release process but because of the historical context they do not have a similar capability on the H/W side or a way to properly assign problems in the first place.&#8221;</p>
<p>Many places have a heavy process for hardware changes. ECN paperwork and such for even little changes during development and lack development bug tracking. SW bugs are usually tracked quickly and efficently using software like Bugzilla and can be &#8220;fixed&#8221; much easier from this standpoint.</p>
<p>I advocate using a bug tracking system, like Bugzilla, for ALL defect tracking, Software, Hardware, Documentation, Process, and so on. Setup categories for each of these with owners in the appropriate department. Separate it by product, and always include some general &#8220;products&#8221; that aren&#8217;t products like &#8220;Process&#8221;, &#8220;IT&#8221; or &#8220;Engineering Server&#8221;, or &#8220;Company&#8221;. And that way you can track everything.</p>
<p>A bug would get entered on a product. An initial category can be set by the reporter (for example say it&#8217;s a hardware problem and it&#8217;s an actual obvious hardware issue). And as comments and discussion accumulates, perhaps it is decided that the best fix is in a different area. For our example, perhaps we decide it&#8217;s best (easier/cheaper whatever, just think engineering trade-offs) to fix it in software. Change the category to software and fix it.</p>
<p>Make it easy to fix and switch catagories of problem and it&#8217;s no longer &#8220;that&#8217;s a software problem&#8221;, it becomes &#8220;that&#8217;s a problem, lets figure out the best engineering decision to fix it.&#8221;</p>
<p>- S.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: F.G. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-4131</link>
		<dc:creator>F.G. @ LI</dc:creator>
		<pubDate>Thu, 28 Oct 2010 22:59:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-4131</guid>
		<description>@V. In the 1990&#039;s it used to mean silicon re-spin. How many companies are still designing their own ASICS or Silicon? At least for pure digital applications aren&#039;t FPGAs the rule rather than the exception? Even for analog designs the analog sections are becoming smaller and pushed out to the periphery of the design. Technological trends like FPGA cores with embedded processors have turned line of S/W H/W demarcation into blurry gray area.

Expediency is fine when its actually expedient! These decisions that were rooted in sound business logic over time become calcified into organizational traditions. It becomes its a S/W problem because the H/W (who messed up the first design) is too busy designing the next generation design to address it in H/W so we&#039;ll just do a quick S/W hack and another and another 

Another thing that happens is most firms have a software defect tracking process that is more or less tied into the S/W release process but because of the historical context they do not have a similar capability on the H/W side or a way to properly assign problems in the first place. In some cases the most efficient solution might be a combination of S/W and H/W changes but this is unlikely to be expedient. 

I think the underlying problem that this thread exposes is the siloed organizational structure that dominates most engineering design teams. It used to make sense because of the wide chasm in tools and skill sets. But as time to market become more and more critical and the technology and techniques cross pollinate this structure makes less and less sense. What you really want are collocated teams of H/W and S/W engineers who have some cross training.This would allow both sides to have some appreciation for the difficulties of &quot;driving a screw with a hammer&quot; so to speak.</description>
		<content:encoded><![CDATA[<p>@V. In the 1990&#8242;s it used to mean silicon re-spin. How many companies are still designing their own ASICS or Silicon? At least for pure digital applications aren&#8217;t FPGAs the rule rather than the exception? Even for analog designs the analog sections are becoming smaller and pushed out to the periphery of the design. Technological trends like FPGA cores with embedded processors have turned line of S/W H/W demarcation into blurry gray area.</p>
<p>Expediency is fine when its actually expedient! These decisions that were rooted in sound business logic over time become calcified into organizational traditions. It becomes its a S/W problem because the H/W (who messed up the first design) is too busy designing the next generation design to address it in H/W so we&#8217;ll just do a quick S/W hack and another and another </p>
<p>Another thing that happens is most firms have a software defect tracking process that is more or less tied into the S/W release process but because of the historical context they do not have a similar capability on the H/W side or a way to properly assign problems in the first place. In some cases the most efficient solution might be a combination of S/W and H/W changes but this is unlikely to be expedient. </p>
<p>I think the underlying problem that this thread exposes is the siloed organizational structure that dominates most engineering design teams. It used to make sense because of the wide chasm in tools and skill sets. But as time to market become more and more critical and the technology and techniques cross pollinate this structure makes less and less sense. What you really want are collocated teams of H/W and S/W engineers who have some cross training.This would allow both sides to have some appreciation for the difficulties of &#8220;driving a screw with a hammer&#8221; so to speak.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: R.A. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-4130</link>
		<dc:creator>R.A. @ LI</dc:creator>
		<pubDate>Thu, 28 Oct 2010 22:59:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-4130</guid>
		<description>V. P. said: &quot;...how the problem could be resolved in most efficient way...&quot;

I think that what is most often really meant when this statement is made (in the context of resolving a problem) is:

&quot;how can the problem be resolved in the most EXPEDIENT way&quot;

Expediency != Efficiency.</description>
		<content:encoded><![CDATA[<p>V. P. said: &#8220;&#8230;how the problem could be resolved in most efficient way&#8230;&#8221;</p>
<p>I think that what is most often really meant when this statement is made (in the context of resolving a problem) is:</p>
<p>&#8220;how can the problem be resolved in the most EXPEDIENT way&#8221;</p>
<p>Expediency != Efficiency.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: V.P. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-4129</link>
		<dc:creator>V.P. @ LI</dc:creator>
		<pubDate>Thu, 28 Oct 2010 22:56:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-4129</guid>
		<description>That&#039;s correct observation but from business perspective it&#039;s fine. The &quot;sw problem&quot; does not necessary point to mistake a sw engineer made (or a bad sw engineering execution) but it&#039;s a practical statement how the problem could be resolved in most efficient way. You don&#039;t want to hear &quot;it&#039;s hw problem&quot;, really, because that means a silicon re-spin, board re-design, that&#039;s… not a good news.</description>
		<content:encoded><![CDATA[<p>That&#8217;s correct observation but from business perspective it&#8217;s fine. The &#8220;sw problem&#8221; does not necessary point to mistake a sw engineer made (or a bad sw engineering execution) but it&#8217;s a practical statement how the problem could be resolved in most efficient way. You don&#8217;t want to hear &#8220;it&#8217;s hw problem&#8221;, really, because that means a silicon re-spin, board re-design, that&#8217;s… not a good news.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: B.C. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-3795</link>
		<dc:creator>B.C. @ LI</dc:creator>
		<pubDate>Sat, 23 Oct 2010 03:04:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-3795</guid>
		<description>I really like Frank&#039;s comments regarding FPGAs. It&#039;s been years since I have created any FPGA code. I really liked working with them. I remember writing more test code than implementation code to check my designs. FPGAs do have one advantage of having better simulation tools for design verification.</description>
		<content:encoded><![CDATA[<p>I really like Frank&#8217;s comments regarding FPGAs. It&#8217;s been years since I have created any FPGA code. I really liked working with them. I remember writing more test code than implementation code to check my designs. FPGAs do have one advantage of having better simulation tools for design verification.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: F.G. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-3791</link>
		<dc:creator>F.G. @ LI</dc:creator>
		<pubDate>Sat, 23 Oct 2010 02:57:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-3791</guid>
		<description>I&#039;d add one more thing since no one else brought it up. The idea that it&#039;s cheaper to fix in software is outmoded by the ubiqious use of FPGA in modern hardware design. FPGA turnaround is very similiar in cost of time and effort to a new software build. So this ought to push the balance back to where Rennie wants it focused on root cause. Unfortunately due to organizational silos or just palin laziness it some times takes a while for behaviour to catch up with economic reality.</description>
		<content:encoded><![CDATA[<p>I&#8217;d add one more thing since no one else brought it up. The idea that it&#8217;s cheaper to fix in software is outmoded by the ubiqious use of FPGA in modern hardware design. FPGA turnaround is very similiar in cost of time and effort to a new software build. So this ought to push the balance back to where Rennie wants it focused on root cause. Unfortunately due to organizational silos or just palin laziness it some times takes a while for behaviour to catch up with economic reality.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: A.N. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-3790</link>
		<dc:creator>A.N. @ LI</dc:creator>
		<pubDate>Sat, 23 Oct 2010 02:57:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-3790</guid>
		<description>I honestly think that the person managing the project needs to have a good understanding of where to fix the problem. Issues can be fixed in hardware and in software but if the decision is not taken correctly it can cost the project a lot. In embedded systems the mere fact that a hardware engineer should not understand or write software is unacceptable (That&#039;s one of the reasons I never let our Engineers be Embedded Hardware Engineers or Embedded Software Engineers - They are Embedded Systems Engineers). The decision of whether something has to be done or fixed in software is the time when a real Embedded Engineer is needed who understands both aspects thoroughly. That&#039;s what makes an Embedded Systems Engineer. My two cents !</description>
		<content:encoded><![CDATA[<p>I honestly think that the person managing the project needs to have a good understanding of where to fix the problem. Issues can be fixed in hardware and in software but if the decision is not taken correctly it can cost the project a lot. In embedded systems the mere fact that a hardware engineer should not understand or write software is unacceptable (That&#8217;s one of the reasons I never let our Engineers be Embedded Hardware Engineers or Embedded Software Engineers &#8211; They are Embedded Systems Engineers). The decision of whether something has to be done or fixed in software is the time when a real Embedded Engineer is needed who understands both aspects thoroughly. That&#8217;s what makes an Embedded Systems Engineer. My two cents !</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: R.A. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-3789</link>
		<dc:creator>R.A. @ LI</dc:creator>
		<pubDate>Sat, 23 Oct 2010 02:57:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-3789</guid>
		<description>B. Z. said: &quot;In embedded systems, the SW and HW designers should be much closer and communicating constantly because there are many tradeoffs that can avoid dumping all the complexity on one or the other. In smaller designs, the SW and HW designers are the same person.&quot;

This is precisely why I have tried to focus the discussion more clearly on the concept that what people mean when they say they are &quot;fixing the problem in software&quot; is actually: &quot;masking a lower level problem at a higher level&quot;.

As you say, there really isn&#039;t a clear line between hardware and software, and certainly there must be a high degree of cooperation between developers at all levels/layers throughout a system.

I think everyone agrees that fixing the root cause is the only correct solution. I maintain that if a full economic analysis is done, that it will always be more cost effective to fix the root cause (in the long term). 

While Sam is certainly correct in his assertion that there are times when it is necessary to bear the extra costs associated with the higher level hack, in order to (for example) meet a market window; this doesn&#039;t alter the fact that it will always be more costly to mask the symptoms, than it would be to fix the root cause (in the given example, it is simply a cost that must be borne in order to maintain the products market viability).</description>
		<content:encoded><![CDATA[<p>B. Z. said: &#8220;In embedded systems, the SW and HW designers should be much closer and communicating constantly because there are many tradeoffs that can avoid dumping all the complexity on one or the other. In smaller designs, the SW and HW designers are the same person.&#8221;</p>
<p>This is precisely why I have tried to focus the discussion more clearly on the concept that what people mean when they say they are &#8220;fixing the problem in software&#8221; is actually: &#8220;masking a lower level problem at a higher level&#8221;.</p>
<p>As you say, there really isn&#8217;t a clear line between hardware and software, and certainly there must be a high degree of cooperation between developers at all levels/layers throughout a system.</p>
<p>I think everyone agrees that fixing the root cause is the only correct solution. I maintain that if a full economic analysis is done, that it will always be more cost effective to fix the root cause (in the long term). </p>
<p>While Sam is certainly correct in his assertion that there are times when it is necessary to bear the extra costs associated with the higher level hack, in order to (for example) meet a market window; this doesn&#8217;t alter the fact that it will always be more costly to mask the symptoms, than it would be to fix the root cause (in the given example, it is simply a cost that must be borne in order to maintain the products market viability).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: B.Z. @ LI</title>
		<link>http://www.embeddedinsights.com/channels/2010/10/20/is-it-always-a-software-problem/#comment-3767</link>
		<dc:creator>B.Z. @ LI</dc:creator>
		<pubDate>Fri, 22 Oct 2010 04:20:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.embeddedinsights.com/channels/?p=346#comment-3767</guid>
		<description>It is often cheaper to fix a hardware problem in software, but as the embedded system grows in size and complexity, you may find that trying to fix it with software either makes the overall system unwieldy, expensive to maintain, or it just won &#039;t work properly, popping up a new bug in another form. It&#039;s great to check if SW can fix it without scrambling the system design, but no, it is not always a SW problem.

In embedded systems, the SW and HW designers should be much closer and communicating constantly because there are many tradeoffs that can avoid dumping all the complexity on one or the other. In smaller designs, the SW and HW designers are the same person.</description>
		<content:encoded><![CDATA[<p>It is often cheaper to fix a hardware problem in software, but as the embedded system grows in size and complexity, you may find that trying to fix it with software either makes the overall system unwieldy, expensive to maintain, or it just won &#8216;t work properly, popping up a new bug in another form. It&#8217;s great to check if SW can fix it without scrambling the system design, but no, it is not always a SW problem.</p>
<p>In embedded systems, the SW and HW designers should be much closer and communicating constantly because there are many tradeoffs that can avoid dumping all the complexity on one or the other. In smaller designs, the SW and HW designers are the same person.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
