On the phenomenon of paddling in place

24.08.2013 22:30

I recently came across the On the Phenomenon of Bullshit Jobs article. In it the author observes that technology has made it possible to produce goods with minimal manual labor, however work hours in general have not fallen accordingly. He attributes this to invention of pointless managerial jobs that seemingly don't contribute anything of value. I don't really subscribe to the notion that this was a conscious design by some entity to keep everyone nice and busy and submissive but the article does show western society in an interesting light (and the ensuing Hacker News discussion offers some better theories of how this situation came to be).

While this topic is fertile ground for pointing fingers at various middle managers and telephone sanitizers, I think a lot of such useless work is also done right here in the engineering community that is doing the said finger pointing.

Take for instance how a lot popular technologies in the mature part of the life cycle evolve. Once some product has reached a stable point where it solves a users' problem well enough and no one in the industry has any technological advantage, things often start going downhill. Manufacturers start adding useless superficial features, like adding "revolutionary" user interfaces, all in an futile attempt to be better than the competition. Think microwaves with elaborate functions no one every uses, "feature phones" from recent history with tons of useless fluff when everyone wanted to just use them to hear the voice on the other side, and so on.

The situation in the commercial software world is often similar, except the competing product is commonly its own older version. And with the forced upgrades, planned obsolescence and user's data held in ransom through incompatible formats the software world has even more leverage to force such useless changes on those users that find the older version fits their needs perfectly fine. As the most extreme example, see almost all changes in Microsoft Office beyond circa 1995.

In the commercial world it's easy to blame the ignorant management, greedy shareholders and anomalous market pressures for this situation. But it's baffling why similar things happen with free software projects that are mainly based on voluntary work. With recent Debian upgrade this has become most apparent. Projects that have reached the point where they more or less implemented all features one would want from them started implemented trivial changes that make no sense. I'll leave GNOME for some other flamewar, but take GIMP for example: the new version changes the semantics of windows versus application, replaces traditional sliders with something I have never seen before and shuffles around keyboard shortcuts. As far as my use of this software is concerned, there is no functional improvement and any benefits are completely offset by yanking my muscle memory from under me.

There seems to be some kind of a stigma attached to applications that stop having any visible changes. But I believe that for a mature application that does its job this is a good sign. Granted though that it's not easy to discern such a properly maintained project that only accepts an occasional bugfix from an abandoned one. Unix and GNU authors of old got this right though. You don't see sed renaming s command to r on a whim, but you do still see after all these years an odd bug fix release.

So to connect this back to the initial thought. It seems that there's a notion that even once you've arrived at something that genuinely works, you have to keep paddling in place, even though just maintaining the existing state with minimal effort would have better results for everyone involved. Someone with a social science background can now try to explain whether free software projects follow this because people bring in this habit from their day jobs or there is some other (market) pressure involved.

Anyway, from the technical standpoint I would just like to conclude by saying that please, acknowledge at some point that your project has reached everything that its users want to do with it and stick to bug fixes. Understand that the user interface is an interface. You don't randomly change mature APIs without a very good reason, do you? Rather than constantly trying to marginally improve it and making everyone miserable in the process, you can then use your remaining resources on starting something excitingly new from scratch.

Posted by Tomaž | Categories: Ideas


There is definitely some pressure (I'm not sure I can call it market) on open source projects.

Let's take a special case: I'm one of the current maintainers of GrafX2. This pixelart painting program was first developped as an MS-DOS application, then left abandoned on some website for years. I downloaded the sources and ported it to SDL. I did add some new features, but the program was already nearly done. So now, there is not much activity going on. Most of the featres ides left need a rewrite of at least some parts of the program. I have little motivation for that, I know it will take a lot of time for not that much benefits.

But, when we got an e-mail from an happy user saying "hey, I'm going to buy grafx2.org and make you a website" (yes, that's a very useful contribution in the current project state), in the end the guy got a message from the developer team saying something like "we're very sorry about not being active on this project anymore, al your work make us look like lazy guys".

Anyway, now that SDL 2.0 is released we will have some useful work to do to migrate to it, and this will finally bring us some new features such as drag'n'drop, multiple windows, and copy/paste. That's still an useless job: migrating existing software because the underlying system has changed.

Well, I guess you get more "thank you" for keeping old software running than for breaking and rewriting it like the GNOME guys do. Sometimes the most boring tasks are what people expect from us.

PulkoMandy, thanks for your comment and your work on free software.

I don't think keeping a program running because because the underlying system has changed falls into the case I'm ranting about, more like the opposite. In my GIMP example above, as far as I know, there was no such reason to make the user interface changes.

I always feel bad for criticizing work people do for their own enjoyment and provide for free to the world, but once you base so much of your own activity on work of others it's hard not to get frustrated sometimes.

Posted by Tomaž

I don't know the GIMP team much, so I can't really comment on what they did. Also, I have not tried GIMP 2.8 yet.
I guess they are going to do some changes because of the ongoing migration to GTK 3. I'm not sure if they already started.

However, I'm fairly sure the GIMP user base is teared apart between people who want it "more like photoshop" and others who want it to stay as it is. The single-window mode now available in GIMP 2.8 is certainly part of this, for example.

I think the same applies to any user-oriented software. I contribute to the Haiku project (a clone of the BeOS operating system) and we get lot of requests for being "more like Mac OS X". This is not what we want, obviously, but it seems a lot of people get tired of unwanted changes in Mac OS X, and find a suitable replacement. For some of them, Haiku seems to be the closest match in the open source world. I guess Ubuntu got its share of former OS X users as well.

The way to react to this is different in every project. You can add options and try to make everything configurable (KDE), you can keep telling your users that you welcome patches, at the risk of being forced into accepting them, should they ever come, or you can tell users to "fork off" and get away from you.

Adding more options increases software complexity, and this leads to more bugs (you can't test all options combinations). Not adding them result in software that doesn't fit everyone. This is what happened to sed, with awk replacing some of its uses. But there are examples where it doesn't work that well.

The relation between users and developers in open-source is always a complicated one. The developers are easily reachable through a mailing list or IRC channel (or personal e-mail), and users will jump on the opportunity to bring a lot of feedback and feature requests. It's interesting to see that not a lot of people send feature requests to Microsoft or tell them what they think of Windows 8 user interface.

Such discussions often end in the developers reminding that they are not getting paid for what they do, and they take orders from no one. Things get more complicated when users actually donate some money to a project.

Western society has a lot of redundant jobs in order to control unemployment. Same with PhD programs which keep youngsters of the street. You are involved in many different activities but some people stick with dear one and produce "improvements" regulary. Especially at the older age :-)

Add a new comment

(No HTML tags allowed. Separate paragraphs with a blank line.)