    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
     <channel>
        <title>ACCU  :: Tales from The Linker</title>
        <link>https://members.accu.org/index.php/articles/989</link>
        <description>Professionalism in Programming</description>
        <dc:language>en-us</dc:language> 
        <dc:creator>Administrator</dc:creator> 
        <admin:generatorAgent rdf:resource="http://www.xaraya.org" /> 
        <admin:errorReportsTo rdf:resource="mailto:webeditor@accu.org" />
       <sy:updatePeriod>hourly</sy:updatePeriod>
       <sy:updateFrequency>1</sy:updateFrequency>
       <docs>http://backend.userland.com/rss</docs>




<div class="xar-mod-head"><span class="xar-mod-title">CVu Journal Vol 12, #2 - Mar 2000</span></div>

<table border="0" cellpadding="1" cellspacing="0">
    <tbody>
    <tr>
        <td valign="top">
            Browse in :
       </td>
       <td valign="top">

                                            <a href="https://members.accu.org/index.php/articles/">All</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c76/">Journals</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c77/">CVu</a>

                     &gt;                         <a href="https://members.accu.org/index.php/articles/c127/">122</a>
<br />
</td>
   </tr>
   </tbody>
</table>




<div class="xar-error">
   <p>
 <strong>Note:</strong> when you create a new publication type,
the articles module will automatically use the templates
<em>user-display-[publicationtype].xt</em>
and <em>user-summary-[publicationtype].xt</em>.
If those templates do not exist when you try to preview or display a new article,
you'll get this warning :-)  Please place your own templates in themes/<em>yourtheme</em>/modules/articles . The templates will get the extension .xt there. </p>
</div>
<div class="xar-norm xar-standard-box-padding">
   <h1><strong>Title:</strong>&nbsp;Tales from The Linker</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 06 March 2000 13:15:36 +00:00 or Mon, 06 March 2000 13:15:36 +00:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e13" id="d0e13"></a>The
Prologue</h2>
</div>
<p>he Linker has come back from a short six month contract job in
California. Grape picking in the vineyards down by Hecker Pass. Due
to easily foreseen circumstances &quot;My Friend&quot; has moved from his
rich source of SW engineering horror stories. (In fact all three of
them have moved in the last six months). However due to an
anonymous story that has reached me via a &quot;friend of a friend&quot; The
Linker has another tale to tell.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e18" id="d0e18"></a>Is Ethics a
place near London?</h2>
</div>
<p>My friend may have synthesised his story from one or more
incidents at different times and places. On the other hand he may
not have&hellip;</p>
<p>My friend called me with a bit of an ethical problem. This
surprised me as, being a contractor he has the morals and ethics he
is paid to have. It turns out that he had taken a contract at a
rather well known Consultancy for six months. During that time he
was the in-house expert on a particular cross compiler bought in
for the project he worked on. He has now left but recently has been
called a couple of times by one of the permanent staff
&quot;Consultants&quot; there for some help and advice on a new project they
are doing using the cross compiler system. He is happy with this,
as he has been told he can charge for his time.</p>
<p>The Consultant called him and said: &quot;I have just decided to go
with an Yamagochi 6A micro-controller part on the design&quot;. My
friend was surprised he had no information on the part. So he
contacted the Yamagochi rep and asked for information. The Rep was
surprised this was the second enquiry within the hour for the same
very new part. &quot;How new?&quot; enquired my friend. He was told that
samples would (should) be available next month but he could have a
preliminary data sheet now. He discovered that the only other
enquiry had been from the Consultant. The Consultant had made the
decision to use this part in a new (safety critical) project in 20
minutes with a one-page preliminary data sheet of a part not yet in
production. Alarm bells started to ring somewhere far off.</p>
<p>A day or two later another phone call to My Friend from The
Consultant. &quot;Where's the include files for the Yamagochi 6A part?&quot;
My Friend patiently explained that the Yamagochi 6A came out next
month but the compiler was 3 years old. Good though the compiler
people were they were not psychic!</p>
<p>My Friend hit upon a solution. Take the include files from the
Yamagochi 5C and modify them! Simple, case closed. Then the bomb
shell hit (or rather a small barrage!). The Consultant said, &quot;How
do I do that?&quot;</p>
<p>My Friend (a bit non-plussed) said &quot;In a text editor.&quot; The reply
was &quot;Can you edit them like that? I did not know.&quot; Swiftly followed
by &quot;Where do I find the include files?&quot;</p>
<p>It turned out that the Consultant had never done any &quot;advanced&quot;
programming that required writing header files. He had no idea
where the header files came from. They were &quot;something to do with
the compiler&quot;. He had never written a program with more than one
file in it! Even on the smallest embedded system there is usually
more than one file.</p>
<p>My friend, somewhat shell-shocked, modified the include files
from the Yamagochi 5C to work with the new Yamagochi 6A
[preliminary spec] as they spoke and emailed them to the
Consultant. The 5C and 6A are very similar so the modifications
took less than 15 minutes. The differences were clearly set out in
the 6A [Preliminary] data sheet.</p>
<p>The problem arises that the software is part of an embedded
system that is safety critical and it is obvious that The
Consultant is out of his depth. He has never really written any C
programs much less anything safety critical and never on an
embedded platform. It is not clear if his boss at the consultancy
knows how good (or bad) The Consultant is. The other problem is
that My Friend knows the end user that the Consultancy is doing the
work for. It could end up controlling part of a chemical plant.</p>
<p>What should My Friend do? If he does nothing and the chemical
works goes bang people will get hurt. Who should he express his
concerns to? What if the Consultancy ignores his worries and let
the inexperienced Consultant continue. Should he express his
concerns to the End User?</p>
<p>Given the same Consultant will test the system there is no
guarantee that any proper testing will be done. The testing could
be as flawed as the system it is testing. This is without the
thought that the End User is paying for (what they think is) a
fully experienced embedded engineer. My Friend will monitor
accu-general for any helpful suggestions!</p>
<p>Given that My Friend classes all power stations, pharmaceutical,
chocolate, paint and food making plants as &quot;chemical plants&quot; along
with oil refineries just look over the fence when you are work
tomorrow and reconsider the item above.</p>
<p class="c2"><span class="remark">Editor's note:</span></p>
<p class="c2"><span class="remark">My response is that at the very
least the consultancy, the employer and the end user should be
notified. If 'Your Friend' lacks the courage to place his/her name
on the warning at least it should be sent anonymously.
Professionalism is not about protecting your fellow 'experts' from
their own incompetence. Personally, I would go further and intimate
in my warning that unless appropriate action is taken you will be
contacting your friends in the media. If we are to take a pride in
our work we should not consider tolerating professional
incompetence in areas of safety.</span></p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
