Free Open Source Software (FOSS) is great – I have released code under the GPL, LGPL, and similar licenses. There are mountains of FOSS available right now for download from sites like SourceForge and others that save businesses millions of dollars. More importantly, open source software offers feature sets and mixes that often aren’t available in commercial products because the market is too small, commercial companies don’t understand it, or the problems aren’t profitable enough to solve.
The great promise of open source is that you can have equal or more functionality than commercial software for free, and you have access to the source code if you have the desire, time, and skills to hack it into something new. This model was perfect when developers were writing tools for each other, like text editors such as VI and Linux. Most FOSS projects aren’t under the stewardship of a commercial entity (although some of the most successful ones are, such as RedHat, Firefox, and OpenOffice), they are built by and for a handful of developers “scratching an itch,” and they are not working with a Product Manager. Unfortunately, FOSS has become a victim of its own success, and today, open source developers are facing a problem that threatens to turn legions of users against the software they rely on.
Most FOSS projects are a meritocracy, meaning that the developers care about developing for themselves and their own problems. If non-contributing users problems’ happen to be solved, great. If not, well – “you have access to the code, feel free to build that feature yourself!”
Users understand that free software comes with limitations: there is typically only ad hoc support, updates are only as frequent as the developers care to make them, and bugs may go un-addressed forever. But users don’t care because they are getting something for nothing, and were willing to put up with the lack of polish found in most FOSS. However, now free/open source software has become so widely distributed and used that the boundaries in user’s minds between FOSS and commercial software has become blurred.
Open source developers have created products so good, that they are nearly indistinguishable to an end user from commercial software. This has changed the mindset and expectations of users to think that they are the persona that the developer is writing code for, but are they? Some applications, such as Firefox, have made the leap and are clearly developing for an end user. For an example of a FOSS project that hasn’t, look no further than Pidgin.
Pidgin is a free and open source instant messaging (IM) client akin to MSN Messenger, Google Chat, or Trillian. Recently, in their 2.4 release, they changed the GUI action of the text field where the user types their IM from a manually re-sizable window, to a fixed size window that auto-re-sizes based on the amount of text typed. On the surface, this sounds like a minor change, but it triggered a massive user revolt! Why?
First, the Pidgin developers violated the Principle of Least Astonishment. You never take away functionality from the user when they upgrade. Second, the Pidgin developers let “Perfect become the enemy of Good.” If you take the time to read through the entire discussion (I don’t recommend this unless you have plenty of time), you see statements from the developers such as (paraphrased): “We want to find one solution that fits the needs of all users; we don’t understand/don’t agree with the use case that calls for a resizable input window.” Third, the developers became more and more entrenched as the discussion progressed, rationalizing the feedback as a “vocal minority,” and recommending that the users try to use other applications for their needs. Finally the thread devolves into the developers reminding everyone that they do this work on their own time, for their own enjoyment, and by the way they are closing the bug report and tagging it as “will not fix.” Harrumph!
The most interesting reply on the bug report is from Dan Livingston: