    <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  :: On Configurability and Consistency</title>
        <link>https://members.accu.org/index.php/articles/936</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 11, #6 - Oct 1999</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/c129/">116</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;On Configurability and Consistency</h1>
<p><strong>Author:</strong>&nbsp;</p>
<p>
<strong>Date:</strong> 03 October 1999 13:15:34 +01:00 or Sun, 03 October 1999 13:15:34 +01:00</p>
<p><strong>Summary:</strong>&nbsp;</p>
<p><strong>Body:</strong>&nbsp;<div class="sect1" lang="en">
<div class="titlepage">
<h2><a name="d0e20" id="d0e20"></a></h2>
</div>
<p>A question in a computer graphics course asked how a GUI could
be adapted for colour-blind people. What better opportunity to air
one of my pet annoyances? A user interface should not need to be
adapted for any group, if &quot;adapted&quot; means tinkering with the system
software. Instead they should be able to set the preferences, and
those settings should be respected. In current software they are
not respected; I think half the time they're not even tested
properly. Etcetera.</p>
<p>My supervisor wrote &quot;lots of arguments contradict this&quot;, and
when I asked him he said that allowing much configurability breaks
consistency. If I configure my system to be very much different
from normal, you might be completely lost if you tried to help me
out with a problem.</p>
<p>How can these conflicting aims be resolved? People who object to
configurability on the grounds of consistency usually have no
objection to localisations, such as the translation of messages
into languages other than English or the complete re-mapping of the
keyboard, even though these can cause the same problems when
nationalities are mixed. Hence the issue is not as clear-cut as it
seems.</p>
<p>There is a difference between a small number of discrete
&quot;themes&quot; of presets (of which localisation is an example) and the
much larger number of possible configurations you get when you
allow the user to adjust everything in detail. Presumably the
support and testing people can acquaint themselves with all of the
themes in a similar way that in the days of DOS you could learn how
to type &quot;keyb uk&quot; on all European keyboard layouts (which was much
easier than you might think). However, it doesn't work like that,
because programmers do not always test on every theme - not even
the desktop themes in Windows 95 (just try setting &quot;use high
contrast&quot; under Control Panel/Accessibility, or in NT &quot;high
contrast black&quot; under Display Properties, and see which app you run
into problems with first). A particular problem in localisation is
programmers thinking they have exact control over the length of
messages, or setting arbitrary limits on how much they can grow or
shrink. And the fact that the messages in a localised OS are
consistent is small consolation to a helpdesk that doesn't
understand any of them.</p>
<p>One must be careful, though, not to lose sight of the purpose of
a personal computer. Most of the time it is not being used by
helpdesk personnel, or by people of several different nationalities
crowded around the keyboard, but by one person, and if that person
can use it more efficiently or comfortably by changing a setting,
then their entitlement to change that setting is similar to their
entitlement to change the layout of a personal office or a home
bedroom - compromises for visitors need only be made on the rarer
occasions when they are present. Saying that you can't configure
your own system on the grounds that you might forget how to use a
generic one is like saying you can't have an unusual room layout in
case you become less familiar with other people's houses. (Of
course you are less familiar with other people's houses!)</p>
<p>What, then, about the occasions when you need to use somebody
else's system? In the ideal world, you should be able to change the
settings on the fly (with all the programs still running) and
restore them afterwards, in a similar way that you can use the key
combinations Ctrl-Alt-numeric plus or minus to change the screen
resolution on some X servers, or Ctrl-[ and Ctrl-] to quickly
adjust the font size in Windows Netscape. If instead of producing
&quot;localised&quot; and &quot;adapted&quot; versions of software, programmers allowed
such on-the-fly switching, this would greatly benefit users who are
away from their homelands and surrounded by computer experts who
can't help.</p>
<p>Does on-the-fly switching, though, force some amount of
consistency? When I try to help people with Windows 95 systems, I
turn on the High Contrast option, because it is better than nothing
even though it is a bit of a mess. I know the key sequence to do
this so I don't need to read the small fonts while I'm doing it.
However, in localised versions of the OS, that key sequence is
different, which becomes a pain especially if the owner of the
system does not know how to do it for me. I am reduced to squinting
at icons, the one remaining consistency (although even they are in
a different order). If the owners of these systems had done all
these changes themselves, then likely they would know the
differences, but changing settings is work and if sizeable groups
of people are likely to want a common starting point (e.g.
everything in Japanese) then giving them that starting point should
save them a lot of trouble (although ideally they should still be
allowed to tweak things themselves). The disadvantage is that they
may then be blissfully unaware of the differences between their
system and the one the people around them expect. But there is no
reason why they should be, unless they're trying to help someone to
help them.</p>
<p>How can this be resolved then? I would suggest making
configurations switchable, and making a single &quot;international
break-out&quot; key sequence that cannot be rebound and is unlikely to
interfere with normal working. That sequence will temporarily set
all key bindings to some standard (which does not have to be
anything to do with English), so that other configurations can be
changed by pressing memorised key sequences. However, all of this
would have to be done at the system level; it would be of limited
use if things were different for each application (unless one
application is all that matters on the occasion). Programmers
should make sure they respect the system settings even if these are
changed in mid-run.</p>
<p>How can a program be tested under countless possible
configurations? A robust testing procedure should at least change
every setting in turn, since it is surprising how often programmers
forget to think of them, but what values should be tried and what
if there is a bug that is only evident when a particular
combination of settings is in force? For any given set of
variables, it may be possible to sit down and work out which
combinations can possibly cause problems, but writing a guide to
the general case is more difficult. Furthermore, many commercial
software producers rely on automated testing methods, and automatic
methods might not log such details as whether the text on the
screen is actually legible.</p>
<p>I thought that this was the sort of thing that beta testing is
supposed to do. As far as I know, companies releasing products for
beta test do not advocate that the testers each use a different
configuration. This means that most of them will start from the
same point and probably run into the same problems, and the only
extra information you get from large numbers doing it is statistics
on how frequently an average new user will run into a particular
problem. Well if you want your program to fall over when someone
does something as simple as changing the colours, fine, but don't
say it's a quality product. Incidentally, whenever I explain
configuration difficulties to people who are unfamiliar with
computers, they fail to comprehend how such complex machines don't
&quot;just do that automatically&quot;.</p>
<p>This article has been written from a user's viewpoint. The
hobbyist programmer has no obligation to make anything right;
anything they do is a contribution, and going on about what they
didn't do could almost be taken as being hostile. But saying that a
program won't work under a particular configuration is simply
stating the facts. I came across some software once that actually
said, &quot;This program is not very configurable; if you have a special
need then you may not find it useful.&quot; That's fine; I know where I
stand. As long as I'm never in a situation when I have to use it,
such as if the organisation I'm in refused to run anything
else.</p>
</div>
</p>
<p><strong>Notes:</strong>&nbsp;</p>
<p><em>More fields may be available via dynamicdata ..</em></p>
</div>
</channel>
</rss>
