AROS: the Pidgin Factor and Product Management

[This article translated in a latter time]
Originally published in July 9,2008

whodevelop

[EDIT – oct 20 2008: this article is quite old, but seems to have grasped well some AROS recent ongoings so give it a read]

Unless somebody else of the Cannocchiale bloggers don’t tell me how to recover my old unpublished articles (waiting for time, inspiration, further documentation,etc.) i feel kinda forced to start again this article, with the needed updates.

First of all, let me introduce the “causus belli”: Pidgin Bug Report, an article on Product Beautiful and a further Article on Product Beautiful on the subject.

The outcome is surely known on who is following open source software progress: since last jannuary pidgin users are complaining about a new feature that resizes automatically the message textfield; the developers answered that it was introduced by them because they liked it and they have no plan to remove it or make it facoltative. A big discussion arised, quite polite but with strong opinions and brought to a riot against developer’s decision, at the bug report closure as “wont_fix” and at a fork of the program, funpidgin.

Among all the interventions, one quite interesting from Dan Livingston, teacher of “collaboration in the Open Source world” in a North American college, going quite hard on developers behaviour:

I teach “Collaboration in an Open Source World” at a local college. Ihave been searching for, and in this ticket have found, a perfectexample where communication between open source developers and usersfails at multiple, fundamental levels.

Obviously, the motivations of open source developers are varied;some do it for technical enjoyment, others enjoy knowing they arecontributing intellectual capital to a better world. The problem iswhen the motivations of open source developers conflict with theexpectations of users.

Consider every wildly successful open source project: the users areenthralled with their ability to perform new activities in wayspreviously unimagined. Rabid dedication grows, and an evangelical fanbase results. Pretty soon, it’s obvious why users would not want to go with non-open source software alternatives.

What happens when those same newfound powers are taken away? Whathappens when the developers impose their personal dogmas upon theproject? Even for as small an issue as chat window resizing, a minority(or majority) of users will emphatically express dissent.

It’s easy to see why open source developers could develop dogmas.Some like to fantasize about the theoretical limits to which a designmay become “pure”, developing a vile repulsion to anything which steersaway from purity. Others become obsessed with metrics such asmaintenance effort per line of code, even though they often worry aboutfeatures and lines of code which only contribute to 1% of thecomplexity of the application. Yet others develop fixation on “ultimateuser simplicity”, feeling that two options are better than five optionswhich deliver more power. The most dangerous dogma is the one exhibitedhere: the God feature. “One technological solution can meet everypossible user-desired variation of a feature.”

The initial lure of open source software is that quality softwareshould resoundingly meet the needs of users. As demonstrated up untilPidgin 2.4, the fan base has emphatically been extolling the virtues ofPidgin. But when developers take a feature away, presumably toimplement a “better version”, and that better version in fact is a stepbackwards from the functionality previously available, they had betterhave a damn good reason. Such a reason is lacking here.

“This is how IM should be used.” “Our design is better.” “We willonly consider a ‘pure’ design in which we can accomplish the oldfunctionality in a paradigm that also supports the new functionality.””An additional checkbox is too detrimental to the user interface.””Maintaining two branches of logic within the dialog sizing componentwill be untenable.” “We have no interest in not pushing our shiny newobject.”

These are all statements, which if executed within a corporatearena, would get developers fired. Developers, make note: you are doinga disservice to the community you claim to represent, and are doing sowith false illusions that you are “right” because you have convictionsin your justifications.

It does not matter that you are open source developers with theautonomy to ignore your user base. It does not matter that a plugin”could” be developed to solve the problem. It does not matter that youfeel your default solution is superior. It does not matter that youonly want to consider solutions which can be implemented through thenew solution framework. It does not matter that your users shouldabandon your product if they don’t like it. It does not matter thatsomeone could fork the code base. It does not matter if 11 thousandpeople download your source code per day, and only 270 complain aboutit. For each of these, there are very valid rebuttals.

So, only 270 complaints for this feature, out of 11 thousanddownloads? How many people immediately uninstalled the program whenthey realized it could not longer do the simplest functionality thatGAIM and other IM agents do? How many don’t know that they are usingsoftware that is now crippled in comparison to its former flexibility?How many use the software today, but will switch to GAIM tomorrow whenthey hear from their friends that it’s so much easier to resize inGAIM?

The fact is that typing letters into an IM window is THE mostcritical task of an IM program. Users have varying needs, needs whichcan not be addressed by your limited attempts to come up with “onesolution for everything” that incorporates “shiny new logic” thatdemonstrates how smart you are. You are ignoring the fan base with adedication to your convictions that is alarmingly evident to even themost unobservant of followers, and as such, you are demonstrating thatyou no longer deserve to be in the position of servicing the needs ofyour user base.

For the sake of everyone involved, I hope you find your path back to the light.

And the following is the hypothetical response that Dan supposes users should receive from the development team:

Dear Users:You are most undoubtedly reading this page because you want to know how to manually resize the text input area in Pidgin. It is a feature that you have perhaps grown accustomed to and comfortable with, but please make note – this feature is no longer supported.We have received many complaints from a very small minority of the user base who nonetheless persists in being very vocal about their displeasure. Please take comfort in the fact that they are only a very small percentage base of Pidgin users, and if ignored, will go away and bother some other open source project.

Nonetheless, we feel it very important to make the following proclamation regarding on our stance on this project: we will not “fix” it. In fact, please notice that the status of this “bug” is “wontfix”. So would you please just get this idea through you head and go away now?

We are developers of this software, and we develop Pidgin so that it may fulfill our explicit needs and desires. If you want to join us for the ride, then fine. Just shut up, though. Please, if we’ve made a feature a certain way, it’s because WE WANT IT THAT WAY. Is that so hard to understand? All day long our bosses tell us what to do. Our wives tell us what to do. Our government tell us what to do. YOU will NOT tell us what to do.

Some say that as the developers of the premier open source IM client, we have a “responsibility” to serve as wardens of our precious charge, nurturing it into a fine, outstanding, model citizen of the open source community. That’s rubbish. The last time we checked, we didn’t sign up for day care. We signed up to write software that WE want to use.

So please take your ideas and go elsewhere. If you want a development team that responds to the desires of their user base, hoping to release world-class, quality software to millions of people, then start your own open source project. It’s not that hard. It’s free. All you have to do is commit your time, just like we commit ours.

The development team would very much like to come up with a solution that meets the needs of ourselves and the general user base. However, we cannot understand your needs. You speak in a foreign gibberish, gobbledy gook language that none can understand. “I just like it that way!” That is not an answer! You must enumerate the metrics and aspects of your preferences and desires in ways that we can evaluate and then assimilate into our collective. We cannot currently assimilate any of your idiotic reasons for wanting a resizable text box. And by idiotic, we mean “any solution which does not fit into the scheme of our cleverly intelligent auto-resizing text field.”

So, just to make it clear: we will not listen to your suggestions unless your suggestions make sense to us, and we like them. If you do not like it, there are plenty of other ways on the Internet in which you may occupy your time.

Regards, Pidgin development team”

Damn! Me too, when i develop in my job am really tempted to answer like that way but, considered that if i do it might need a new job , might find myself broke and with no way to pay bills, am  kinda forced to consider a more condescending attitude.

Anyway, going to the point, i took out the Pidgin debate because of some attitudes from the ReactOS team in their discussion forum shortly before the 0.3.5 release.

I heard several hundreds of time and am aware that AROS and ReactOS need to be defined “hobbyist” operating systems and not “world domination” systems and also am aware that the “no schedule and rocking” philosophy of AROS developers is not keen to make final users and investors to plan on it; the other side of the situation is that AROS is not enough developed because its low developers number and, paradoxically,  has a low number of developer because is not developed enough yet.

Beside the preaching of FOSS evengleists, the Open Source philosophy does not require a cooperation based on the “code or get out” attityude: as exposed by Dan Livingston above, a open source community expects cooperation even in “minor” tasks such as community activities: feature requests, bug report, advertising, advocacy, graphic themes, etc.

In example I feel that am controbuting writing about AROS in my blog (advocacy): i hope in future to cooperate at a deeper level, wife and job allowing me to do that.

And even an open source community, willing or not, DOES marketing, meant as presentation of it for its diffusion: it does it mainly in a viral way, such as spreading the word, commenting it, etc.

Of course having a more outgoing profile to “sell” helps the copmmunity in the “product” diffusion.

And the diffusion of the “product” brings in both final users and potential developers.

Aros, thanks to its media apperarances with VmwAROS, for its user’s advocacy and advertising activities and for the surviving Amiga community that is having benefits through AfAos (AROS for Amiga Os, a project that is replacing outdated AMiga libraries with more recent AROS ones) is actually getting more users and developers; but it’s not enough yet.

A better presentation of the project, the rewquired documentation development – that is starting to appear but is still too depending on the pre-existing Amiga OS one, being also affected from the Guru book publishing – maybe the apparitions of written and video tutorials to explain the AROS use and at the end the hoped coming of applications and hardware drivers (tightly tied to the aforementioned catch-22 “lack of developers in a underdeveloped OS”) might finally bring AROS and other alternateOSes to be more widespread than they are now.

It is also my opinion that, once a poject reach a “critical mass” of users, the developing team’s hobbyistic/edonistic approach to programming cannot be the main motivation and the reason of existence anymore; from the fact itself that users are using and relying on it doing even critical activities with it, the team acquires the moral, if not social, obligation to listen to the final users. Then, if they like to modify things they can “sublet” the maintenance and dedicate themselves to a “director’s cut version” aside; then, if the new version will have a good response they can let it contribute back to the main flow and so on; but the fate of the project is no longer in the developer’s hands only: the project has become and belong ALSO to the community that embraced it, use it and love it.

Product Beautiful in its article talk about the Product Management in the Open Source community and on how the actual approach – thinking that product management is meant only for commercial activities – is wrong;
As provocation, they propose that open source products should have a “quality seal” in their home page (the one at the top of the page) where developers declare whether the project purpose is toward the community or if the project is made to “scratch their own itch” – meant for themselves – in ordet to avoid bad facts as the ones in the Pidgin Community.

I would be glad to hear further opinions about this.