User Experience

  • Eclipse Tabbed Editor Extended.. Embedding a GEF Editor

    Finding the right format for users to edit and view your Eclipse plugin’s data can be tricky. Eclipse provides many different types of editors for modification of its resources. Some examples of these are the Java, Text, JSP, XML, Ant editor etc. It also provides tabbed editors like the Plug In Manifest Editor which can have multiple sub editors as tabs in one editor. A simple example template to extend the tabbed editor when creating a new plug-in, is provided in Eclipse by default. For our project we needed to add a compare editor and a GEF editor as sub editors. This post should help you become more familiar with creating custom tabbed editors in Eclipse.


  • Making Code Easy to Understand – What Developers Want (a study)

    What exactly makes a codebase easy to understand; the documentation or the tools that you use? In our effort to help developers who are working with large codebases, we conducted a survey (see details and highlights) to find out what techniques developers use to better understand code.

  • Making Cool Ideas Happen: Studying Our Users and Software Immigrants

    One of the nice things about being Software Developers, is that it’s really nice to spend our time working on cool ideas:  building out systems that help in situations where no solution currently exists. The problem is that often these cool ideas fail. Yes, using an Agile approach helps significantly, especially when customers/users request features. But often customers don’t realize what problems they need solved or what developers are capable of. Skilled engineers have the opportunity to really push the envelope with new and innovative ideas. The challenge then becomes making sure that these new ideas actually meet a need.

  • Designing forms without the problem of Premature Commitment

    Recently I was testing a form for uploading a diagram to a server. Entering a name and description was easy enough but choosing a group to add it to caused some frustration. I had forgotten to add a new group for my diagram! The only solution available to me was to cancel the dialog and open a different one to create the group; a frustrating procedure. Imagine how much time is wasted every day by minor frustrations like this.

    Forcing a user to make decisions (uploading a diagram) before all the necessary information is available (created groups) is the problem of the Cognitive Dimension Premature Commitment. If you have ever taken an online survey you have probably encountered this problem. Many surveys consist of multiple pages; users are often unaware of the type and number of questions that will be asked. Showing the user the number of total pages and their corresponding headers will allow users to confidently add or modify content during the current phase without having to backtrack. Premature commitment causes problems with all types of actions performed by users; whether it is the creation, modification, or exploration of content. It should be avoided at all costs.

  • Increasing Usability by Removing Viscosity

    Imagine having to use MS Notepad instead of your favorite IDE for the next week. That twisting pain in your gut is partially due to Notepad's high Viscosity Cognitive Dimension.
  • Improving Usability with Cognitive Dimensions

    One of the most interesting recent developments in the software industry is the change in focus from processes and tools to users and usability. One solution is to follow the advice of David Platt and other prominent thought leaders on the subject. But there is more to the story; results from Cognitive Science help us understand the inner workings of the mind better as such allowing us to create superior user interfaces.

    We are constantly being inundated with all kinds of important data: software performance tests, website statistics, usability studies, and more. Transforming this information into usable user interfaces can be a challenge.

  • Eliminating the Suck in Your Software

    Software Sucks!

    Recently Microsoft NERD hosted a talk by David Platt, and according to David, users think that today’s software sucks. He says it is overcomplicated, too hard to use, and simply doesn’t get its job done. It is true that software is a top consumer complaint. David cites statistics from the Better Business Bureau regarding most complaints received per industry, and software industries appeared three times in the top 7 in 2006 and three times in the top 5 in 2007.

    But before you slit your throat, I say consider when viewing these statistics how ubiquitous technology and software services are today. Even if a much smaller industry sucked a lot more, software industries would still rank higher in a list of the number of received complaints simply because the number of consumers in the small industry is far less than the number of software users. Really what I’d like to know is the number of complaints our industry receives compared to the number of possible complainers (our users). Of course, regardless of whether these statistics are the best gauge of user satisfaction, it would be foolish to not make an effort to determine what the complaints against your software are or to ignore major design flaws.