<?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: Improved Error Dialog Box</title>
	<atom:link href="http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/</link>
	<description>Clay Barnes talks about HCI, the user experience, and whatever he's in the mood for.</description>
	<pubDate>Sat, 22 Nov 2008 01:45:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: Clay Barnes</title>
		<link>http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/#comment-1995</link>
		<dc:creator>Clay Barnes</dc:creator>
		<pubDate>Sat, 30 Aug 2008 14:19:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.hci-matters.com/blog/?p=45#comment-1995</guid>
		<description>@ichthyo:  I admit that in the post I severely minimized the concerns you raise.  However, I'm not convinced that errors are intrinsically the apocalyptic scenario we often let them become.  For example, my user-wiki-linked idea from my reply to Nathan Bell is one example of how limitations on a programmer's/team's time could be circumvented, so long as a minimum framework is initially established.  Perhaps my "solving the problem buttons" part of the bottom section isn't realistic for true errors, but user-contributed advice on recovery can be an excellent resource to replace that.

I think I will post a follow-up entry to this at some point to expand on the wiki/community/time-shifted refinement of error-dialogs and bug reporting.</description>
		<content:encoded><![CDATA[<p>@ichthyo:  I admit that in the post I severely minimized the concerns you raise.  However, I&#8217;m not convinced that errors are intrinsically the apocalyptic scenario we often let them become.  For example, my user-wiki-linked idea from my reply to Nathan Bell is one example of how limitations on a programmer&#8217;s/team&#8217;s time could be circumvented, so long as a minimum framework is initially established.  Perhaps my &#8220;solving the problem buttons&#8221; part of the bottom section isn&#8217;t realistic for true errors, but user-contributed advice on recovery can be an excellent resource to replace that.</p>
<p>I think I will post a follow-up entry to this at some point to expand on the wiki/community/time-shifted refinement of error-dialogs and bug reporting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Clay Barnes</title>
		<link>http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/#comment-1994</link>
		<dc:creator>Clay Barnes</dc:creator>
		<pubDate>Mon, 25 Aug 2008 23:25:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.hci-matters.com/blog/?p=45#comment-1994</guid>
		<description>@Nathan Bell:  I would say that an always-connected environment would be best leveraged by providing links to a wiki page whose URL is derived from the cause of the error.

At that point, users could report bugs (let's be honest, the traditional system for bug reporting is asking more than most users are willing to invest), and because they would also have many other user's observations, they needn't repeat the same data over and over---just add/clarify the new details they may have discovered.  Further, the developers could easily interject any hints, tips, patches, or tools pertaining to the problem that they have.

A lot of the content could be extracted from the box I sketched and put on the page, or as an alternative, special sub-sections of the wiki could be the *source* for the error text!  A strong community using some software could easily best nearly any pure programming team in explaining causes/effects/solutions to errors.</description>
		<content:encoded><![CDATA[<p>@Nathan Bell:  I would say that an always-connected environment would be best leveraged by providing links to a wiki page whose URL is derived from the cause of the error.</p>
<p>At that point, users could report bugs (let&#8217;s be honest, the traditional system for bug reporting is asking more than most users are willing to invest), and because they would also have many other user&#8217;s observations, they needn&#8217;t repeat the same data over and over&#8212;just add/clarify the new details they may have discovered.  Further, the developers could easily interject any hints, tips, patches, or tools pertaining to the problem that they have.</p>
<p>A lot of the content could be extracted from the box I sketched and put on the page, or as an alternative, special sub-sections of the wiki could be the *source* for the error text!  A strong community using some software could easily best nearly any pure programming team in explaining causes/effects/solutions to errors.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ichthyo</title>
		<link>http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/#comment-1979</link>
		<dc:creator>ichthyo</dc:creator>
		<pubDate>Sat, 21 Jun 2008 15:25:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.hci-matters.com/blog/?p=45#comment-1979</guid>
		<description>Hi, just saw your blog entry and couldn't resist to post an answer "from the other side of the brick wall". (please note the slightly ironic tone)

Everything you write is desirable, indeed. But, simply put, you are overlooking the nature of the situation which causes the error box to appear.

First, let us distinguish. There are two quite different situations: (a) an alert. (b) a error box. In Situation (a) I (the coder) am in control. I detect some deficiency in my program code and need to alert or query some information from the user. But these usually aren't the problem, because in any halfway decent application, the alert cases are handled already ok and somewhat in the manner you describe above. For example "no printer selected. On your system are the following bla bla bla... please select one from the list below:"

The problem is situation (b). If this situation happens, you can tell with 100% certainity that I (the programmer) *lost* the control about the situation. I am no longer in charge, I couldn't prevent it, because my predictions were wrong and my precautions failed. Now, because I am a overly precautions person (otherwise I wouldn't have survived in the "software factory"), I built a *generic* mechanism into my program to re-gain control on a higher level, trying to abort and cut away the corrupted data as far as possible. So, you can tell for sure, that the text given in the error message visible to the user is always a decoy. At maximum it could run as follows "something went wrong. We don't know what. We see MrmWrmpf is mxwdsxy+fac(2)-10*50+1 and is should be &#38;wx6ed[3]-&#62;XXZZ. We don't know why. We prevented the Application to crash but we don't know if our attempt was successful. Sorry. Shit happens."

Now, if any normal decent feeling person sees such a message, s(he) will be frightened to death and loose all trust into the program, the product or computers in general. Thus, if there is anyone caring for the user or the "customer relationship" in this development project, this person will prevent by all means that the programmers create honest error messages. Consequently, we programmers are all trained in cleverly inventing a wording which gives the impression that everything is harmless and under control and which invokes the feeling in the user, that s(he) has done something terribly wrong.

Here finally, I should add two clarifications.
1) when a error situation arises, the developer was not "able" to detect/prevent/foresee it. The emphasis is on the ability. In most cases this means, there wasn't the time and/or the budget to do so. Also, in many cases it is due to a shortcoming of the general design, that at this given point we can't "see" and prevent what's going on.
2) there is a more subtle architectural problem involved. Error handling is always a so called "croscutting concern". It is so by its own nature. It's always related to things we can't care for right here, to data we don't have at hand right here. Security is another such concern. If we would try to solve error handling, security, transaction management first class perfect "on location", our code would be messed up to such a degree, that it would be unmaintainable with respect to the primary goals and concerns. Of course, there are a lot of different possible half-way solutions to deal with all those problems -- and the price to pay for this "half-way-ness" are the messy error messages we all love so well.</description>
		<content:encoded><![CDATA[<p>Hi, just saw your blog entry and couldn&#8217;t resist to post an answer &#8220;from the other side of the brick wall&#8221;. (please note the slightly ironic tone)</p>
<p>Everything you write is desirable, indeed. But, simply put, you are overlooking the nature of the situation which causes the error box to appear.</p>
<p>First, let us distinguish. There are two quite different situations: (a) an alert. (b) a error box. In Situation (a) I (the coder) am in control. I detect some deficiency in my program code and need to alert or query some information from the user. But these usually aren&#8217;t the problem, because in any halfway decent application, the alert cases are handled already ok and somewhat in the manner you describe above. For example &#8220;no printer selected. On your system are the following bla bla bla&#8230; please select one from the list below:&#8221;</p>
<p>The problem is situation (b). If this situation happens, you can tell with 100% certainity that I (the programmer) *lost* the control about the situation. I am no longer in charge, I couldn&#8217;t prevent it, because my predictions were wrong and my precautions failed. Now, because I am a overly precautions person (otherwise I wouldn&#8217;t have survived in the &#8220;software factory&#8221;), I built a *generic* mechanism into my program to re-gain control on a higher level, trying to abort and cut away the corrupted data as far as possible. So, you can tell for sure, that the text given in the error message visible to the user is always a decoy. At maximum it could run as follows &#8220;something went wrong. We don&#8217;t know what. We see MrmWrmpf is mxwdsxy+fac(2)-10*50+1 and is should be &amp;wx6ed[3]-&gt;XXZZ. We don&#8217;t know why. We prevented the Application to crash but we don&#8217;t know if our attempt was successful. Sorry. Shit happens.&#8221;</p>
<p>Now, if any normal decent feeling person sees such a message, s(he) will be frightened to death and loose all trust into the program, the product or computers in general. Thus, if there is anyone caring for the user or the &#8220;customer relationship&#8221; in this development project, this person will prevent by all means that the programmers create honest error messages. Consequently, we programmers are all trained in cleverly inventing a wording which gives the impression that everything is harmless and under control and which invokes the feeling in the user, that s(he) has done something terribly wrong.</p>
<p>Here finally, I should add two clarifications.<br />
1) when a error situation arises, the developer was not &#8220;able&#8221; to detect/prevent/foresee it. The emphasis is on the ability. In most cases this means, there wasn&#8217;t the time and/or the budget to do so. Also, in many cases it is due to a shortcoming of the general design, that at this given point we can&#8217;t &#8220;see&#8221; and prevent what&#8217;s going on.<br />
2) there is a more subtle architectural problem involved. Error handling is always a so called &#8220;croscutting concern&#8221;. It is so by its own nature. It&#8217;s always related to things we can&#8217;t care for right here, to data we don&#8217;t have at hand right here. Security is another such concern. If we would try to solve error handling, security, transaction management first class perfect &#8220;on location&#8221;, our code would be messed up to such a degree, that it would be unmaintainable with respect to the primary goals and concerns. Of course, there are a lot of different possible half-way solutions to deal with all those problems &#8212; and the price to pay for this &#8220;half-way-ness&#8221; are the messy error messages we all love so well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nathan Bell</title>
		<link>http://www.hci-matters.com/blog/2008/06/06/improved-error-dialog-box/#comment-1746</link>
		<dc:creator>Nathan Bell</dc:creator>
		<pubDate>Thu, 12 Jun 2008 23:29:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.hci-matters.com/blog/?p=45#comment-1746</guid>
		<description>I'm curious, are you advocating for modal error boxes, or is this just a suggestion when you absolute have to have a modal box?  Are there even such cases?

In the wild, my 'favorite' modal errors box experiences are with those that contain hyperlinks to more information, or at the very least are copy and pastable into Google.  What would an error dialog box look like if it assumed a persistent Internet connection?  How would that compare to a screen-long modal error box?</description>
		<content:encoded><![CDATA[<p>I&#8217;m curious, are you advocating for modal error boxes, or is this just a suggestion when you absolute have to have a modal box?  Are there even such cases?</p>
<p>In the wild, my &#8216;favorite&#8217; modal errors box experiences are with those that contain hyperlinks to more information, or at the very least are copy and pastable into Google.  What would an error dialog box look like if it assumed a persistent Internet connection?  How would that compare to a screen-long modal error box?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.881 seconds -->
