Archive for the project ‘Personal things’

2012 – A good year for the user experience of Free Software?

Thursday, February 2nd, 2012 by Björn Balazs

I haven’t been blogging for a long time. To give you some short reason for that: After almost 6 years I have decided to leave Apliki, the company I once co-founded. This process was a little time-consuming but is finished now.

Why could that be of interest for you?

  • I will be much more engaged in the usability of Free Software projects in future.
    Next to the work I have been doing and will continue to do for Tine 2.0, I already teamed up much closer with the KDE and the LibreOffice community. And I am actually still looking for more challenging projects from the Free Software World.
  • I will try to re-animate OpenUsability.org.
    I care a lot about this initiative. It tries to accomplish two things: First it helps to provide Usability Competence to Free Software projects. Secondly it tries to make process and work done in usability more transparent, so more people can benefit from it. Sad enough, this project is basically dead at the moment, but I want to work to re-animate it again (And you are happily invited to help re-building the structures we need to fulfill our duty!).
  • I will free a software for user integration.
    Over the years at my old company, we have been developing a web based tool that helps to integrate users into the development process of software. I am currently working to release this software under the aGPL (Again, you are happily invited to join and support me in this effort).
So whether you
  • have a special project and want to improve its user experience or
  • would like to help building up structures to make usability work better for free software projects in general or
  • are interested in supporting a free software project with your usability skills, but have no clue how to start:
Simply drop me a line (b [at] lazs [dot] de) or talk to me directly at FOSDEM.
2012 will definitely be a good year for Usability and User Experience of Free Software! Join to make it even better!

Designer vs. Developer? A FLOSS perspective.

Friday, March 18th, 2011 by Björn Balazs

The relationship of developers and designers is full of misunderstandings. Projects fail, e. g. due to the struggle among different views on the same subject. Communication can be frustrating for both sides. But there is hope. In this article I want to share and discuss factors that facilitate a ‘Designer with Developer’ rather than a ‘Designer vs. Developer’ in FLOSS projects.

Background

You need to know that I am a psychologist. I see myself rather as a designer than a developer, because I do not actually write code. But I also do not do graphic-design. My approach to design is not to create pretty pictures – it is to understand people and design solutions for their needs.

My company Apliki is intentionally called “Psychological IT Consultancy”. In our work we build the necessary foundations for projects and bridge the gap among the different worlds in a project (developer and designer are not the only relevant groups in a project – e. g. understanding the user is another central part of our work). In my non-commercial FLOSS work for OpenUsability.org I do the same. After more than ten years in the business I have worked with very different people and projects.

Recently there have been some discussions on the LibreOffice Design mailing list about the rights and duties of developers and designers. I actually do not want to contribute anything specific to this discussion. It is already valuable and fruitful but sometimes I need external impulses to do something I wanted to do for a long time: share my experiences about factors that facilitate good cooperation in projects especially from the design perspective and hence lead to successful and satisfying projects.

So here we go:

1. Respect

Successful projects are based on respect between developers and designers. They show respect by taking time to talk to one another and explain their ideas.

Often designers will say something like: “This solution has the better usability”. Developers tend to answer: “But it is too expensive to code”. This kind of conversation is the best starting point to build up an oppositional feeling in a project  – and I have seen many good ideas failing this way.

My grandfather sometimes says: “You didn’t experience war so you cannot understand it”. This always upsets me. I do understand a lot of things, but my dialogue partner needs to take the time to explain them to me. Taking time shows respect and helps establishing mutual trust.

2. Reasons

In a successful project developers and designers explain why something is better or more expensive, and take the time needed to address the objections of one another.

Giving a good reason is not easy. Neither hierarchical position (or the FLOSS equivalent ‘length of contribution to the project’) nor a vote (“5 out of 8 think this is good”) are good reasons. In Non-Free projects they are more likely to be accepted, but in FLOSS projects most people invest free time.  There is a psychological concept called cognitive dissonance. It helps to understand why people volunteering in FLOSS projects need not only good, but excellent reasons to continue with their involvement (Because they have to self-justify their involvement all the time).

The worst, but still often heard reason is, of course, extortion: “If you do not accept this, I will stop my contribution”. The fact that it is still heard quite often, shows how tiring it is to discuss the relevant issues. Especially in FLOSS projects, where non-native speaker discuss mainly via mail, chat or the like.

3. Foundations

In successful projects design is understood as an engineering discipline, with a common and clearly articulated set of values for all relevant parameters. This sets the frame for the optimization of interfaces.

To be able to address objections, a team needs a common understanding. In my experience, developers are much more sophisticated in this matter than designers. Programmers tend to make fundamental decisions very early. They agree on technical frameworks, architecture of the software, code repositories and so on. This allows them to provide good reasons why, for example, something is expensive to do. This usually leads to the situation that different developers will provide similar answers for a question (as long as this question is technical).

The situation in design could not be any more different from that. Discussions occur about even the smallest issues. This is partially due to everyone being an expert when it comes to using things (see Parkinson’s Law of Triviality for some interesting thoughts on that). But the main reason is that the common ground is missing.

Interface design is often misunderstood as an art. While it definitely has artistic aspects, it mainly stays an engineering discipline. Unfortunately most people working on interfaces think they are doing arts. The problem is immediately evident: Art may be interpreted, but never needs to be justified. And this is where the arts approach to interfaces almost surely fails. If various people work on the same interface, they will need to justify what they do, convince others why their ideas are so great and so on. The more people, with a variety of backgrounds, are involved into this process the more problems will occur.

The only solution is to focus on the engineering aspects of interface design. Engineering is the opposite of art. All it does is:

  1. Find out all the parameters that are relevant,
  2. try to find reasonable values for them, and
  3. iteratively optimize the solution within the given parameters.

This looks like a very boring approach for most people working in design, and it is hence very hard to establish. In the end it is the only way to lay the foundations on top of which problems can be solved. Additionally it is very close to the developer’s thinking and eases communication among different parties.

4. Trust

In successful projects an aura of trust allows new ideas and new people to grow to the benefit of the project.

Once the foundation for the design work is laid, the team can start to build up trust. Development teams rely on code reviews. Good development teams only check whether the code complies with the common foundations. Even though the more experienced developer will sometimes know more elegant ways of solving a problem, generally any improvement will be accepted. The team shows the trust that  all members will learn and accept that they are not perfect yet. They accept that the product is always “in process”.

Again, design teams tend to miss this generosity. As a result of missing explicit foundations, details are discussed in great depth involving a large group of people. Also these discussions often try to find the ultimate, all-time-end-of-discussion solution for a problem (that has not been described in full detail). These discussions can be frustrating, especially for willing new design contributors.

Since usually some sort of interface already exists, an implicit agreement on the foundation exists as well. New contributors therefore either do marginal work or will most likely fail with anything more ambitious. Both ways do not facilitate to build up trust in the new members. The old ones feel responsible for everything. New ideas and fresh personnel has a hard way to get into the project.

5. Communication

In successful projects communication is well structured, facilitates work and does not prevent it.

A potential lack of trust inevitably leads to extended communication. In FLOSS and therefore often voluntary projects people do not find the time to work anymore, because they are stuck in administrative issues (following the different discussions). This is frustrating and will lead to people leaving the project (see concept of cognitive dissonance above).

Also developers are not willing to participate in the debate, or even look at the discussions, because they indeed have better things to do. The gap between design and development increases.

Additionally we should not forget that developers and designers speak different languages. Developers talk about technical issues sometimes with the same words, designer use for describing interactions. Add the fact that people contributing often do not use their mother tongue and the communication chaos is perfect. Astonishing for a psychologist to say, but talking about it is not always the best solution.

6. Facts

In successful FLOSS projects all contributions are welcome (they may be rejected though) and discussion always takes place on the current objective, not on what single people did.

To reduce communication it will be necessary to accept facts. FLOSS development evolves gradually and not always in the shortest linear way. Sometimes things even get worse. This is not really a problem, as such things will get corrected after a while. These faulty developments can also help to clarify the foundations or to show how conclusions can be drawn on them.

It should not be subject of any discussion when someone has done something. Remember, people are spending their spare time. If they have to justify that they have done something they are likely to leave the project (did I mention cognitive dissonance before?). And what is worse? A wrong turn in the project or the loss of a motivated contributor?

7. Structure

In successful projects structure facilitates the cooperation of different disciplines.

The acceptance of facts is a non-commercial FLOSS-only approach. In every commercial project the opposite is true, because in commercial project structures are more natural. FLOSS projects tend to refuse structure with reference to the bazaar. But even on a bazaar not everyone trades everything and there are rules and structure.

Structure prevents turning facts into the wrong direction in the first place. Design has to provide a structure in two ways:

  1. Contact and support for developers willing to work on a certain topic, and
  2. a road map of topics the design team considers urgent.

If this structure is provided, development does not need to follow the design team very closely. Points of contact are clearly defined and help getting the work done.

Closing words

Design in FLOSS projects still is in its childhood. Unlike in development, structure is often seen as an opponent to or a restriction of freedom. The opposite is true.

Structure is a necessary enabler of freedom. It enables people to decide into which project they will invest their time. It enables consistency, the prerequisite of any usable or even desirable product. So do not waste your time in discussions about problems – invest it into discussions about a suitable structure for your project.

What do you think? Do you agree to my point of view? Let me know in the comments below.

Universal Design and Free Software

Monday, December 6th, 2010 by Björn Balazs

A couple of days ago I visited an expert´s forum concerning Universal Design:

Universal Design is the design of products and environments to be usable by all people, to the greatest extent possible, without the need for adaptation or specialized design.” (Ronald L. Mace, 1988)

Thinking about this definition of Universal Design, I have two critical points to make: Who is meant by all people? And why is no need for adaptation a goal at all?

In the first place I regret the fact that the debate was dominated by speeches NOT referring to ALL people at all! Organized by the German Family Ministry it focused on generation fairness rather than the UNIVERSAL aspect of Universal Design.

By far the best contribution at this event was made by Peter Glaser – regarding him as an excellent speaker and a bright mind, I should pay more attention to him in future: He was about the only one there to understand that a UNIVERSAL claim cannot be limited to elderly or disabled people here in Germany or other first world countries – UNIVERSAL needs to imply ALL people on our planet.

If I understand the idea behind Universal Design correctly, I think it is one of the most important ideas around: Do not discriminate against any people anywhere in the world by means of technology, products or services.

But with my personal (free-) software-specific view on design I am puzzled about the rejection of adaptations in the definition by Ronald L. Mace.

I am convinced that the exact opposite is true. To me GOOD Design makes it extremely easy to adapt a product to the special needs of the user(s). This believe is one impulse behind my commitment for free software. The mechanisms of free software encourage people to derive special solutions for their needs on the basis of developed technology standards.

Some examples:

  • The GNU Linux kernel is an example for a good software design. Based on it there are heaps of derivatives for special needs.
  • The KDE desktop exists in a ‘normal’ and a ‘netbook’ variant – more hopefully to come.
  • There are many different variants of a single underlying GNU Linux distribution, e.g. Ubuntu, KUbuntu, Edubuntu, Mythbuntu, etc.
  • Kontact as a PIM-suite originally designed for the KDE desktop is being adapted to a mobile use-case in the ‘Kontact Touch’ project.

Do you have any other examples?

To sum it up: I believe free software is a good – if not the best – approach to achieve the noble goal of creating non-discriminating technology for all, or Universal Design. We are on a good path, even though it is still too complicated to actually do the needed adaptions today, especially if you are not a software-developer. We can still do better.

Shouldn`t we always keep that in our minds, when we create free software?

Usability meets Open Source on Berlin LinuxTag

Wednesday, June 2nd, 2010 by Björn Balazs

LinuxTag 2010, anybody?

We invite you to take part in an informal meeting to share thoughts, experiences and other information covering the topics Usability and User Experience in the Free Software world. The meeting is organized by Björn from OpenUsability.org and Christoph from the OpenOffice.org User Experience Team.

You should join if you are interested in:

  • Integrating User Centered Development into the development of your FOSS project
  • Wanting to add your UX expertize to a FOSS project
  • Wondering how to take benefits out of community work with real users
  • Some usability tips for your FOSS project

We are looking forward to see you at LinuxTag in Berlin, Germany!

Go ahead and find more information on the Informal Meeting Wiki page.

Cheers,
Björn

Do we need A Centralized, State-of-the-Art Open Source Usability Lab? Or: Myths about Usability in Open Source…

Saturday, July 11th, 2009 by Björn Balazs

Today I found an article by Sam Dean who asks for a Centralized, State-of-the-Art Open Source Usability Lab. He refers to a cnet article by Matt Asay in which he postulates what Open Source can learn from Apple. Both articles point out that there is need for a shifting view in Open Source. Open Source needs to be more user-driven and less developer-centric – in other words there is a need for usability in Open Source work.

Well, there are good and bad news for both of them:
It is not as easy as they think but we have already come much further than they think!

To explain this I would like to clarify some myths on Open Source Usability:

Usability plays no role in Open Source development.

The OpenUsability.org initiative has provided Usability guidance to hundreds of Open Source projects for more than 5 years. We have worked with various  projects from big ones like Wikipedia or KDE to very small ones. Many projects have developed their own Usability-Community like the OpenOffice Renaissance or the KDE Usability project. Celeste Paul – one of the members of OpenUsability and KDE Usability – has just recently been elected into the KDE e.V. board.

So there is a community willing to assist Open Source projects on the user front and their work is been widely accepted.

Additionally our service, the OpenSource Usability Labs,  provides professional usability support to commercial Open-Source projects and traditional usability companys have detected Open-Source as a market by now.

Commercial Software always has a better Usability than Open Source Software.

First of all: the quality in commercial software varies as much as in open source. There are products with excellent usability around and there is just the opposite. In both cases the bad products die sooner or later.

So what we need to think about is: “What is possible for Usability in Open Source development?”

There are numerous Open Source projects around that provide excellent usability. Firefox challenges the Microsoft Internet Explorer. Think of projects like gallery, KDE4 or Tine2.0. All have undergone rewrites in order to enhance their usability and all have proven to be successful in relation to the age of the project.

So there is prove that Open Source projects are capable of a really good user experience.

Open-source software ends up being written for other developers.

This argument used to be true. Back in those good old days Open Source was successful, because developers could directly influence and change the software. If the software did not match their needs, they simply took the code and changed whatever they did not like. Projects split up, died, new ones were started – they evoluted. And by this they also evoluted a perfect usability – perfect for software developers which happened to be the main target group. In other words: those products evoluted perfect usability.

Nowadays that the user-base shifts, the goals in development differentiate. Projects that need to be used by average Joes and Janes build up user-feedback channels, integrate usability experts into the development and do regular user testing. They get designed for the average Joes and Janes.

Usability is a matter of a centralized lab.

This is actually not a special Open Source myth, but it is nevertheless wrong. Good usability can only be reached through a user-centric development process. A lab can be very handy during this process, but it is not the backbone. Usability experts need to be tightly integrated into the processes – from the definition of requirements, the evaluation of user goal, setting the information architecture to actually testing the products.

This is possible even in those distributed  and self-motivated development-teams you usually find in Open-Source projects. By tying it all into a single, centralized lab, as Sam Dean suggests, you would loose the strengths of this distributed development – just think of the requirements arising from different cultural needs.

Even more: Open-Source software is much more capable to integrate their users then a single lab would allow. Our experience is that Open-Source user are very willing to give feedback to the developers. While customers of commercial projects often ask: “What do I get, when I contribute?”, Open-Source users feel it is a good chance to say “Thank you” to the developers for providing a great piece of software.

By collaborating via the Internet it is not only a dream to activate this potential – it is reality. For example, we have just started an Icon Usability-Test for the new Oxygen k3b-Icons and we got more then 2000 participants within just 2 days.

Summing it up

The evolutionary process that stands behind Open Source development has already adopted to the idea of user centric development. Just as it will adopt to any other upcoming need in software development. And Usability on the other hand has started to understand the needs and the potentials of the Open Source idea, and makes great advances in activating them for the good of the projects.

For sure we are just at the beginning of a long journey. But we are already on the road. Articles like the ones from Sam and Matt show the increasing public demand for more usable Open Source products. I am sure the community notices these signals and will just speed up. The foundations are being laid…

Season of Usability 2009 looking for students

Monday, April 27th, 2009 by Björn Balazs

Good news for all students of usability, user-interface design, interaction design,…: The initiative Open Usability has started the call for participation for the Season of Usability 2009 (a very big THANK YOU to Celeste for organizing and finding sponsors!!!).

The Season of Usability provides students the opportunity to practice what they have learned in university on a real Free/Libre/Open-source software project. The list of projects this year is great again:

Of course I will again work as a usability-mentor for the SoU 2009. This year I am mentor for the Gallery project. This project is interested in learning more about its users. Project activities will include user research activities such as surveys, interviews, creating user groups and personas, and competitive analysis.

I will be really enjoying this job, as we have worked hard on our survey-platform Icon Test and the connected questionnaire methods. They will be of great use for the student and the gallery project.

Are any of those projects interesting for you? Then don’t hesitate to apply.

Disapointed about Adept 3 – first impressions

Saturday, October 25th, 2008 by Björn Balazs

Today I did an update of my mythbuntu media PC to intrepid. I don’t want to update my working computer, but I was very curious because of the new features of Kubuntu intrepid. Along with other improvements you can read there:

“A new desktop needs a new package manager, Adept 3 fulfills that need.”

The first time I read this, I thought: “Wow, they have seen that Adept 2 was not working well – they have done it better now!”. But after testing it today I must conclude, it is new. But that is about the only positive thing to say about it.

Ok, I try to be fair, because I know how difficult it is to create a really good interface. And, hey the first glance of it is pretty good, I like the accordeon-style and I am great fan of interactions working with a filter-list-approach. It looks a little unfinished. This is ok however, as mornfall states in his blog that Adept 3 is still beta.

But as soon as I started interacting with the gui, the problems began.

Where in Adept 2 I could easily filter packages I now had to interact with icons of unclear meaning. While I was totally confused about what I saw, I decided to first adjust my repositories. Luckily this dialogue stayed basically the same as in the version before. While the package-list was refreshed the screen started bouncing, because progress kept bars pop-up and down. I saw that retrieval of some of my repositories failed. But I could see which ones, because the output just kept running – and disappeared from this as soon as all repositories we up to date.

So now I wanted to check what was installed, what has to be updated or removed and take the appropriate action. But Adept really made it hard for me. Entering a filter-string brought up an alphabetical list of all packages that were somehow related to the string I was entering. So entering “myth”, lets you scroll through all packages from “a” to “m” to finally check the state of some core mythtv packages.

When I want to remove a package, I have to first find it in the list, then open it in the list and then – finally check a box. This is at least one more step then in Adept 2. Multiple selection and manipulation of packages seems to be missing…

As I said, this written under my first impressions of Adept 3. Perhaps I will be more gracious once I have used it a while. But I am personally disappointed about the state Adept is in – especially compared to existing package-gui solutions (e.g. the gentoo portage-GUI kuroo, whose development I was allowed participate) and to the state it in was before. This does not mean I thought Adept 2 was a good program. It was the best for KDE and I had to make peace with it. But creating Adept 3 and loosing from low level seems to me incomprehensible.

I hope that a central project, as it is Adept for Kubuntu, is willing to accept support. There are many opportunities for willing OpenSource Projects:

And as I have worked a lot on concepts for package management in the kuroo project, I would be delighted to contribute to the Adept project as well.

Now I go back to my media PC and hope that Kubuntu intrepid is a little more, than only new.