[Jaffa Software]

Sunday 20 April 2008

maemo.org: what next?

I was invited, but unfortunately had to decline, to speak at the maemo track of LinuxTag 2008. The final topic, maemo.org: what next? is subtitled "mid-term: what Nokia should do + what the community could do". Whilst looking at whether I could attend, I started thinking about this topic. Below is the crystallisation of some of those thoughts which probably would've formed the basis of a few slides to kickstart discussion.

Where are we?

Since November 2005, we've had the N800 and N810; both spaced about a year apart. But whilst the release of the N810 saw its OS backported and released for free for the N800; the release of the N800 saw the 770 dropped in terms of official support.

All three releases had "device programmes" whereby key members of the community could get the devices at severe discounts. This had the advantage of ensuring key software and power-users could deal with the new devices; but meant that hackers who may have maintained support for the earlier devices didn't have to scratch that itch.

Nokia were criticised very heavily for their decision to drop 770 support. However, in their defense they've generally had a fairly open, but unguided approach, to community involvement. It seemed such a large company was having difficulty defining - let alone adjusting to - truly open, community-involved processes.

Recent developments such as the involvement of Niels Breet and Quim Gil have certainly helped here. There've been improvements to the maemo.org website such as karma and rating downloads & news articles which have definitely increased interaction. Quim's contact with the community both through official channels and the Internet Tablet Talk forums has been very well received. These are steps in the right direction, but more needs to be done.

Corporate interests in open source projects

There are three aspects to an open source project, especially when there's corporate sponsorship:
Triangle representing the interests of corporations vs. open source involvement
Open source triangle
Community involvement
Pushes sales and reduces costs: more software developed for a device; more community support for users; some aspects of software development being done by the community which can become headline items in sales packages.

Openness
Allows experimentation with a device: new operating systems; backported OSes etc. However may be viewed by suspicion by marketing teams wanting to make a large fanfare for an upcoming release.

Control
Essential for a company: what's going to be in a release, how it's going to be supported; ensuring the package as a whole has a consistent marketing message.
None of these are "better" than the others, and a true open source project - without any control at all - either splinters into a series of forks, or never gets enough traction or user-base to get that far. However, I'd suggest the best corporate-sponsored open source projects sit closer to the middle of the triangle than anywhere else. For example, if the 770 ecosystem was closer to the centre, the "hacker editions" may not have been a cost Nokia needed to swallow.

Are there "good" open source projects with corporate sponsorship? Sure! Amongst many others there are:
  • Eclipse (IBM)
  • Firefox (Mozilla Corporation)
  • OpenOffice.org (Sun)

What Nokia should do

Nokia need to take action to really push community involvement. Nothing's got for free: if Nokia aren't seen to be committed to the community, why should the community be committed to Nokia? I'm sure we can have a discussion about where we are on the triangle, although I suspect there won't be much argument that we're closer to the bottom left than anywhere else.

Is this a bad thing? It depends. Certainly, being further towards the centre would mean - at least - the Hacker Editions could be maintained outside of the maemo.org team; other OSes such as Poky, Mamona and even Ubuntu Mobile could be got running on the device; the experts in the community could provide input into specifications, designs and even provide implementations. This'd mean:

  • Somewhat reduced costs on behalf of Nokia;
  • More devices being sold. Some people are looking for an entirely open device (see the interest in OpenMoko or Pandora). Others are looking for an open device on which they can run a software stack of their own choosing, such as Poky.
  • Contributions from people who are personally devoted to the device, rather than being paid to work on it by their employer. That's not to say that the employees aren't doing a good job, or that they're not devoted to the device; but if someone's willing to do even some work for free, why look that gift horse in the mouth?
These are all good things, both to the end-users, the community and Nokia's bottom-line.

So, to increase openness and community involvement in maemo.org, I suggest the following to Nokia:
Default code position: open
The default position for all ITOS and Maemo code should be open source, unless there are legal and contractual reasons it shouldn't be the case. It should be possible for an external developer to tweak - say - the look and feel of the Media Player (perhaps cover.jpg album art support), rebuild it and share it in the community. Any component which is closed should have a page in the wiki or somewhere else explaining why that is closed source, and details of the API that component is supposed to provide to the system.

Work in the community, not with the community
  • Nokia's internal bug tracker should be closed to anything but issues with upcoming, unannounced hardware: all software bugs and development features should be in the maemo.org Bugzilla or component-specific open bug trackers.
  • All components should have discussion - even between Nokia staff - on open mailing lists and IRC. All high-level designs should be discussed on maemo-developers to get most involvement and input. Low-level implementation details should be discussed on component-specific mailing lists.
  • Discuss software roadmaps on maemo-developers, engage the non-Nokia community to feel like they're not just contributing into a black hole; but are involved in the decision-making, policy-making and strategic direction of the platform on all levels.
  • Improve the tooling for people wanting to rebuild an ITOS component, possibly even including the ability for third parties to produce their own FIASCO images. Indeed, for the community to help with the Hacker Editions, this ability is essential.

Raise the bar for third-party developers
Put considerable effort into integrating, homogenising and ensuring consistency between all of the built-in applications. Polish here will encourage application developers to raise their game. I've tried to avoid an iPhone comparison, but look at the quality of third-party iPhone apps, even before the official SDK was launched.

Increase the ease with which applications can be fully Hildonised and integrated into maemo
  • It's currently too easy to half complete a port, without any addition of battery-management functionality; proper load notification; proper backgrounding etc.
  • Effort could be made, for example, to make GtkMenuBars a more pluggable interface: Hildon would use a plugin which rendered it as a fixed point pop-up, the Mac OS-inspired desktops would use a plugin which rendered it at the top of the screen, the ROX-based distributions could have a fully popped up menu. This should also decrease the effort to port applications.
  • Similarly, HildonWindow is a hack to get default themes working. This hack would be better put in the window manager, rather than requiring changes to every application.
  • Work closely, and openly, with other companies using Hildon as an interface to effect these changes; such as Intel and Ubuntu; to ensure that Moblin, UME and maemo don't splinter and that porting applications between them, and innovations made by one company can be reused without being dismissed because of "Not Invented Here" syndrome.
Some of these may be too much for Nokia to swallow as a company not used to openness. There will be comments within Nokia that this will open themselves up to too much competition; that if their entire software stack is open someone else will be able to clone it. So what, though? Be a hardware company; be a focal point; sell services to your competitors building similar hardware; sell to consumers a polished device with an active community.

I strongly believe taking these actions will increase the openness of ITOS (and hence maemo) development and massively increase the participation of the non-Nokia community. For example, I and at least a handful of others, would commit to regularly commenting, reviewing and participating in design reviews of high-level (and perhaps even low-level) specifications; if only we were asked.

Nokia have a large, untapped resource of professional, enthusiastic programmers; artists and users, who would be willing to effectively work for Nokia for almost nothing: just an acknowledgement that their input is being listened to, visible changes resulting from their work and - perhaps, just maybe - inclusion in the next device programme ;-)

8 comments:

  1. Excellent post, and it pretty much describes my feelings regarding Nokia and their (lack of) involvement with the Community.

    I agree that Nokia may perceive open source as a disadvantage by opening them up to increased competition, and also probably explains the current situation with too much code "closed" for no apparent reason, but my opinion is that unless Nokia embrace open source AND the community, they will be destined to become bit part players in the future - the competition will succeed precisely because they will have embraced and understood the open source approach in order to sell their hardware. For me, it's not that Nokia should embrace open source, rather they must embrace open source in order to be successful at selling their hardware. Overall software quality on Tablets is poor although it has improved slowly over the last 2.5 years, and it doesn't take a genius to understand that more not less community involvement would have helped improve software quality significantly more quickly.

    Until Nokia fully embrace open source and take the default position that all code will be open, the Maemo project has no real future for me personally. This current half-way house approach with a mixture of closed and open source code is ridiculous and a complete "turn off" - Nokia need to make the decision to be open or closed, but not both, as "both" simply doesn't work for community involvement.

    As such, if Maemo has no future it follows that neither does the hardware product line. :( No doubt Nokia will turn a profit on their hardware and continue for a few more years but they'll make nowhere near as much profit that they could have made considering the unrealised potential there is in these devices. Just as well they have phone sales to fall back on and can write Maemo off as an interesting but failed excercise.

    I may be wrong, and I sincerely hope that I am, but that's my view. I hope your post goes some way to improving the current situation and is read by the "right" people at Nokia.

    ReplyDelete
  2. Nice written post.

    I think that Nokia has to open Maemo more or it will die sooner or later. Why? look at market -- there are more and more ultra mobile notebooks like EEEPC which are in similar price as N810 but offer more power.

    ReplyDelete
  3. Well put. You've gathered together the essentials and tied them together nicely. Considering the thanks Quim gave your post on itT, I think it was generally well-received. ; )

    ReplyDelete
  4. @Milhouse:

    This current half-way house approach with a mixture of closed and open source code is ridiculous and a complete "turn off" - Nokia need to make the decision to be open or closed, but not both, as "both" simply doesn't work for community involvement.

    Then please tell me why Windows is the most popular platform out there and why the majority of applications out there are written for closed source platforms? Lack of community, hardly when it comes to both Microsoft and Adobe who have more developers working on their platform than I can count.

    @Hrrw:

    There are more and more ultra mobile notebooks like EEEPC which are in similar price as N810 but offer more power.

    Intel if anything will dictate where the future of devices that fit into this form factor will head. Porting to ARM may make sense now, but in 2 years ... will it?

    ReplyDelete
  5. Aniello Del Sorbo21 April 2008 at 09:07

    Very well.

    You've touched a strong point.
    Nokia's struggling on this topic today.
    I am pretty sure the Maemo team is pushing Nokia hard, from inside, to be as much open as possible. To be in the center of the triangle (I love it, btw).

    We, as community, should help them pushing even more, we are the tool Maemo needs in order to push harder.
    And this post is a very helpful tool for helping them.
    In good hands (Quim's ones in this case) it can be an effective weapon.
    I am sure he will use it and he will do a very good job.

    Let's continue this way.
    Thanks

    ReplyDelete
  6. by the nokia? for the nokia? of the nokia?

    ReplyDelete
  7. @http://intomobile.com

    Then please tell me why Windows is the most popular platform out there...

    Windows has always been closed source from the get go - that's been accepted by everyone going in - but Windows has also been very well supported at the developer level: Microsoft understood from day #1 that they had to win the hearts and minds of the developers in order to succeed. Maemo on the other hand has had these lofty ideals of being an open source project, but has ballsed it up by contaminating the code base with closed code along with a lack of documentation, lack of support and worst of all lack of communication - essentially Maemo/Nokia have not made *enough* effort to engage the community ie. the developers. In fact, Maemo/Nokia seem to have made efforts to actively p1ss off the developers - the Maemo Bugzilla is a waste of time and the effort the community puts into reporting bugs is often wasted effort. I've lost count of how many times I've seen requests for information regarding the broken WiFi and of people offering to help fix problems only to be informed they're sh1t out of luck as the only person able to help them is too busy or the code is closed, and so interesting WiFi apps (eg. Kismet) remain largely unusable and their developers move on to better supported devices.

    If Maemo were a closed project with EXCELLENT and responsive developer support then it might work, but instead it's this half-way house cock up: closed and open source code side-by-side, inability to build the entire OS or fix long standing bugs due to closed code, poor and often completely missing documentation, topped off with sporadic and ineffective communication.

    ReplyDelete
  8. What about focusing on open standards for data used in these environments? For audio and video, Ogg Vorbis could be showcased. That would also help recover from the HTML5 public relations gaff last year by the MSFTer that managed to get into the company. For productivity applications, OpenDocument Format and PDF/A can be used.

    A platform is only as open as its data.

    ReplyDelete