Integration of Usability Practices into Software Development Process

The key for a successful software product is fulfilling the user’s needs and desires to solve a concrete problem and also those software products have to provide user interfaces that allow the users to perform a task in an easy and efficient way.

To increment the usability level of the software products, the development team has to add the usability vision into the whole development process. Currently, the usability perspective is very important in the software production for obtaining a product that can be more appreciated by the users and contribute to an effective and easy form to interact with the software.

In the industry, there are different methodologies and development techniques but most of them do not include any phase especially dedicated to solve usability issues. The two approaches, usability and software development, must be performed side by side to generate a product with better quality and more oriented to the user’s side. Many times, the software is excellent but the interaction between the users and the product is complex or the UI is too difficult to understand and to use.

For integrating the usability techniques to the software development process, some changes have to be introduced to the phases of the different methodologies for obtaining more benefits in each phase.

  • Analysis: Interviews, surveys, focus groups or field studies can be used to determine the real needs of the users and to obtain feedback to complement the design.
  • Design: To test the design with the users and to obtain feedback the designers and developers can use prototypes, participatory designs or usability tests.
  • Testing and Deployment: In the testing phase, there has to be guaranteed that the product doesn’t have bugs but also the usability must be tested in order to ensure that the users can work with the product; usability evaluation and surveys are some examples of the techniques that can be used.

The development process and the schedule of the development of a product must consider the times required to implement the usability techniques and to analyze the results and implement the corresponding changes. Also, it is recommended to use an iterative approach in order to be able to implement the changes associated to the obtained user feedback to the product.

Including and involving users to the development process can help to understand the real needs and to improve the design of the final product to generate a better interaction as well as being more efficient. But most of the organizations are incredulous about it because they have stereotypes and barriers like delay on the production schedules or that the usability tests will increase the number or requirements or even increase the budget. The solution to these problems is to analyze better our users, obtain feedback and plan in advance how to introduce usability in the development process to reserve enough resources to put it in practice.

Finally, adding the usability practices into the software development process can bring many benefits to the development teams and the companies including quality, easiness and usability to their products. On the other hand, implementing usability practices in a large company with a defined software development process required time to train the developers and also a specific budget to apply the techniques and to hire usability experts to be part of the team.

Sources:

Image Sources:

 

Internationalization

In these days, business and applications have a lot of markets that they have to cover that is why the internationalization of the contents is very important. It’s well known that the content is the most important thing for catching the attention of the customers and that fact is true, but also it is important that the customer can actually access and read the content.

The important problem is actually applying that theory and make it possible from the technical point of view and also the other problem is how to communicate the user about the internationalization and location options.

The most used techniques used are:

  • Using flags to show the different languages on which the content is available or for describing the different regions.
  • Use a link to change between different languages. Sometimes those links can be difficult to find for the users or can cause confusion.
  • Other technique is to adapt the website, the app or the software to the different countries and cultures but sometimes it is not possible to create so many different versions or costs too much money.

flags

Youtube.com shows the different languages with the associated flag

grooveshark

Grooveshark (a site for listening music online) provides its content in different languages and also encourage users to help with the translations to generate a more accurate dictionary.

elpais-ed

El País offers differnt editions of the newspaper for their multiple audiences.

So before going “International” some decisions and directions must be taken into account:

  1. Define user requirements: Determine the target and what the needs of the user are.
  2. Create Proper Organization: Content organization and display, also the navigation variances based on the different regions or languages on which the product should be available.
  3. Focus on User Experience: Try to create a special user experience that matches with the culture of the customers. For example writing from right to left.
  4. UI guidelines: The layouts and the display of the contents should consider the different language variations and also have to adapt the navigation, the images, icons and colors to be neutral for the different cultures and regions.
  5. Shopping Habits: They are different depending on the culture of the customer and that can affect to the internationalization of the software. If the software provides an e-shopping functionality those aspects have to be considered too in order to produce a better user experience and also to obtain profits.
  6. Different levels of respect in the relationships: Depending on the culture and the languages, there are some manners at moment of addressing to somebody that can be considered rude or not polite.

The following images are an example of the IKEA website in English  and the IKEA website in arab for the IKEA stores in the United Arab Emirates. The content and the display is adapted to the different audiences.

ikea - eng

ikea-ar

As a conclusion, there are many different ways to address an international audience with a software product and they are related to the cultures and language of that audience. First some research on the background of those behaviors of a determined culture. Also many different aspects have to be considered as part of that Internationalization process in order to obtain as a result a product that is trustable, user-friendly and familiar for the customers of different regions and languages.

Sources:

Image sources:

Usability for Mobile Devices

In these days almost everybody has a smartphone and therefore the mobility is becoming bigger and keeps growing. That is the reason why designers and developers have to consider several aspects when it is mobile time.

According to the article “10 principles of mobile interface design” by Jonathan Stark for the Net Magazine, “the analysts predict that for 2015 mobile phones will overtake desktop computers as our primary means for accessing the internet”. Based on the information provided by this article, I would like to include some reflections about several topics that I found interesting when we have to design or develop a product oriented to the mobile market.

Mobile is different: There are several differences between smartphones and desktop computers. These differences can most be considered when developing for mobile devices and if is necessary change the development process completely. Some specific factors with pros and cons must be taken into account and carefully considered in order to generate a great product.

Mobile Mindset: The design most be focused on satisfying one specific need, also the main purpose of the application must be useful and help the users to solve their problems. Having a lot of functionality is not always the best idea.

img

Interfaces:  The interfaces and the interaction points must be based on the platform’s guidelines and also on the interaction that the user is used to. The response of the application must be really quick and react immediately when the user does something.

The interfaces and interactions must be “Thumb Friendly”, this means that the interaction points and the gestures to activate them must be big enough to use different finger sizes. Sometimes it is also called the “Fat Thumbs Problem”.


Also the content should be the main purpose and the interfaces should be simple and minimalists because if the physical space, the priority should be the content and the simplification of the interactions.

Impact the user: The first impression is crucial. The first time a user opens a anew app is very important because it depends on what our user sees to create a “love” or “hate” relation. If the main page is confusing or the application is very difficult to understand and use, maybe our user won’t come back.
Also another point of impact is the icon, as Jonathan Stark mentions in his article; the icon will be the business card. It has to show the purpose of the app, also a neat and clear icon suggests a neat app. So the creation of an icon for the new app must be done very carefully and thinking in details.

Communication: The application has to be informing its state to the user always. Also must provide instant feedback. There are several ways to show the feedback not necessarily has to be in text it could be vibrating or visual pointing out the selection of the user.
It is not recommended to introduce alerts for information purposes; they interrupt the user and must be just included when necessary.

Another important point and when it is necessary to include alerts is the confirmation. When the application needs a decision from the user, the text has to be clear and concrete to avoid confusions. Also, the “safest” action should be marked by default, the software must not decide for the user.

As a conclusion, designing and developing for mobile devices includes a learning phase when the designers and developers must get used to the technology and be in touch with the new environment for their applications. Many factors have to be considered while creating a product for mobile devices and can condition the design because it has to respect and be aligned with the platform guidelines or with the environment guidelines to replicate what the user is used to interact with.

Image Sources:

Interaction Design Guidelines

There are some factors that need to be considered in the moment of designing and developing a software product. This factors or guidelines are recommended by different authors with the aim of improve the user experience by making the application interfaces more learnable, intuitive, helpful and consistent throughout the software.

From all the interaction design guidelines, I would like to address the topic of the error messages and error prevention. I consider that both are very interesting and have big impact from the user’s side.

Error Messages

The error messages have to be clear and written in user language in order to be understood by the users and help them to recover from the error doing the necessary changes. If the message is too technical, the users will not know the cause and also the effect of their actions.

                         Do not disturb the user!!!

Also error messages must be clear and visible without disturbing the user but being noticeable enough to indicate the users about the error.

                       Noticeable Error Messages

The error, confirmation or alert messages MUST NOT be confuse. This means that the question for the user must be understandable enough to facilitate the decision and also is very important that the options offered are clear and simple.

               Try to take the correct decision!

Also if the user has done an error, the response of the program should be the error message and also point out in a noticeable way where the mistake from the user has occurred; doing this the user will be able to introduce the correct values and recover from the error.

Error Prevention

First, the aim of the software systems should be to avoid the user’s errors and this can be done by a correct prevention. The system should provide help messages or examples of the values or actions that the user has to do in order to complete a task.

       Information Messages to Prevent Errors

Sometimes, the values should be fixed and just proved the user a method to select among them and not type them for guarantying that the introduced information is valid.

Also another option is to provide the user with specific fields to prevent failures while introducing data. For example, in a telephone number field should be 2 or 3 small textboxes to separate the prefix from the actual number or also provide some “artifacts” to help on introducing data like calendars.

      Calendar Field

validation example

      Separate textfields for the telephone numbers

As a conclusion, there are different kinds of guidelines to facilitate and make easier the interaction between the users and the products; these guidelines depend on several factors like the technology used, the platforms, the devices, etc. The designers and the developers should consider the corresponding guidelines for each development with the aim of improve the user experience and provide a better quality. The main idea is first to think about the possible errors or problems that the designing decisions can create for our future users.

Sources: