10 things I learned contributing on BabelZilla project
> my point is : share simple observations on what makes a contributors’ community succeed or not, and have your feedback since you are all community leaders ore active members on various levels. I don’t pretend to deliver new solutions, just want to share questions.
1. Give them the tools, they build a cathedral
The first thing that comes to my mind when thinking of BabelZilla is the huge initial disproportion between
– the simple tool we have put online : it is but an online translation system after all, though it has grown with various features since 3 years, the basic idea gained almost instant success.
– and the tremendous work contributors from all over the world made out of it (currently we host more than 700 extensions and 80 languages have active translators.)
What it proves I think is: there is a very strong desire to contribute on this kind of project, and if people are not provided with adequate tools, this potential energy may be lost for the community.
The key is : the tool we provide to the contributors must be at contributor’s level,
which is supposed to be : not higher than the technical level of an advanced user. BabelZilla translators are sometimes real nerds, sometimes developers, but most of the time they are just translators willing to contribute with what they know best, that is :Â« language Â», most of them don’t care much with
Same thing can be said about Narro, which is a very smart tool. I like narro very much, Alexandru has implemented smart features that we have not on BabelZilla to ease translator’s work. The difference that still makes BabelZilla a good place to be is that our Web Translation System is closely linked to a site with forums where translators and developers can communicate easily.
Here I am glad to quote one bit from Alexandru, the guy who created narro :
Â« Narro really lowers the entry barrier to the software translation world by using a simple, intuitive interface Â»
I do share this view of making contributions as easy as possible. The simple idea I come to is : if we want more numerous Mozilla contributors, they must be given access to efficient tools on one click.
Let me rephrase it this way: where are the mainstream-level tools Mozilla offers to potential contributors?
2. A virtual community is just a virtual community
BabelZilla is not completely the marvellous community it should be. Of course we have various bugs on our system (as an admin I am the main bug really), but the main problem is: the awesome community of translators is not here to stay long, and is never big enough to make permanent teams. We have a a quick turnover that makes maintaining translations rather difficult sometimes.
We cannot blame young contributing people to have various changing interests, from going to the movies with girlfriend to getting a real job for a living.
So we have sometimes problems like this one
This translator friends has no time left now to maintain his long list of translations. Who can take them over ?
Note that he has been contributing for 3 years, we also have contributors for one month only.
Hence these questions
– what could be done to try and get more stable and more permanent contributors ? On Babelzilla, apart from a user status promotion to moderator or admin, we have very few to offer. We have not even Tshirts to offer to major contributors, as opposed to Mozilla community organizing events with beer flowing.
My questions : What is your response as community leaders to the problem of transient contributors ? How do you make them permanent contributors ?
3. All you need is teams
Let’s suppose we have great simple tools and a stable dedicated community.
Now every community on BabelZilla is not at the same level of commitment.
Some are numerous and organized, this is the case for German erweiterungen team for instance, others would like very much to be organized as teams but are almost all by themselves, this is the case for the Greek main contributor. Our friend George Fiotakis, who is also indulging in translation of Mozilla apps and sumo pages.
I rememeber when in Barcelona Seth asked to various l10n communities to introduce themselves, a certain number of them were a two-people team only. This is clearly an issue for me. I know that at some top-level of contribution, responsabilities can only go to one or two persons in charge. But these dedicated individuals are likely to be overheating with work.
I remember before annoying the French mozilla people with my repeated bug reports, I did not know how they worked nor how many they were. I figured out there was a big team of 30 guys managing with translation and support and spreading the good message… What I discovered is that the orchestra may be a one-man-band. Sure French Mozilla has perhaps 30 contributors and probably more, but really active ones are less. And all in all, there is only one guy (Cedric) who does all the major job on localization.
What happens if one guy is suddenly not available when there is a major release to push ? (let’s suppose Cedric broke his dsl box or rain is falling in his kitchen as it frequently happens). Is there sufficient human ressource to get the job done ? I will say yes for the French Team, probably, but I am curious to know how the other teams organize to share the work.
My question for this point is:
How is the balance in your teams between people who are really in charge and people who can take over responsabilities in case it is necessary ?
4. Quality is an ever pending question
On BabelZilla we strongly recommend double-check testing and proofreading. We wish no translation is set as released before being reviewed by some other guy than its main translator.
But as registration is free, we have no real control on whatever can be translated for more so many languages. So we must to a certain extend be confident and cross our fingers.
On Babelzilla French team we have the habit of mutual proofreading on a dedicated forum.
What is slightly a relief is when someone rings the bell with Â« hey I am a trained Russian translator and I can tell you that translation for that extension is reallly poor google automatic translation, please register me as main translator for it so that I make it a decent one Â».
So when there is a significant number of people per language most of the problems can be solved before public release.
Anyway, errors and typos happen, all the time, whatever double-check you manage to process. Last year I have been reporting about a hundred valid bugs on French translation of Mozilla apps, though the translation is excellent, Cedric is really a very good translator, very demanding with himself, but he is doomed to make errors, though minor, as everyone of us. All we can do is try and limit the number of imperfections.
Testing, proofreading, setting a dedicated bugzilla, again all the tools must be there but they are of no use if there is no human. I know you are running ophisticated tools such as litmus, windmill, whatever… How many people are really active on testing Mozilla products in your community ?
5. Guidance of newcomers should be a full-time job
Here I come to a problem I have noticed both on BabelZilla and Frenchmoz. My main line is still : how to increase the number or active contributors in our community ?
Let’s say there are two very different groups in a contributor’s community
one is a very limited number of trained contributors, people with experience and know-how and high level of involvment
the other is a pretty large number of volunteers eager to do anything for the community
– the gap between the two groups is too important, you can ask an enthousiast newcomer to translate a paragraph or two in a sumo page, but you cannot tell him to push a patch in a mercurial stuff.
– the time and energy of contributors of the first group are completely absorbed by the good work they do. Guys like Cedric, even though he is open to questions, has definitely not time enough to guide a newbie and make a real effective contributor out of him/her.
The obvious solution should be to have an intermediate group of people completely dedicated to initiation and guidance of newcomers, let’s call them tutors (?)
Of course, I supose it is pretty difficult to find out tutors that would have
– knowledge enough to be peers of the first group
– patience and time enough to help new contributors
My idea is : if we want more active contributors, some people must clear the way for them.
My questions are : Do you think of guidance as a real mission? Have you this kind of guiding people in your community? How could they be found out?
6. Early users are final users
One interesting side effect I discovered on BabelZilla is that translators are not just translators. They are interested in what they translate and most of the time they do test the extensions and report what they notice, ranging from Â« this dialog window should be resizeable to let my language be fully displayed Â» to Â« you
should add this feature, it would be cool Â», or Â« I clicked the icon on statusbar in vain. Does not work for me Â». They are so to say the early final users for extensions, and I know they are valuable support for extension developers.
So I wonder if there could not be something valuable to be taken from early users as first mainstream testers.
I know that in every community there is a a certain amount of people
who like to test an test again new products or features, they are keen on nightly builds and have fun with pre-release and the kind. But are they numerous enough ? How can we make the early users basis much larger ?
I don’t speak here of experienced geeks that can open a bug and submit a patch, and take their pizzas while performing a litmus test, I am speaking of your grandma.
Let’s suppose everything is checked ok on code and running fine. There is still a huge feedback to grasp for Mozilla.
For instance let’s test how the interface is used, let’s hear what people say when they do not find the awesome bar so awsesome, when they are confused at the idea of geolocation, when they don’t feel like using words typed on a keyboard , when they cannot find their bookmarks any longer, when they simply don’t understand the fucking certificate manager and so on.
Testing code is coder’s job, testing user interface should be user’s one.
And don’t tell me it is enough for end-users to click on a button to fill the metrics. How could Mozilla communities be empowered with feedback from mainstream users?
7. There is no codehacking and localization, there is development
In the field of extension development, there are still strong resistance to the idea of early and complete localization, and I am proud to be the guy who sucks, having sent many messages to extension developers so that they add locale support to their extensions, and in many an occasion just sending them a version with added locale support.
Last year we have been having an interesting experience with Komodo editor. Davide Ficano proposed to make locale versions, and we began this huge work, to discover gradually that a huge amount of strings
Just another example : the winner of the Extend Firefox Contest for 2008 was Pencil, a very good extension. But this valuable extension is currently released without any locale support. All the interface is hardcoded, English-only. I don’t understand how this extension was the winner if the idea of the contest is to use innovative extensions as promotion tools for Firefox.
The new jetpack extensions that helps to make a new style of extensions without xul is pushing interface strings in html. That is no good because it is not easily localizable. Jetpack devlopment team should manage right now with the problem of localization, unless the whole thing is due to fail, just like the progress of Ubiquity is really slowed down because localization problem was no taken in consideration right from conception, and now it is a pain in the ass.
I am aware developers minds cannot be changed in a minute, and in their
minds development of code is high priority, but I would still advocate for early localization of any software product. Development should be one, and include localization from scratch.
8. Sharing knowledge is good, sharing mistakes maybe even better.
My experience on BabelZilla is rather funny. Giuliano here maybe remembers that I was given admin status at the very beginning though I had not the least technical knowledge, I hardly knew what moderating a forum was. So I discovered the few I know just doing it month after month. Now that I can draw some conclusions of this experience, I realize that I was unable to learn by imitation (which is my usual way of learning) because what we were doing was new to some extend. So I indulged myself on learning with error / correction process. I found it was maybe a good idea to be proud of one’s mistakes, so I opensourced my list of Goofymistakes, in the idea of
making newcomers at ease with problems. They may see what a goofy guy I am and say : well after all, it is no problem if I make mistakes myself, let’s go ahead. We have people who have a sort of complex, who would never move unless they are sure they do the right thing. I want these people to relax.
making people aware that errors are nothing, correction is crucial. This applies to language spelling, to codehacking as well I suppose.
My question/suggestion is: why could not we guide people into Mozilla products with an addition to already existing guidelines that would be: enter some keywords describing your problem in this searchbox and dig into the huge database of Mozilla users mistakes/probs/errors with the way to cope with them.
Or even better: end-users should be invited to tell what is going wrong in their own natural language, put that in the searchbox and expect significant results.
That is exactly what I am doing when I have a problem with my Ubuntu. I google a short sentence and get Ubuntu users fourms answers to my problems. On the French side we have geckozone forums, but I think there is a need for automatic answers to common problems, the task of Mozilla contributors on the forums would be less important.
9. Funny things should be done seriously and serious things…
Though I still find translation of extensions a funny game, I tend to think now extensions are serious stuff. Even amateur ones are very significant.
Extensions are the way people customize their Mozilla software.
So what I would say to extension developers is: you are not bringing code to the users, you are giving them acccess to a personal experience. Therefore, be careful and communicate.
A great number of extensions are simply missing this point, so they are useless. They lack documentation dramatically. Extensions should be really more user-friendly. Extensions have rarely a Help page, rarely an howto page, the interface is not always explicit enough, and when messages exist, they can be very cryptic to the final user.
My proposition is: let’s tell the developers they should learn how to communicate in a natural language (technolang is not). A user-friendly app is a well-documented one.
AMO reviewers should be more harsh on poor interface. When you have installed an extension and you must find out how and where to trigger it, it is no good.
10. Localization matters. All over.
I know you are all convinced of that, and most dedicated to this cause. We also know it is still a long way to go.
On BabelZilla I also have learned that localization matters even though you are at the far-end of the globe. We have seen sometimes translators localizing for languages that were not yet officially released for the main apps tehmselves. This is the hint of a strong desire to have control on one’s application in one’s language.
Some propositions to make a global world of extensions more localized:
have it as a rule for amo reviewers that a minimum en-US subfolder is highly recommended Â« No extension released without localization please! Â»
have the possibility for translors to directly suggest metadata on amo extension page (as recently discussed with Cedric)
Each time a new language for Firefox is available, a set of the ten most popular extensions should be available for this language too. Extensions should be promoted on the very download page more explicitly.