Hacker News new | ask | show | jobs
by danharaj 3122 days ago
Software development has proven methods for organizing labor by labor instead of by the whims of the owning class. The most useful software in the world is developed by an ecosystem of communities that resembles anarchist, communist ideas of how society at large could operate. Because of the unique capital requirements for software development, cooperative firms are more viable than in any other industry. We could be doing our work in radically different ways.

Too bad most programmers are allergic to collective labor action.

4 comments

"Socialism never took root in America because the poor see themselves not as an exploited proletariat but as temporarily embarrassed millionaires."

Nowhere is this more true than Silicon Valley.

Kind of ignores the fact that socialism did take root, like Eugene Debs running for president, but it was violently uprooted and the ground was torched and salted and a massive state apparatus was developed to make sure it could never be entertained again.
Someone running for President multiple times and never clearing either a single electoral vote or more than 6% of the popular vote is certainly evidence of their personal determination, but hardly evidence of them representating a philosophy that had taken root.
If Eugene Debs running for president proves that socialism did take root, how do the later runs of Norman Thomas not argue against the torching & salting?
I think that Americans are extremely optimistic. It seems that many Americans believe in fate, at least on a subconscious level; that everything happens for a reason and that everything will work out in the end.

Maybe it's related to the kinds of movies that Americans watch? I love watching Hollywood movies sometimes, but I have to say that compared to international films, the characters in American movies tend to be much more one-dimensional (have very well defined roles) and everything always works out for them in the end.

If you watch European movies, the characters are often hard to pin down and the story often ends either badly or unsatisfying at best... Just like real life.

Then why just go outside and experience your unsatisfying life instead of paying to see a movie about it?
That way I can learn about all the other ways in which life can go wrong.
This implies the poor are better off under socialism than as lower class in a rich country.
If you know what socialism is, then you would know that they would indeed be better off.

It's simple really, eliminate this concept of capital ownership by individuals or corporations. That way, when you work, your boss is not getting a profit on top of your labor. That means your wages go up! Best thing of all, whatever your participating in, you have part ownership in.

It'll surely work this time!
We need a marriage of systems... where private co-ops own the corporations..they set supply/demand based on market considerations just like capitalism -- but everyone shares in the profits.

Full capitalism/Full socialism isn't the answer...there's got to be some sort of middle ground where more people can be lifted up by the system.

Well, capitalism doesn’t quite work either. But people seem to prefer it for some reason....
Would you rather be poor in the US, or poor in Sweden?

Both are rich countries. Socialism has a much stronger influence in Sweden.

  |Too bad most programmers are allergic to collective labor action.
Because there are plenty of real-world examples in other industries of the end state of "collective labor action", and it's generally not pretty.

We as an industry really do not want to emulate that model.

Our industry already bases a massive amount of its work on models of such collective labor. Software development has unique structural characteristics that make it fertile ground for experimenting with different organizational models.

Yours is a knee-jerk reaction.

Seems like you're combining two different things.

> Our industry already bases a massive amount of its work on models of such collective labor.

By this, I presume that you mean open source software, though you don't explicitly say so. And yes, it's true, open source software is... somewhat socialist? Somewhat collectivist? It's not normal capitalism. It's the workers coming together to produce something that corporations don't own and don't control.

> Too bad most programmers are allergic to collective labor action.

When you speak of "collective labor action", though, I presume (perhaps wrongly) that you're talking about unionization. That's a very different topic. You can't use open source software to say that software's ready to strike or take over the factories, because those are two very different uses of "collective labor".

> When you speak of "collective labor action", though, I presume (perhaps wrongly) that you're talking about unionization.

This was the assumption I took as well in my original reply. Sure, the work of OSS is kind of a socialist/collectivist arrangement. However, at any significant scale, I feel like that's going to break down if taken too far.

Look no further than one of the biggest OSS projects on the planet: Linux. It's run dictatorship-style by a not always personable technocrat. Take that away, and it's probably a disaster.

To return to the original point: if it indeed referred(action) to unionization, then I'm pretty comfortable in saying my reaction is not "knee-jerk", it's wholly informed and justified.

I've had many friends/family/acquaintances work under the union framework. You don't want that model anywhere near software development, or IT in general.

This is an entirely plausible scenario:

Your team needs to deploy a critical bugfix to prod, except, see, per the union agreement, only Frank is allowed to do software deploys. As it turns out, Frank's on vacation this week. Tough shit. You push through and do it anyway, Frank files a grievance, your company gets fined/taken to court etc...

Even worse, maybe Frank is an incompetent waste bag who breaks everything he touches. Problem is, he's union, and he's been here ten years. You do 10x the output of Frank, and generally have to clean up his messes. Did I mention he makes more than you too? Union...

> Look no further than one of the biggest OSS projects on the planet: Linux. It's run dictatorship-style by a not always personable technocrat. Take that away, and it's probably a disaster.

He literally can't run it like a dictatorship. A dictator has an army to coerce you into doing what he wants. If a large portion of the people who work on Linux no longer want to work with Linus, there is no police or army that will prevent them from leaving and working on their own version of Linux.

This is very different from the fanciful idea that's sometimes said that because we can choose who we work for that means we aren't being coerced. Linus does not own any special means of production that are necessary for developing Linux. At the end of the day, Linus is in charge of Linux because people choose to follow him, because he's effective as a leader.

Beyond that, the way work is done on Linux does not get routed through Linus as they would be in a dictatorship. The way people write patches is organized as the writers see fit. They form affinity groups and write patches for their own motivations. Linus' ultimate role in Linux is to put his seal of approval on what is proposed to be added to the main repository. Why is it main? It's not decided by legality or force, but by everyone recognizing it as the main repo for Linux. Why does he give his seal of approval? Because people want it.

Anarchist communism most certainly does not preclude leadership or organization. It is the radical idea that leadership and organization do not have to be based on coercion or domination by one person over another. Linus does not maintain his position by brutality against others. Because of the special circumstances of software development, we can achieve this ideal of freely associated work for the good of all far more easily than in other industries.

As for unions, unions were what got us, for example, an end to child labor and an 8-hour work day. The idea of a union is far more expansive than the legally strangled, government sanctioned version of a union. I agree with you that unions as they exist today can be, well, stupid. They are through-and-through capitalist burueaucracies: One more lever to maintain the control and ownership of the means of production in the hands of the few.

There are a few reasons why. The major reason is because the government, which sides with owners more often than labor, decides what a union can be these days. You need a full-time lawyer in order to form a union because the rules are so abstruse and byzantine. Unions used to be illegal, and they were far more radical and powerful when they were! Anyone could form a union in that old sense-- and then risk being shot for challenging the way things are done.

Another reason is that when unions make agreements with businesses, usually they both agree that there can only be one union at a business. This is obviously a terrible idea. It's also a direct contradiction of anarchist principles for collective labor in particular free association. What happens at one union shops is quite good evidence that free association is important to avoid stupidity at work.

Another point against most unions as they exist today is that even if they are nominally democratic, the power and resource asymmetry between the leadership (who control the purse strings of the union) and any challengers means that they are basically run like a shitty corporation. Again, in contradiction of anarchist principles: Resources to do work should be made available to everyone.

At the end of the day, if your problem with unions is that they A) Force you to do your work in stupid ways and B) Unfairly distribute resources to people who don't deserve them then your criticisms exactly apply to bosses and investors that run software shops and that we have to listen to because they have money and we need money to not starve. The inflexible stupidity of union rules is quite the same as the stupidity of capitalism in general.

But clearly software doesn't need to be done like that.

The knee-jerk I'm talking about is like when I say "collective labor action" you think "bureaucratic swamp of rules and coercion that tells me what to do" when very much more is possible. It's also when you think Linus is a dictator even though his position is maintained by anything but dictatorial methods. We clearly have different ideas associated to these words. I can't quite convince you to adopt my definitions, but I'd like it if you at least find your own words for what I'm trying to get at.

What makes something "the most useful software in the world"?

There's a bunch of useful software which isn't run that way: Microsoft {Windows, Word, Excel, PowerPoint}. The software which runs Facebook, Google search, and Google's YouTube. iOS.

How much does Google Chrome development "resemble anarchist, communist ideas"? Or Android, for that matter.

Minix is in every modern Intel processor, but I also don't think it was developed by the ecosystem you describe.

I'm in the early stages of setting up a co-operative consultancy; I've found many people (eg potential partners) responsive to such an idea. The only downside has been needing to present as a traditional, hierarchical organization to potential clients.