<?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: Dangerous Analogies</title>
	<atom:link href="http://usablesecurity.com/2005/05/11/dangerous-analogies/feed/" rel="self" type="application/rss+xml" />
	<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/</link>
	<description>Every system has a user.</description>
	<pubDate>Thu, 20 Nov 2008 23:01:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>By: Usable Security  &#187; Blog Archive   &#187; Microsoft&#8217;s Folly</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-124</link>
		<dc:creator>Usable Security  &#187; Blog Archive   &#187; Microsoft&#8217;s Folly</dc:creator>
		<pubDate>Mon, 18 Jul 2005 22:40:42 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-124</guid>
		<description>[...] entally, the explanation of this &#8220;Law&#8221; abuses the type of real-world analogy I recently described. 	There&#8217;s a nice analogy between running a program and eating  [...]</description>
		<content:encoded><![CDATA[<p>[...] entally, the explanation of this &#8220;Law&#8221; abuses the type of real-world analogy I recently described. 	There&#8217;s a nice analogy between running a program and eating  [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: amonynouse</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-75</link>
		<dc:creator>amonynouse</dc:creator>
		<pubDate>Fri, 01 Jul 2005 01:29:25 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-75</guid>
		<description>Argument by analogy is just like trying to hit a large trout with a spade. While it's underwater.</description>
		<content:encoded><![CDATA[<p>Argument by analogy is just like trying to hit a large trout with a spade. While it&#8217;s underwater.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Usable Security  &#187; Blog Archive   &#187; Zaptastic Author Misses the Point</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-53</link>
		<dc:creator>Usable Security  &#187; Blog Archive   &#187; Zaptastic Author Misses the Point</dc:creator>
		<pubDate>Thu, 19 May 2005 09:03:37 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-53</guid>
		<description>[...]  line, and sinker.  This is exactly the type of mistaken comparison I was talking about in recent entries. 	Viruses are dangerous when they enter your body because they have comp [...]</description>
		<content:encoded><![CDATA[<p>[...]  line, and sinker.  This is exactly the type of mistaken comparison I was talking about in recent entries. 	Viruses are dangerous when they enter your body because they have comp [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stu</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-52</link>
		<dc:creator>Stu</dc:creator>
		<pubDate>Wed, 18 May 2005 04:12:14 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-52</guid>
		<description>Your comparison between software and a building/bridge misses the mark. Youre comparing a base product (software) with a completed product (bridge). A more acurate comparison is between software and bricks. You use both which are mass produced and identical to create a unique result. The bridge is analogous to your personal computer with the programme installed on it - the person who set this up is responsible for ensuring that it doesn't break (ie: not the manufacturer). 
The company that made the bricks made no guarentee that the bridge won't fall down, they merely state that if used properly in a suitable environment then all should be fine. If an engineer built a bridge on sand or without enough support stands then the brick maker isn't at fault when it falls down.
The software in the box IS secure, its when you install it on a system which allows other (bad) people to access it and exploit weaknesses that it fails. This is expressly outside the control of the programmer.
You can argue till your blue in the face that software should be designed with this use in mind (the lowest denominator) but the response is "WHY?". As an informed user I personally suffer no spam, no viruses, no spyware or any of the other problems people complain about, so the system/software DOES work, only people don't use it properly.
If this is too hard for the average user then this means that you have to make it easier, not more secure - ie: create a brick that knows how a bridge should be built.</description>
		<content:encoded><![CDATA[<p>Your comparison between software and a building/bridge misses the mark. Youre comparing a base product (software) with a completed product (bridge). A more acurate comparison is between software and bricks. You use both which are mass produced and identical to create a unique result. The bridge is analogous to your personal computer with the programme installed on it - the person who set this up is responsible for ensuring that it doesn&#8217;t break (ie: not the manufacturer).<br />
The company that made the bricks made no guarentee that the bridge won&#8217;t fall down, they merely state that if used properly in a suitable environment then all should be fine. If an engineer built a bridge on sand or without enough support stands then the brick maker isn&#8217;t at fault when it falls down.<br />
The software in the box IS secure, its when you install it on a system which allows other (bad) people to access it and exploit weaknesses that it fails. This is expressly outside the control of the programmer.<br />
You can argue till your blue in the face that software should be designed with this use in mind (the lowest denominator) but the response is &#8220;WHY?&#8221;. As an informed user I personally suffer no spam, no viruses, no spyware or any of the other problems people complain about, so the system/software DOES work, only people don&#8217;t use it properly.<br />
If this is too hard for the average user then this means that you have to make it easier, not more secure - ie: create a brick that knows how a bridge should be built.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ping</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-44</link>
		<dc:creator>Ping</dc:creator>
		<pubDate>Sat, 14 May 2005 20:57:33 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-44</guid>
		<description>You and I are talking about different things.  I agree with you that there are certainly human expectations for how parts of a user interface behave.  But by "relationships" I didn't mean relationships in people's minds; I meant cause-and-effect relationships among the software components.  These don't exist unless you write the code to make them happen.</description>
		<content:encoded><![CDATA[<p>You and I are talking about different things.  I agree with you that there are certainly human expectations for how parts of a user interface behave.  But by &#8220;relationships&#8221; I didn&#8217;t mean relationships in people&#8217;s minds; I meant cause-and-effect relationships among the software components.  These don&#8217;t exist unless you write the code to make them happen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Hopwood</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-41</link>
		<dc:creator>David Hopwood</dc:creator>
		<pubDate>Sat, 14 May 2005 17:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-41</guid>
		<description>Why?</description>
		<content:encoded><![CDATA[<p>Why?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: George W. Bush</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-36</link>
		<dc:creator>George W. Bush</dc:creator>
		<pubDate>Fri, 13 May 2005 18:52:27 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-36</guid>
		<description>Maybe this blog should include some sort of login to at least kinda-sorta authenticate posts?</description>
		<content:encoded><![CDATA[<p>Maybe this blog should include some sort of login to at least kinda-sorta authenticate posts?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard M. Conlan</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-35</link>
		<dc:creator>Richard M. Conlan</dc:creator>
		<pubDate>Fri, 13 May 2005 18:51:23 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-35</guid>
		<description>"The huge difference is that objects in the real world come with existing relationships, but objects in the software world do not."

Not true. Objects in the software world might not come with existing PHYSICAL relationships, but they are surely saddled with psychological relationship. 

At a base level a button is there to be pushed and a slider there to be slid and an option group there to be...erm...optioned. At a slightly higher level there are expectations that, say, blue-colored text is probably a hyperlink (especially if underlined) and clicking it should open SOMETHING; a little disk icon should save whatever I am working on; a little printer should print; &#38;c.

But those are all really simple / low-level expectations. The bigger issue is that a good GUI will often mirror elements of the problem-domain, and inherently brings along some expectations. For instance, if I make an application that models a slot machine then there should probably be a pull handle, drums that spin, an area little coins come out, and so forth. Technically I could model a slow machine where you push a button, random symbols are just displayed, and a counter just tallies wins and losses...but by pulling in the analogy of the real slot machine I add a lot of inherent usability...but at the cost of bringing along certain OTHER expectations that I might not want to include.

The point of all this being that analogies, whatever their evils, tend to be very helpful in creating abstractions, and we have to take the good with the bad. So, we are forced to work within certain restrictions as well, even if the medium doesn't inherently include them.</description>
		<content:encoded><![CDATA[<p>&#8220;The huge difference is that objects in the real world come with existing relationships, but objects in the software world do not.&#8221;</p>
<p>Not true. Objects in the software world might not come with existing PHYSICAL relationships, but they are surely saddled with psychological relationship. </p>
<p>At a base level a button is there to be pushed and a slider there to be slid and an option group there to be&#8230;erm&#8230;optioned. At a slightly higher level there are expectations that, say, blue-colored text is probably a hyperlink (especially if underlined) and clicking it should open SOMETHING; a little disk icon should save whatever I am working on; a little printer should print; &amp;c.</p>
<p>But those are all really simple / low-level expectations. The bigger issue is that a good GUI will often mirror elements of the problem-domain, and inherently brings along some expectations. For instance, if I make an application that models a slot machine then there should probably be a pull handle, drums that spin, an area little coins come out, and so forth. Technically I could model a slow machine where you push a button, random symbols are just displayed, and a counter just tallies wins and losses&#8230;but by pulling in the analogy of the real slot machine I add a lot of inherent usability&#8230;but at the cost of bringing along certain OTHER expectations that I might not want to include.</p>
<p>The point of all this being that analogies, whatever their evils, tend to be very helpful in creating abstractions, and we have to take the good with the bad. So, we are forced to work within certain restrictions as well, even if the medium doesn&#8217;t inherently include them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nikita</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-31</link>
		<dc:creator>Nikita</dc:creator>
		<pubDate>Fri, 13 May 2005 04:46:47 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-31</guid>
		<description>It may be possible to hold programs to a higher standard of correctness, but the real question here is cost.  If you offered people to build one bridge you could be sure worked, or 10 bridges that would probably work 90% of the time, people would go for the one bridge.  Not the same with software, and with good reason: a browser that only crashes occasionally is much more useful to me than a bridge that only fails sometimes.  And I think lots of people made the choice to go with something that may not function perfectly, but has more features, or is available today rather than a year from today.  Enough of them in fact that not only did these low-assurance systems succeed, but the whole idea of making high-assurance systems has become very much of a niche field.

The adversarial model, which has always been a concern, but only recently a pressing one, has really turned this whole situation on its head.  There are few useful incremental   improvements in security.  A program with 90% fewer security holes is basically as bad.  I think that recently, people have started being more willing to pay the cost for making software more reliable and secure, but our whole process of creating software has a long way to go before that's really possible.</description>
		<content:encoded><![CDATA[<p>It may be possible to hold programs to a higher standard of correctness, but the real question here is cost.  If you offered people to build one bridge you could be sure worked, or 10 bridges that would probably work 90% of the time, people would go for the one bridge.  Not the same with software, and with good reason: a browser that only crashes occasionally is much more useful to me than a bridge that only fails sometimes.  And I think lots of people made the choice to go with something that may not function perfectly, but has more features, or is available today rather than a year from today.  Enough of them in fact that not only did these low-assurance systems succeed, but the whole idea of making high-assurance systems has become very much of a niche field.</p>
<p>The adversarial model, which has always been a concern, but only recently a pressing one, has really turned this whole situation on its head.  There are few useful incremental   improvements in security.  A program with 90% fewer security holes is basically as bad.  I think that recently, people have started being more willing to pay the cost for making software more reliable and secure, but our whole process of creating software has a long way to go before that&#8217;s really possible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://usablesecurity.com/2005/05/11/dangerous-analogies/#comment-28</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Wed, 11 May 2005 19:23:02 +0000</pubDate>
		<guid isPermaLink="false">http://usablesecurity.com/2005/05/11/misleading-analogies/#comment-28</guid>
		<description>I've thought about that too -- more about the relation or contrast with civil engineers, but the same issue of explanations and metaphors.  And always a bit confusing, *computers* actually fulfill all those engineering expectations pretty well, but the programs don't.  So how do we explain that?  Lots of people try with process, describing how programmers work differently than engineers, but that's not a very good justification or explanation; it doesn't point out the qualitative differences in the work produced.  I certainly don't fully understand the combination of math, bureacracy, and engineering that makes up a typical program, which makes it pretty darn hard to explain.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve thought about that too &#8212; more about the relation or contrast with civil engineers, but the same issue of explanations and metaphors.  And always a bit confusing, *computers* actually fulfill all those engineering expectations pretty well, but the programs don&#8217;t.  So how do we explain that?  Lots of people try with process, describing how programmers work differently than engineers, but that&#8217;s not a very good justification or explanation; it doesn&#8217;t point out the qualitative differences in the work produced.  I certainly don&#8217;t fully understand the combination of math, bureacracy, and engineering that makes up a typical program, which makes it pretty darn hard to explain.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
