Interaction Design for Users

If you followed my last blog posts or those by Oindrila or Magdalena, you could see how Artikulate evolved over the last nine months: We started with a simple “development UI”, meaning a quite arbitrary puzzle of buttons and lists at the screen. When features were implemented, also the UI started to reflect that by receiving more buttons, structure and complexity. In recent times we started to look at workflows and tried to model them in a best afford way. Our focus was on important workflows and interactions, where “important” was understood from our point of view as developers. — So we implicitly assumed that our users’ workflows match with our own ones.

Yet, this approach is wrong. When designing an application for a user, we should focus at his/her expectations (which are not necessarily ours).

Hence, we started to rethink our design process from scratch. Our goal is to first understand who our users are and what they want, before designing for them. For this we make use of a widely adopted technique to identify our user’s interactions with the program: We define personas and evaluating the personas’ interactions with the program. Here a persona is a character quite similar to a real human being. They are described in such detail that we are able to figure out how they interact with our program. So we can set as new focus for our interaction design that we want to fulfill the goals of our personas — and by doing so, we expect to meet the expectations of all of our target audience.

This work already started at last Akademy, where I presented a set of personas that in my opinion characterize our target user groups of language learning software in KDE Edu. Essentially these are:

  • Tina, a German Business Consultant: She travels a lot and has to use different languages at work. Her proficiency in languages is also connected to her career opportunities.
  • Gan, a just retired US American history teacher: He just figured out how much free time he has and he plans to use much of this time to make trips to different places in the world. But he does not want to be a typical tourist, he wants to be informed about the country and even to be able to express basic wishes and questions in the country’s language (like ordering food). Yet, besides English he only knows some words of French that he learned 30 years ago at school. Currently he is planning a trip to Spain.
  • Camille, a 14 years old French pupil, living in Paris: She has to learn English at school, and parents expect that from her. Improving her language skills essentially means the benefit of getting better grades. Though besides what her teacher gives her to learn, her ambitions are limited.

Of course one can think of more personas and also slightly different characteristics of these. But that is not the goal. These personas already embody the key characteristics of all of our (current) target users. So our task is now to design software that really fits the needs and goals of Tina, Gan, and Camille.

During the current Edu sprint (that happened the last six days in A Coruรฑa, Spain) we already walked through all of our KDE Edu language learning applications (especially, KLettres, KWordQuiz, Parley, Kiten, Artikulate) and discussed how happy our personas are with them and what they don’t like. What we found out were actually some interesting insights where workflows are unnecessarily hard or confusing and where functions where missing, especially at places where we never expected them beforehand… Specifically for Artikulate, I was quite surprised that actually none of our three personas wants to select courses or wants to download them. Rather they want to only select a language and start training their pronunciations for it, either by selecting a problematic sound our a scenario. But how the program provides a (especially if there is only one available) is not of interest for them. (This does not mean that we disallow selecting and downloading courses in the future, but we will put those options to a place where it does not complicates our personas’ workflows.)

For Artikulate we already started at the sprint to make quite drastic changes to the UI with the goal to satisfy Tina, Gan, and Camille. How that will look like will be visible in some weeks ๐Ÿ™‚

Second Artikulate Preview Release: 0.2.0

Today we announce the immediate availability of the next milestone in the Artikulate project (*): the new preview release Artikulate 0.2.0! This release contains all the goods done in the last months by our GSoC and OPW students and marks an important point on the road to a polished end-user software (though we are not there, yet ๐Ÿ˜‰

In a nutshell, the major improvements are:

  • The Training Mode is now available. Also some first (yet not completely finished) courses for Polish, Bengali, Greek and French exist. Courses can be downloaded on demand.
  • The Editor Mode received major refactorings and improvements and should be much more easier to use than three months ago.
  • After we learned our first lessons on creating courses, also our workflows and file formats were updated (changes are not downward-compatible!)

Please note that this release is still a preview release and we do not encourage distributions to ship it yet. Rather, this release is aimed to contributors (especially people who help us creating and recording the courses for all those different languages) and early testers. The first stable release that is targeted at end-users (hopefully) will happen around X-mas.

Compile Instructions:

Further information about the work on Artikulate can be found at

(*) Artikulate is a pronunciation trainer currently living in the KDE Edu playground. Our goal with Artikulate is to provide an application that helps language learners by improving their pronunciation skills. The way Artikulate works is to allow learners to record their own voice when pronouncing a phrase and compare this with recordings of a native speaker.

Training ModePS: And if you are interested in our small project and want to help, just write at the mailing list. (Available tasks range from creating an application icon, over coding tasks, writing documentation, to creating courses ๐Ÿ™‚