Sometimes its own Worst Enemy

This is a re-post and updated version of the original article I published in March 2007.

Before I start off with the rest of this post, I should probably tell you all a bit about myself and my background before I, as some people will no-doubt say, “start throwing the FUD around”:

I’m a Software Engineer with a company which runs almost exclusively on Free and Open Source Software. All of our desktops run Fedora, our servers Red Hat. We develop using Free tools such as vim and gcc and code in free languages and frameworks such as C, Python, Ruby, Rails. I myself run a a fair whack of different operating systems. On my Desktop: Windows XP, Vista, Ubuntu, Fedora and Free BSD. I own a MacBook which dual-boots into Ubuntu Jaunty and have an Acer Aspire One which dual boots Linpus and the latest version of Ubuntu Karmic. I develop for all of these different operating systems and most importantly use all of these operating systems on a daily basis (with the exception of FreeBSD).

I write here , not from the point of view of a developer who uses, understands, and overall supports all the good efforts the FOSS Community does – but from the point of view of an end-user who is expected to use the products of such things.

It’s fair to say that I am well aware of many of the great benefits you receive with Free Software and the products off it, and thanks to my knowledge of these ’horrible‘ Non-Free platforms I also have a good understanding of the benefits of having an environment which is geared to its users more so than its developers. I advocate Free solutions to problems wherever possible, be it an OS or simply a good tool to get a job done; however I’m different from some advocates in that I don’t believe Free is always best, and I don’t believe that a Free Tool / OS / Product should be used over a Non-Free one simply because a Free one exists.

Which brings me around to the actual point of this article (first in a series), why sometimes the Free Software Community is sometimes its own worst enemy.

Zealous Free Software Advocates are their own worst enemy

Advocacy is a wonderful thing, it encourages people to make good changes based on the experiences of others or (more usually) as the result of marketing forces. Sometimes, however, Free Software advocates seem to miss the point entirely. By that I mean that simply pushing Free Software for the sake of ‘advancing a cause’ is fruitless and ultimately self defeating. Also, pushing software which his intended to compete against established, respected and in some cases, industry standard Non-Free software when it can’t match it in functionality, stability or compatibility is, while admirable, not helping anyone. Finally, the extremists in this community go as far as to say that all Non-Free software is ‘evil’ and should never-ever be used, spoke of, thought about or looked at through peripheral vision.

My issue is that users want something that works. They want the Free alternative to say… Adobe Illustrator (used purely as an example of a widely used Non-Free application) to be:

  • Completely compatible with the proprietary application’s native file formats.
  • Able to export in the proprietary application’s native file format so that (in Adobe Illustrator’s case), Printing companies are actually able to use what’s produced.*
  • Able to easily pick up and learn the new application, usually through the duplication of existing workflows or consistency across menus, panes, tabs etc to create a familiar, intuitive and above all else, comfortable interface to the user – remembering that the purpose of this ‘Free’ application is to ‘win over’ users as much as attract new one.

This is, generally what they get from the Free application:

  • Some support for the non-free format, this will probably be read only and will not reliably load all of the information from the file. This varies of course from Application to Application (OO.org, for example, is fantastic in it’s support of the various office formats.). This is sometimes implemented, usually to the same degree as the ‘reading’ component.
  • There will probably be an option to save the document as PDF.
  • A ‘Free’ format will be the default file format for saving in (SVG for an Illustrator clone), other options will be available depending on the application. The Free format it’s self will be useless for collaboration since the rest of the world uses the non-free application – including most importantly, your likely customers.
  • A huge learning curve for using the application:
    • A horrible mess of floating panels, tabs and tool-strips for a GTK Application
    • More buttons options and configuration setting than a mere mortal would ever even dream off in KDE Land, with every single one of the functions having its own button, and the tinniest possible area for people to do their work in.

They are of course ‘free’ to use the Non-Free solution at any time they want, no-one is forcing anyone to use any software what-so-ever.

My point with this is more to illustrate that advocating software which doesn’t meet with the needs of their users is fundamentally flawed. No-one apart from developers, people who make an informed choice to use free software or generally people who are technically savvy will realistically use this software. The target market for your product certainly won’t – why would they when it can’t match up to, or even co-exist with the competition?

The same energy could be directed at working with large companies such as Adobe to make them realise the benefit of building their products in such a way to make them more friendly when run on FOSS Operating systems, or even less glitchy when hosted in WINE. Better still, advocating to these companies to open up their own file formats to encourage interoperability would also be good. Although it has brought Microsoft nothing but bad press, OOXML could be taken as a very positive step forward on this front – if one of the most ‘closed’ companies trading today can open up their formats – what reason do other similar players have for not?

Of course, these same FOSS applications could be re-focused, instead of trying to ‘take on a big boy’ by going gung-ho towards duplicating all of it’s functionality, they could specifically target a specific subset of said Non-Free application’s functionality. One small Free application that does a particular thing very well is worth it’s weight in gold – especially if it’s functionality means that that one part of the Non-Free application no longer needs to be used.

One final point: FOSS projects shouldn’t be advocating to end users to pick up and use their product if what they really want are developers or other forms of contribution. Beta test something that’s at least better quality and please set realistic goals for yourselves. Don’t say you’re user focused and ready for the general public when what you actually want contributors and people who are comfortable being wounded by using your Bugzilla. And never, ever say “well, you don’t pay for it and we do all this development on goodwill” if you’re shipping a product to users then developer ego should take a back seat.

*I know that most Printing companies can also take PDF files in some cases for printing, but in my experience, for complicated graphics or when you’re wanting to sent your printer a ‘master’ piece of artwork to use the expect an Illustrator EPS file.