miércoles, 17 de junio de 2015

Integration of usability practices into the software development process


Do you want to support a User Centered Design?

If that's the case, let's see in this post how the tool Usability Planner can help you plan which usability methods to apply in your user-centered approach.

First we are going to start with an introduction to this challenge, integrate usability practices into the development process of an organization is difficult, the software engineering is prevalent in many organizations even knowing that usability is a critical software attribute. 
Since the late 90s in the HCI community there has been a "war" between the relationship of the disciplines of software engineering and HCI, and how to integrate the two. Each discipline has different approaches and success criteria, on the one hand, software engineering is systematic, disciplined... with a target focused in the process (following a plan) and with the success criteria of finishing the product on time and on budget, on the other hand, HCI is more ready to change, less controlled... with a target focused in usability and with the success criteria of meeting the user needs with the product. 
After reading a paper [1], I want to add the figure below in which we can see a summary of the activities of both.


In 2001 the Manifesto for Agile Software Development appears and the practice of UCD changed in the sense that the iterative usability evaluations within an agile context should be rapid and efficient. Software engineers rapidly adopted the agile approach, and embedding usability evaluations in an agile software development process provides timely feedback from users and results in intensive collaboration between usability experts and software developers.
The HCI and software engineering processes closely cooperate during the design and implementation of interactive systems and products.

Interactions and information exchanges between the processes
In an interesting study about a health-management system conducted in three stages to understand the role of iterative usability evaluation during agile development [2], they got the following diagram in where we can see that the usability experts play a significant role in the software development process. This role is to be the communication bridge among developers and users throughout the three iterations of this process.
the usability experts played significant roles
To better understand the role of iterative usability evaluation during agile development, we recently conducted a study - See more at: http://www.uxmatters.com/mt/archives/2014/08/the-role-of-iterative-usability-evaluation-in-agile-development-a-case-study.php#sthash.uz2joL1V.dpuf


iterative usability evaluations within an agile context should be rapid and efficient - See more at: http://www.uxmatters.com/mt/archives/2014/08/the-role-of-iterative-usability-evaluation-in-agile-development-a-case-study.php#sthash.uhnQiE9z.dpuf
iterative usability evaluations within an agile context should be rapid and efficient - See more at: http://www.uxmatters.com/mt/archives/2014/08/the-role-of-iterative-usability-evaluation-in-agile-development-a-case-study.php#sthash.uhnQiE9z.dpuf

Having seen the origin of this challenge, let's talk about the Usability Planner tool. The purpose of the tool is, once identified the necessary UCD activities in the phase (Analysis, Design or Evaluation, usual stages of a software project) where the user wants , then select the most appropriate methods based on the design and organizational context (constraints related to the software engineering approach affecting its final objective[time, budget]) and finally, you get the plan with the suggested methods, classified within a range, which can be personalized by yourself.
This tool is based on success factors for selecting the methods, instead of looking at the strengths and weaknesses of each method along with its cost.
1)
Select the phase and related activities
2)
Select the constraints
3)
Method range

--------------------------------------------------------

I think the tool works really well for what it was created. And as it is said feedback is welcome, I wanted to point:

Navigation: Only when you have started the tool, you can go to the other screens(Home, About, Feedback), but if you are in About or Feedback screen it is not possible to go to Home screen

Tool has started

About screen







Consistency: Another thing also is that in the home screen appears the names of the three creators of the tool, but in About and Feedback screen only two of them.


Home screen
About screen





These are not important points, just little things to change :)






[1] Buie, E., A., & Vallone, A. (1997). Integrating HCI engineering with software engineering: A call to a larger vision
[2] Yanfei Ma, Yunhui Lu, and Dinara Saparova, The Role of Iterative Usability Evaluation in Agile Development: A Case Study.

miércoles, 10 de junio de 2015

Usability evaluation


¿? Why, what, where and when to evaluate ¿?

This is a brief post about usability evaluation, task that we did this semester to evaluate our high-fidelity protoype.

WHY
Because we wanted to find the usability problems of our design we carried out a usability test in order that users can use the software and like it (in short "check users' requirements").

WHAT
In our case, an early prototype of the new system. Actually, the proto is not so early, since we did one previous paper prototype to this mock-up.

WHERE
In natural place, for us were the technical schools, ours and the participants. 

WHEN 
Throughout design of the software product.

All these questions due to the iterative design is a continuous process. From the beginning to the final product and beyond as finished products can be evaluated to gather useful information on upcoming new products.

Within the usability evaluation techniques, they can be classified into:
  • Analytical evaluation: Is a sability evaluation without users.
  • Usability testing: Is a evaluation with representative users.
    • Performance measurement
    • Thinking aloud protocol
    • Laboratory testing
    • Field testing
    • Wizard of Oz
    • Pluralistic walkthrough
    • Controlled experiments
We used the thinking aloud technique and we had the chance to find out first hand how our users(Chinese students) use the software product :)  as a result we got a  list of usability problems; quantitative data on time, eror and other performance measures; our recorded/written remarks; and participants' remarks gathered from questionnaires.
  • Follow-up studies of installed systems: It requires a system already working.
    • Focus groups
    • Automatic loggin
    • Surveys and interviews
Next post about integration of usability practices in software development ...

lunes, 8 de junio de 2015

Internationalization


In this post I am going to talk of addressing a global audience with your software developed. Following the guidelines for international design seen in class:
  • Be careful about using images that depict hand gestures or people.
  • Use generic icons. 
  • Choose colours that are not associated with national flags or political movements.
  • Ensure that the product supports different calendars, date formats, and time formats.
  • Ensure that the product supports different number formats, currencies, weights and measurement systems.
  • Ensure that the product supports international paper sizes, envelope sizes, and address formats.
  • Avoid integrating text in graphics as they cannot be translated easily.
  • Allow for text expansion when translated from English.
If you want to have a greater user diversity, you have to analyze some cultural aspects of your possible users, for example, the language. To research in the field of culture, it is advisable "the six dimensions of national culture" - Geert Hofstede research.
Develop a software application in a single language, Spanish for instance, may cause the loss of many potential non-Spanish speaking users. It is common that when looking for an application, the user makes the decision to acquire/purchase an application or another depending on whether it is compatible with his/her native language.

The process to make an international version of a software application, as far as language is concerned, is usually divided into the following two steps:
  • Internationalization: The process of introduce externally editable strings in the source code. In turn also it involves the use of certain format methods for dates, numbers, etc. This work is done by the developer himself.
  • Location: The process of editing these externalized strings for a given language. This work is usually done by a professional translator.
-------------------

And to finish this post, I want to show a sample of cultural differences regarding reading direction in the languages.


left_to_right
right_to_left

top_to_bottom


In the case top_to_bottom it can be written horizontally or vertically, so the example of the elements in the settings screen would be the same as in the case left_to_right. To be able to see a sample of the difference in the reading direction we have to see it in a text editor app.