<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Bits 'n Widgets - User Interface</title>
    <link>http://bitsnwidgets.com/</link>
    <description>&amp;nbsp;&amp;nbsp;Thoughts on real-world, practical, common-sense approaches to Agile software development using Scrum and XP</description>
    <language>en-us</language>
    <copyright>John E. Boal</copyright>
    <lastBuildDate>Thu, 10 Sep 2009 14:08:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>webmaster@bitsnwidgets.com</managingEditor>
    <webMaster>webmaster@bitsnwidgets.com</webMaster>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=65de771b-31c4-47a2-8233-4d69407f468e</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,65de771b-31c4-47a2-8233-4d69407f468e.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,65de771b-31c4-47a2-8233-4d69407f468e.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=65de771b-31c4-47a2-8233-4d69407f468e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">This is a pair programming workstation
at an undisclosed office near me... it has never been used. Note that there are no
chairs... &lt;sigh&gt;<br /><p></p><img src="http://bitsnwidgets.com/content/binary/09-10-09_1106.jpg" border="0" /><br /><br />
The mere fact that it <i>exists at all</i> does give me hope however. Agile here is
not dead, only frozen in carbonite...<br /><br />
This station also sits in a shared workspace that is always empty. It's so sad when
there really is a better way but nobody wants to use it.<br /><br />
If there were only two chairs here, with two programmers working together, then, "yer
doin it RIGHT." If there were three more of these workstations with six other team
members in this shared space, perhaps working with a couple of whiteboards and a cork
board with story cards on it, then THAT'S where I want to be.<br /><br />
This station with its dual monitors, keyboards, and mice is the ideal pairing workstation.
Both monitors have the same image (clone mode), and both keyboards and mice are active
at the same time. The only complaint I would lodge here is that the workstation is
so underpowered it really couldn't be used for development. The pair would have to
use remote desktop to get to a development machine. Perhaps that is the actual design,
however having the local machine there I think is much better.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=65de771b-31c4-47a2-8233-4d69407f468e" /></body>
      <title>Pair Programming: Yer doin it wrong</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,65de771b-31c4-47a2-8233-4d69407f468e.aspx</guid>
      <link>http://BitsNWidgets.com/2009/09/10/PairProgrammingYerDoinItWrong.aspx</link>
      <pubDate>Thu, 10 Sep 2009 14:08:18 GMT</pubDate>
      <description>This is a pair programming workstation at an undisclosed office near me... it has never been used. Note that there are no chairs... &amp;lt;sigh&amp;gt;&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://bitsnwidgets.com/content/binary/09-10-09_1106.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
The mere fact that it &lt;i&gt;exists at all&lt;/i&gt; does give me hope however. Agile here is
not dead, only frozen in carbonite...&lt;br&gt;
&lt;br&gt;
This station also sits in a shared workspace that is always empty. It's so sad when
there really is a better way but nobody wants to use it.&lt;br&gt;
&lt;br&gt;
If there were only two chairs here, with two programmers working together, then, "yer
doin it RIGHT." If there were three more of these workstations with six other team
members in this shared space, perhaps working with a couple of whiteboards and a cork
board with story cards on it, then THAT'S where I want to be.&lt;br&gt;
&lt;br&gt;
This station with its dual monitors, keyboards, and mice is the ideal pairing workstation.
Both monitors have the same image (clone mode), and both keyboards and mice are active
at the same time. The only complaint I would lodge here is that the workstation is
so underpowered it really couldn't be used for development. The pair would have to
use remote desktop to get to a development machine. Perhaps that is the actual design,
however having the local machine there I think is much better.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=65de771b-31c4-47a2-8233-4d69407f468e" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,65de771b-31c4-47a2-8233-4d69407f468e.aspx</comments>
      <category>Agile</category>
      <category>User Interface</category>
      <category>Pair Programming</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=05c94d1b-afb9-4461-b1cd-bc0abb6889c7</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,05c94d1b-afb9-4461-b1cd-bc0abb6889c7.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,05c94d1b-afb9-4461-b1cd-bc0abb6889c7.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=05c94d1b-afb9-4461-b1cd-bc0abb6889c7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">"As a user, I can select my preferences
and save them<br /><p></p><img src="http://bitsnwidgets.com/content/binary/DoTheRightThing.jpg" border="0" /><br /><br />
so that the program will do the right thing."<br /><br />
ahem...<br /><br />
Sometimes we in the software business need to realize that the people using our software
are not experts in the field. We must become experts at understanding the requirements
and implications of the domain for which we write software, but we can not expect
our users to do the same. We must be able to make some decisions with the software
so that it does the "right thing" for the user. In today's world, software users have
little time to fiddle with settings or options. They just need the software to do
a job for them and do it the right way the first time. Our impatient "get it now"
society of users definitely has this attitude. If our software doesn't do what they
need it to do, they will more likely abandon it for something else before attempting
to fiddle with settings, parameters, options, and preferences.<br /><br />
Our product owners need to be keenly aware of this attitude, and get the balance right
with the features and stories that the customer base needs. While this is not an easy
task, it is a very important one. As our software gets smarter and smarter, it should
be more aware of what the user is attempting to accomplish, and it should make some
decisions and assumptions based on the mode of intent. In addition (here is the key
point missing from most software today) we need to *tell* the user what the mode is,
and what the assumptions are. If we got it wrong, or the user wanted something else,
then s/he has the opportunity to change the operating mode before the software attempts
to do the "wrong" thing.<br /><br />
A "mode" could be an entire slate of preference settings, that come packaged out of
the box with the defaults set for performing a specific task, or scenario. This entire
slate could be modified if the user is advanced and cares to fiddle with them, but
having the entire slate saved as a set, that could be chosen as a very simple selection.
Then, always make it clear what the system operating mode is, and how to change it.<br /><br />
Keep it simple by being smart about what the user is trying to accomplish and make
some decisions. Select the most appropriate mode, then - most importantly - communicate
those decisions to the user, and let them know what the software is assuming about
the task they are trying to perform. Give the user choices about how to control the
software, and change its mode, but keep the goal to be helping the user stay more
focused on performing the task at hand.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=05c94d1b-afb9-4461-b1cd-bc0abb6889c7" /></body>
      <title>Preferences User Story</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,05c94d1b-afb9-4461-b1cd-bc0abb6889c7.aspx</guid>
      <link>http://BitsNWidgets.com/2008/08/27/PreferencesUserStory.aspx</link>
      <pubDate>Wed, 27 Aug 2008 13:00:11 GMT</pubDate>
      <description>"As a user, I can select my preferences and save them&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img src="http://bitsnwidgets.com/content/binary/DoTheRightThing.jpg" border="0"&gt;
&lt;br&gt;
&lt;br&gt;
so that the program will do the right thing."&lt;br&gt;
&lt;br&gt;
ahem...&lt;br&gt;
&lt;br&gt;
Sometimes we in the software business need to realize that the people using our software
are not experts in the field. We must become experts at understanding the requirements
and implications of the domain for which we write software, but we can not expect
our users to do the same. We must be able to make some decisions with the software
so that it does the "right thing" for the user. In today's world, software users have
little time to fiddle with settings or options. They just need the software to do
a job for them and do it the right way the first time. Our impatient "get it now"
society of users definitely has this attitude. If our software doesn't do what they
need it to do, they will more likely abandon it for something else before attempting
to fiddle with settings, parameters, options, and preferences.&lt;br&gt;
&lt;br&gt;
Our product owners need to be keenly aware of this attitude, and get the balance right
with the features and stories that the customer base needs. While this is not an easy
task, it is a very important one. As our software gets smarter and smarter, it should
be more aware of what the user is attempting to accomplish, and it should make some
decisions and assumptions based on the mode of intent. In addition (here is the key
point missing from most software today) we need to *tell* the user what the mode is,
and what the assumptions are. If we got it wrong, or the user wanted something else,
then s/he has the opportunity to change the operating mode before the software attempts
to do the "wrong" thing.&lt;br&gt;
&lt;br&gt;
A "mode" could be an entire slate of preference settings, that come packaged out of
the box with the defaults set for performing a specific task, or scenario. This entire
slate could be modified if the user is advanced and cares to fiddle with them, but
having the entire slate saved as a set, that could be chosen as a very simple selection.
Then, always make it clear what the system operating mode is, and how to change it.&lt;br&gt;
&lt;br&gt;
Keep it simple by being smart about what the user is trying to accomplish and make
some decisions. Select the most appropriate mode, then - most importantly - communicate
those decisions to the user, and let them know what the software is assuming about
the task they are trying to perform. Give the user choices about how to control the
software, and change its mode, but keep the goal to be helping the user stay more
focused on performing the task at hand.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=05c94d1b-afb9-4461-b1cd-bc0abb6889c7" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,05c94d1b-afb9-4461-b1cd-bc0abb6889c7.aspx</comments>
      <category>Design</category>
      <category>User Interface</category>
    </item>
  </channel>
</rss>