»

[22 Sep 2008 | 0 Comments]

SPHERE OF INFLUENCE, INC. – software studios and services Thad Scheer Anything but Rectangles, Part II Design Principle #1: Amplification through simplification This means amplify (i.e. draw attention to) the important by separating from, concealing, or eliminating everything else.  The simpler a user interface the more effective the user experience.  Don’t try to exploit every pixel of screen real-estate, encourage large areas of unused real-estate because the empty spaces draw cognitive attention to the non-empty spaces and help make the pixels you use count. Consider an expensive foldout ad in a fancy magazine, do they fill those ads with 10pt type extolling the features and benefits of whatever they are selling…or do they use simple imagery and message?  You want to apply the same thinking to user experiences in software. By analytically or algorithmically reducing data you can change its geometry, i.e. its shape.  Think about what the user really needs. If data is n-dimensional (e.g. a rectangle) then can you make it n-1 dimensional (e.g. a list or a point)? Next, can you visually reduce it; say to a single element, shape, or color? In doing this you should be thinking about the most effective way to display and/or interact with data. Consider a list instead of a grid; consider a single element instead of a list; and consider an element attribute instead of a full element. In the hierarchy of human perception color ranks first, then shape, then numbers, and lastly words.  Use this to your advantage! Don’t be lazy, invest in custom controls. Use color, shape, and white space to convey information. Don’t forget the value of empty space and remember that clutter is the enemy of most modes of cognitive understanding. Random visual access (i.e. a cell for everything and everything has a cell) is seldom the right design solution. With technologies like Microsoft’s WPF, custom controls have never been easier or cheaper to implement. Become efficient at making custom controls!

»

[17 Sep 2008 | 0 Comments]

SPHERE OF INFLUENCE, INC. – software studios and services Thad Scheer   Anything but Rectangles, Part I                           What is the geometric shape of a database table? What is the geometric shape of a SQL result set? The answer to both questions is usually the same: A rectangle   Now that we’ve established that, what is the most common UI geometric for rendering data?  You guessed it…a rectangle.   Given that most data is rectangular when it emerges from a database it is no surprise that the most common user interface controls are grids and list boxes. When delivery teams need to display data they frequently turn to grid controls and list boxes without considering anything else. Is this healthy? I say no.   Experience Design 101: Deliberately choose data’s geometric shape when you have to present to a user. Don’t just reach for a grid control because it’s easy to bind to the underlying data source. That’s lazy.  Grid views give the user way too much information and offer limited ways of discerning which elements are important vs. unimportant.  Worse, they make the human do all the work of data reduction when the computer should be doing that work.    Grid views have their place in user experience but make the choice deliberately.  Spend time doing real experience design before reaching for a rectangular random-access control.   9 times out of 10 the simplest way to improve product experience with enterprise software is to replace grid controls.  Typically this involves writing a little algorithm that will convert the rectangle source data into an appropriate, often non-rectangular, geometry and then bind that using either a standard control or custom built control.  The same goes for reports.

»

[15 Sep 2008 | 0 Comments]

Scott Lawrence SPHERE OF INFLUENCE, INC. – software studios and services In my previous post, I said I didn't expect our next enterprise application to include high scores.  But if our next application is a corporate community or knowledge base, that may not be true.  I say this because of my experience with Stack Overflow, a new Q & A site for programmers from Jeff Atwood and Joel Spolsky. The Stack Overflow "high score" is reputation.  The score grows through a combination of your own actions as a user, and the votes of your peers.  If other users of the site find your questions interesting, they can vote them up.  The same is true of your answers to questions.  Answers acknowledged by the initial questioner as the most correct get higher scores.  Bad questions and answers can be voted down.  Some actions (like voting down a question or answer) are unavailable to you as a user until you've achieved a certain score.  This system does a great job of incentivizing desired behavior by playing to our sense of competition.  Even though I participated in the private beta, my score is only 260--and I'd like it to be higher. In addition to the scoring system, Stack Overflow has badges.  They serve a similar purpose to mission checklists by laying out a specific goal and the tasks to complete to achieve it.  Some of the badges depend solely on your actions (e.g. the critic badge), while others depend on the opinion of your peers (like the great answer badge).  In one of the podcasts about Stack Overflow, Atwood says the idea of badges came from the XBox 360, so there's an explicit objective of making this serious site more "game-like". The result of this scoring system is a growing number of highly-engaged users.  Questions asked on the site receive their first answers in a matter of seconds.  The answers tend to be high-quality as well.  Having described the use of reputation, peer ranking, and community elements in Stack Overflow, two questions come to mind: Could any enterprise applications leverage any of this to make systems more likeable? If so, what types of enterprise applications might benefit the most? I believe the answer to the first question is yes, and that enterprise applications whose primary purpose is knowledge-sharing are the most likely to benefit from leveraging these ideas. In the context of the enterprise, the corporate portal is superficially similar to Stack Overflow (at least when it comes to the knowledge base functionality).  In addition to web pages and links, portals provide a repository for information stored in files (the Word, Excel, and Powerpoint slide decks typical of corporations).  The portal will also add metadata to each document it stores (who uploaded it, when it was uploaded, when it was changed, etc).  In general, searches of such repositories bring back the documents with the most matches against your search terms.  They'll use the text of the document itself, and ideally any metadata the document contains.  What is likely to be lacking from metadata added by the portal (at least by default) is any measure of the quality of a document.  This quality measure is one area where some of the features of Stack Overflow could add value. A voting mechanism would enable everyone who reads a particular document to rate it as helpful (or not).  Combined with the information on who authored and/or uploaded it, the aggregate of these up-or-down votes could constitute a reputation score.  Searches would weigh this information along with search keywords in ranking results, moving the most useful information up and the least useful information down. In a call center/customer service application, with personnel depending on a knowledge base to support customers by phone, the voting mechanism described above could be applied to identify documents most likely to solve a common problem.  If survey data on customer satisfation were consolidated into a score, it could be used to measure the effectiveness of call personnel, and assign calls accordingly.  Even more specifically than a general effectiveness score, if the voting mechanism identified call center personnel as specialists in a particular problem or product, calls specific to their specialty could be routed directly to them. In my next post, I'll discuss how users typically interact with enterprise applications, and what they might learn from the interaction mechanisms for games.

»

[10 Sep 2008 | 0 Comments]

CUDA/Tesla makes it practical to consider better quality algorithms that might have been discarded because they run to slow for production. [More]

»

[10 Sep 2008 | 0 Comments]

Scott Lawrence SPHERE OF INFLUENCE, INC. – software studios and services Lately, one of our executives has been playing a lot of World of Warcraft (WoW) in off hours. Having experienced its addictive qualities, his question to us was what we can do with enterprise applications to give them the same qualities. Our team spent a lunch hour discussing what successful design elements from multi-player games (and heavily-used websites and applications) we could borrow to approach that goal. These are some of the attributes we identified: High scores Mission checklists Constantly changing/new information Simple controls Intuitive/context-sensitive interfaces Something other than "input-process-output" operation Community/social networking Peer rankings/ratings/voting While I'm certain our next enterprise application won't include high scores, many of the other attributes we found would certainly make welcome enhancements to current and future products. The community aspect of multi-player games is a large part of their appeal. The best games give players the ability to play with or against people all over the world with little to no noticeable difference in the quality of gameplay. Similarly, many enterprise applications serve a geographically-distributed user community. If such applications gave their users the ability to interact with each other directly, they would become more appealing to use. Rally Software is one company that has taken this approach with their flagship product, Rally Enterprise Edition. Their product integrates forum functionality so they can get constant feedback from their customers and to communicate potential changes to the application, including new features. In addition to making the product more appealing to users, it's a great example of an agile software company practicing what it preaches.