Archive for the project ‘kde’

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?

Wanted: Feedback on Kontact Mobile

Monday, November 8th, 2010 by Björn Balazs

We just have published a new version for Kontact Mobile on Maemo. I would like to encourage you to tell us how you like it.

Why should you try Kontact Mobile and give feedback?
Kontact Mobile is doing really well. It is a promising product, feature rich, free software, KDE and it is here to stay. But the current project of porting Kontact to the mobile world is – what it looks like now – only supported till the end of this year. So we really need your feedback now.  Next year we will not have the same power as now to let your wishes go into the project. So, please try it right away, spread the word and do not forget to

take part in our survey!

Let us K(DE)onquer the mobile world.

The Kontact Mobile Team is looking for Testers

Friday, October 29th, 2010 by Björn Balazs

Kontact Mobile is a free email and PIM client (calender, tasks, addresses, notes – also suitable as groupware front-end, e.g. for a Kolab server) for mobile phones. Using Qt allows us to have this software running on different platforms.

On the base of your tremendous feedback in the past we have worked hard on improving Kontact mobile even further.  At the moment Kontact Mobile is running well on Maemo – and Windows Mobile 6.5 is next on our list.

Feel free, test it and provide feedback!

Interested?

1. Download Kontact Mobile: Maemo (Nokia N900); Windows Mobile 6.5 (e.g. HTC Touch Pro 2)
2. Read our instructions and start testing
3. Give feedback until the 5th of November 2010 (anonymous – no registration needed)

This testing period will run for one week (ending Friday the 5th of November).

On the current state of Kontact Mobile for Maemo 5:

We have a solid beta version. Everything should be working, we are perhaps still a bit slow (working on that). And we really want to know how you feel about it!

On the current state of Kontact Mobile for Windows Mobile 6.5:

We have only been testing on HTC Touch Pro 2, but it should be working on other Windows Mobile 6.5 phones as well. Everything seems to be running – although it can be slow, so please be patient. We also know of occasional crashes – but without loosing data or doing greater harm than having to restart the device. If you encounter bugs, please report them. We will try to provide a newer and better version as soon as possible. We will announce availability of new packages here.

More info on the project:

The foundation of this project is the Kontact PIM suite. Kontact is an excellent team player with the Kolab Groupware server and has been developed within the KDE project. It has proven stability and reliability for years. We are now porting this suite to a couple of mobile platforms. The project is free software. So we invite you to give us your opinion on the state we have reached in order to make this piece of free software even better. If you like to get up-to-date information, please join our mailinglist.

Thanks a lot for your contribution!

Kontact mobile – new beta out for public testing

Sunday, August 29th, 2010 by Björn Balazs

Kontact Mobile is developing very fast at the moment! Now we are happy to have reached the next beta-version that we really would like you to give us feedback on.

I would like to take the opportunity to say thank you to all of you that volunteered in our last diary survey. Your feedback was very valuable – keep the spirit up!

What do we have at the moment?

  • Kontact Mobile is running on Maemo on the N900. Soon there will also be a version for HTC Touch Pro 2.
  • It provides email, calendar, ToDos, addresses and notes. You can sync with a Kolab-Server and handle imap resources.
  • The application is technically stable (it relies on most parts on the code for the desktop, so it should be save to use it with real data – I do it too).
  • Most basic navigational issues from last test have improved a lot and we added lots of functionality to all of the applications (not-yet-implemented functionality is marked red)
  • On the downside: The application is still pretty slow, esp. during initialisation. Please be patient. Also there are some configuration dialogues that are still pretty ugly (if you find one, please report it to bugs.kde.org) and last but not least we are still missing mass-actions (e.g. move several mails). We are aware of this and promise to improve this further!

How can you help us?

For discussion and support we have set up two mailing lists. For the more technical issues please join the Kontact Mobile list and for issues concerning the actual use, please join the Kontact Mobile Users list.

When did you last keep a diary? Kontact Mobile is asking you to share your experience…

Monday, August 2nd, 2010 by Björn Balazs

If you own a N900 phone and have tested or want to test Kontact Mobile it would be great if you participate in our current user survey- a diary.

Kontact Mobile has been under heavy development for the last weeks and however it is still at an early stage we encourage everybody to contribute and to become part of the process!

You can find all information concerning the testing in this mail:
http://mail.kde.org/pipermail/kde-mobile-users/2010-August/000027.html

You will do real pioneer work with reporting what you liked and didn’t like as well as your ideas on usability and interaction design. This will help the developer team to create a great user experience for Kontact Mobile in future. Help us to shape this great product!

Don’t forget: Open Source meets Usability on Berlin LinuxTag tomorrow

Thursday, June 10th, 2010 by Björn Balazs

As a reminder for all who are interested in Usability and Open Source – and are at the LinuxTag tomorrow. We will have a very informal meeting from 9 to 12 am in Hall 7, 1a,  Workshop Room “New York 2″.

You are very welcome to just drop in if you like!

Kontact goes mobile – and you can help to make it feel great!

Tuesday, June 8th, 2010 by Björn Balazs

We are very happy to work together with KDAB, Intevation and G10Code on a project to make Kontact available on mobile phones.  This is great as there is no really good mobile mail client around and as it is important for free software to offer such a crucial part of the mobile software infrastructure…

As always it is our task to make sure that the product in the end will be stunning and usable and as always we need your help to get there!

Now we are looking for people that are intersted in building up a testing and feedback community for this project. This community will be integrated into the further development and will help us by this to make the mobile version of Kontact rock!

It would be helpful if you own a N900, because there will be packages for this device available really soon – but there is no need to have one. We also look for people that will give us feedback on their personal needs and wants concerning the mobile use of a PIM suit.

What can you do next?

I will be around at Linuxtag as well – and will be happy to meet you!

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

Results of KMail Icon Test #2

Wednesday, January 20th, 2010 by Björn Balazs

Today I closed the 2nd KMail icon test. This time 1945 people took part. Much less people than the last time, but also the drop-out was much less than last time.

So here are some basic statistics:

  • Selected language: English: 1002, German: 476, Spanish: 334, Italian: 76, Polish: 57
  • Gender: Male: 99%, Female: 1%
  • Average Age: 28,6 years (from 11 to 93)
  • Most of the participants are strong KDE users. More than 80% use KDE very frequently. Next is Windows (TM) with more than 25% of frequent users, GNome with about 10% and Mac OS (TM) with about 7%.
  • The participants are almost half split in their use of KMail, more than 50% use KMail frequently and about 30% say they never use KMail (the rest in somewhere in between).

In this test we included the icons of two elements of KMail: The icons used in the window and in the message menu of the composer window. These are icons of different size in the standard configuration of KDE, so we presented the icons in the according size and used the KUbuntu translations of the terms associated with them. The overall findings are very good. Most icon-term-relations seem to work out fine. We did not find find any explicitly not working relations, but some still show the potential for improvement.

Icon-Term relations working really well

The following icon-term relations seem to work well. (more…)