Home > Developer Thoughts > The Best and the Worst of the Maemo Community

The Best and the Worst of the Maemo Community

by: DJC

As many of you are aware I (and in a larger capacity), CII have an interest in bringing some of our applications to mobile platforms. We had some success several years ago with J2ME developed apps and would like to continue in the ‘write once – run anywhere’ approach towards portability. We have decided to start with the Maemo/MeeGo platform (Nokia N900) and QT seems to be a natural fit for this.

When deciding to develop applications, several scenarios must be considered. Do you write your applications following a free (as in FOSS) methodology? Do you look to profit from your work? Do you distribute no-cost closed source applications? The Maemo/MeeGo platform has essentially two mechanisms of publishing applications. First is the Nokia Ovi store which at the time of this writing is in its infancy and has a fair number of problems. Second is the Maemo.org official repository. There is also the ability to create and host your own repository but that has been frowned upon in the past by the Maemo.org community.

For the record, CII will be developing and releasing for-profit applications along with some no-cost apps. While CII is a proponent of FOSS, these applications will not be open sourced for a number of reasons.

That being said, I would like to tell you a story of something that recently happened in the Maemo user community. The community which can be found at http://www.maemo.org has a central application repository set up (along with dev and test regions) so developers can publish applications and have them go through a supposed QA process (more on that later) and ultimately be moved to production.

The process as I understand it to publish applications to the official repository is as follows:

  • Developer submits application to the Extras-Dev region.
  • The application is then promoted to Extras-Testing.
  • From there the community is supposed to test the application and vote for it.
  • When a required number of votes are obtained the application goes through a waiting period and then ultimately can be moved to the official production repository.

Now, I may be missing a step or two here but it’s not important. This is an inherently flawed system for a number of reasons. A case in point is shown below.

A third-party developer decided to port some games to the Maemo platform which he would offer on a paid basis. Initially he approached Nokia about gaining access to the official app store. For whatever reason, access could not be given because the app store is not ready for actual use. Not having that route, the developer turned to the Maemo.org repository. Traditionally the repositories are used to distribute free (FOSS) software. While it can support paid apps to some degree, it is still expected that all applications follow the rigorous QA procedures (dev -> test -> quarantine -> production).

The developer found several core design flaws in the way the promotion system works and exploited them to move his applications to the production region without going through the proper testing channels. The community found out about it and subjected the developer to the equivalent of a public flogging. If you don’t believe me you can read the whole story at http://talk.maemo.org/showthread.php?t=44928.

This does NOT sit well with me for a number of reasons for which I will now address. Starting with the developer – what he did was unethical from a software design perspective. There is no way around that. He should have had his applications pulled from production and received a warning or even a ban for his actions. He essentially abused a system that was put in place to provide safeguards to people who want to use his applications. If he found a flaw in the community promotion system he should have presented it in private to the people who maintain it and give them time to fix it. Then once resolved (or after a reasonable period of time), he could have made the exploits known publicly. That is being a responsible and ethical member of a development community.

That not withstanding, it is absolutely inexcusable the way he was treated by the community. They should as a whole be collectively ashamed of themselves. I as a developer know what a pain QA tends to be. I as a CEO however realize the importance of a proper QA check for an application and I would never even think of releasing something without my QA team doing their due diligence on a product CII builds. If my name is on a product you can be damn sure it went through a rigorous testing, QA, and UAT process.

That brings me back to my earlier point about the flawed promotion system for the Maemo community. There is no dedicated QA testing team. Applications are moved between regions when someone installs it, tests it a bit, and then votes for it. What this means is that if an application serves a small percentage of people and does not appeal to a majority, most likely no one is going to try it (simply because it doesn’t interest them) which means it will never be promoted no matter how solid it is. The entire voting/promotion process essentially becomes a popularity contest and is therefore rendered useless. This is clearly seen with the hundreds of applications sitting in the dev/test regions that have not made it to production yet.

The second problem is with the community voting in general. Let’s say for arguments sake a program is put into testing that prints the working days of the week out to the screen (Monday through Friday). That is how the app is supposed to work by design and does not have any bugs in it. A community member now installs the app and begins to test it but they think the application should also include weekends (Saturday and Sunday) in it. Now the exclusion of the weekends was again by design and not a bug but the person who is using the app doesn’t vote for it because it is missing a feature that he thinks is important. Once again, the voting process is rendered useless.

What makes it worse is the community as a whole takes a ‘holier than thou’ approach to the entire process. They chastised the developer I mentioned earlier for defeating their safeguards. That was a matter that should have been handled privately. Instead they embarrass him as well as themselves with a digital witch-hunt. They deflect every question that comes up in their forums about something not working on the N900 with a “you shouldn’t install stuff from dev/test” response. Newsflash – your entire infrastructure DEPENDS on people doing that.

If you really don’t want the end users messing around in dev/test (which is the way it should be) it’s clear that there needs to be a dedicated testing team of experienced people who can work through every application in the dev/test queues and get them to production quickly and efficiently. It should not fall on the community members to do this no matter how experienced they are.

In the aftermath of this whole debacle I can say with certainty that CII will most likely not be using the Maemo.org repositories to release our applications. We will either take the Ovi store approach or we will be creating our own hosted repository. I will not subject myself and my developers to the childish bickering and behavior displayed by the supposed elder members of the community.


Categories: Developer Thoughts Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: