Archives

Archives / 2008 / July
  • 5 Ways to Know If Your Software Sucks

            <p><a href="http://getpixel8ed.com/shows/sucks" mce_href="http://getpixel8ed.com/shows/sucks"><img src="http://download.infragistics.com/users/pixel8/images/pixel8podcast.png" mce_src="http://download.infragistics.com/users/pixel8/images/pixel8podcast.png" width="276" border="0" height="118"></a></p>
    

    Listen to the Show!

    <p><a href="http://suckbusters.com/">David Platt</a> is an author, speaker and developer who wants you to recognize that there is a problem in software interface design. Fear not - David is not alone. Computer World recently reported that "<a href="http://www.cw.com.hk/article.php?type=article&amp;id_article=1617">the majority of end users (60 percent) find enterprise applications somewhat difficult, very difficult or almost impossible to use, hampering employee productivity</a>." Yes – there’s sucky software out there and it just might be in your source code repository!</p>
    <h3>Does Your Software Suck?</h3>
    <p>I am sure David may have 5 or 10 or perhaps 20 ways you can know if your software sucks, but the following are 5 ways I gleaned from our conversation:</p>
    <ol>
        <li><strong>Did you design from the toolkit outward or the user inward?</strong> Perhaps you are a .NET or Ruby or Java wizard, but does your proficiency in these platforms punish end-users? There are dozens of features in any platform that if not managed carefully can result in frustrating user experiences.<br><br></li>
        <li><strong>Are colors, motion and other visual elements used "just because"?</strong> 
            Designers like to design and coders like to code. Professionals are drawn to 
            their practice often because a sense of passion and desire for a creative outlet. This can be a problem though when software features bells and whistles where elegance and proactive design is more appropriate.<br><br></li>
        <li><strong>Does the user have to memorize dozens of menu hierarchies or key commands?</strong> Balance is always a problem in user interface design. How do you accommodate newbies without frustrating the power-users? No one said there are easy answers, but with a little thought many features can become apparent at just the time of necessity.<br><br></li>
        <li><strong>Do you use your final product to test out new design paradigms?</strong> This may seem silly, because people don’t think of what they do in these terms. Often a new feature is included a new build that passed QA and got the nod from the three other developers in the room – all to prove to be too confusing or simply out-of-place to end users. <br><br></li>
        <li><strong>Do users have to think about using your program?</strong> When someone is using your software, if they spend a disproportionate amount of time thinking about how to use the software rather than the problem the software is hoping to solve – then your software sucks.</li>
    </ol>
    
    <h3>What Should We Do?</h3>
    <p>David’s advice is provocative. Instead of gunning off a list of do’s and don’ts David suggests the following remedy to sucky software:</p>
    <ul>
        <li><strong>Allow software engineering to split off from computer science in formal education.</strong> Software engineering is much more than high performance algorithms and compiler design. Areas of specialty like user interface design and user experience require a different need of focus all the while being in a close-knit relationship with the discipline as a whole.<br><br></li>
        <li><strong>Software engineering needs specialization.</strong> As hinted above no-one in this day and age can claim to be an expert general practitioner programmer. There is simply too much to know. When "back-end" folks aren’t expected to produce the front-end – then we’ve made significant strides.</li>
    </ul>
    
    <h3>Links</h3>
    <ul>
        <li><a href="http://www.codeplex.com/familyshow">Family.Show</a></li>
        <li><a href="http://uie.com/">User Interface Engineering</a></li>
    </ul>
    
    <h3>Books</h3>
    <ul>
        <li><a href="http://www.amazon.com/Why-Software-Sucks-What-About/dp/0321466756/">Why Software Sucks... and What You Can Do About It</a></li>
        <li><a href="http://www.amazon.com/Invisible-Computer-Products-Information-Appliances/dp/0262640414/">The Invisible Computer: Why Good Products Can Fail, the Personal Computer Is So Complex, and Information Appliances Are the Solution</a></li>
    </ul>
    
    <p><em>My favorite quote from David is when he uses "reptilian midbrain" in a user interface explanation without breaking a sweat! ;)</em></p>
    
    <h3>Progress in User Interaction Design</h3>
    <p>While producing this show I found an interesting post on <a href="http://techcrunch.com/">TechCrunch</a>, <a href="http://www.techcrunch.com/2008/07/29/microsoft-researchers-get-fancy-with-a-sphere-display/">Microsoft Researchers Get Fancy with a Sphere Display</a>. Here is a video of the demonstration.</p>
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/V3HGfIy_zCI&amp;hl=en&amp;fs=1"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/V3HGfIy_zCI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" wmode="transparent" width="425" height="344"></object>
    
    <p>The "surface" appliances seem to be forging closer to the idea of having software that just works.</p>
    
    <p><a href="http://popularmechanics.com/">Popular Mechanics</a> did a spot on the surface table. In this video you see how wireless devices interface with each other using the surface table as an intermediary. The best part? You can take a picture on your digital camera and load it on your cell phone: no cables, no syncing and no hassle!</p>
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/kr1O917o4jI&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/kr1O917o4jI&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></object>
    
    <p>The last video I have for you’re here is of the TouchWall. What I like best about this video is how they spend time explaining how the technology works.</p>
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/YPrfqdl55D0&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/YPrfqdl55D0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></object>
    
    <p><a href="http://www.dotnetkicks.com/kick/?url=http://getpixel8ed.com/shows/sucks"><img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://getpixel8ed.com/shows/sucks" alt="kick it on DotNetKicks.com" border="0"></a></p>