<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Marcus, <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Thanks for taking my question seriously.  I understood what I was talking about even less than I usually do. <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Let\u2019s say I was an evil genius and wanted to introduce evil code into a project on github.  What would happen?<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>N<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>Nicholas Thompson<o:p></o:p></p><p class=MsoNormal>Emeritus Professor of Ethology and Psychology<o:p></o:p></p><p class=MsoNormal>Clark University<o:p></o:p></p><p class=MsoNormal><a href="mailto:ThompNickSon2@gmail.com"><span style='color:#0563C1'>ThompNickSon2@gmail.com</span></a><o:p></o:p></p><p class=MsoNormal><a href="https://wordpress.clarku.edu/nthompson/"><span style='color:#0563C1'>https://wordpress.clarku.edu/nthompson/</span></a><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Friam &lt;friam-bounces@redfish.com&gt; <b>On Behalf Of </b>Marcus Daniels<br><b>Sent:</b> Thursday, May 7, 2020 11:05 AM<br><b>To:</b> The Friday Morning Applied Complexity Coffee Group &lt;Friam@redfish.com&gt;<br><b>Subject:</b> Re: [FRIAM] Meanwhile, back on the troll farms<o:p></o:p></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='font-size:12.0pt'>Nick writes:<o:p></o:p></span></p><p class=MsoNormal><b><span style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal><b><span style='font-size:12.0pt'>&lt; </span></b>What exactly IS the policing mechanism in open source.&nbsp; Darwinian? Reputational?&nbsp; Does this HAVE to provoke a crisis of confidence in the general public?&nbsp; Or could it be seen as a heroic thrown-together first step that is now being improved? &gt;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>They are whining about simple or absent unit tests as a litmus test for whether the code is reliable.&nbsp;&nbsp; It\u2019s like saying you don\u2019t dare drive your car if you didn\u2019t take out its alternator and test its voltage output last week.&nbsp;&nbsp; \u2018cause someone might have changed the alternator!&nbsp;&nbsp; Eventually there will be consequences if the alternator fails, like stalling or the battery dying.&nbsp; &nbsp;Same thing in a big simulation.&nbsp;&nbsp; All of the parts and pieces of a simulation are there for a reason and global things will start to change in noticeable ways if something is broken.&nbsp; &nbsp;I would say getting mechanisms working correctly is less difficult that choosing what mechanisms are appropriate in the first place.&nbsp;&nbsp; Usually in use of a simulation one has instrumentation available on almost everything, and there is a constant checking and double- checking even if those checks are not embodied in automated tests.&nbsp; Automated tests can even give a false sense of security, because they may not deal with the parameter ranges that happen in with the coupled system.&nbsp; If you would rather have a bunch of unit tests, or to have modelers using and stressing the code every day, you have the wrong priorities.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>My irritation is with the notion of unit tests as a prerequisite for code reliability.&nbsp; &nbsp;There are tighter ways to integrate assertions of code behavior with the code. &nbsp;&nbsp;The bandwagon obsession with unit tests is in some sense an obstacle even better practices.&nbsp;&nbsp; I wouldn\u2019t even call them trolls, because a troll has intention to rile people up.&nbsp; These folks are more like pompous ditto heads who feel the need to posture about the right way to do software engineering.&nbsp; &nbsp;People that love unit tests love not understanding the problem they are solving, and prefer to work in pieces.&nbsp;&nbsp; This take a is a little harsh, but in this context (advising COVID-19 policy) I don\u2019t find the behavior very helpful.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Marcus<o:p></o:p></p><div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></div></body></html>