FreeSoftwareSocialDynamics

Why are FreeSoftware developers not pooling their efforts? They should be collaborating! And furthermore, why are they not all working on the most important problem: Getting GNU/Linux on the desktop!?

The open source community needs to push as few cars as possible in as orthogonal directions as possible. If not, all cars will be abandoned. Wiki developers, contact your colleagues working on other wikis and join your forces! [1]

Sometimes it feels that these calls are actually reproaches that imply hackers are either too stupid to understand the need for usability, simplicity, slick design, or that hackers are too asocial, facetious, or arrogant to care about users.

Here’s what we know about the social dynamics of free software development:

When moms and dads ask their kids to explain why they are spending so much time at the computer, writing programs without getting paid, the answer is complex and requires anything from two minutes to half an hour. How to explain the MutualInspiration, builder’s pride, the flow when working on tricky problems, solving arcane riddles, the warm feeling of having your friends nearby even when you’re alone at the screen?

It’s difficult to communicate. Only rarely do developers and other people meet at a conference or a convention – artists, activists, designers, usability advocates, people interested in breaking out of our established software corset.

Sometimes new companies are started by hackers. In a way this is the only sort of “communication” between geeks and ordinary people: Most people don’t consciously use free software. The web, mail, text editing, and so on usually comes to people’s desks via commercial and proprietary software that was started by geeks. The “Web 2.0” is sometimes seen as the “trickling” down of the free software development spirit into ordinary applications.

Sometimes the problem for this lack of communication between ordinary users and free software developers is social skills. If users lack social skills, not many people notice. If developers lack social skills, however, their projects die and collaboration doesn’t happen.

To increase their impact, geeks form organizations. Organization helps them attract funds, and with funds, full-time support, marketing, and other things can be bought. The simplest organizations consist of working on a project with some sort of formal representation, common processes being formalized, and dedicated hardware. The more complex it gets in terms of processes and requirements (hardward, bandwidth, representation), the more funds are needed, and simple donation-based funding may not work anymore. Membership schemes and corporate or state funding is required. Some companies might simply donate more money, or sponsor certain events, but others may dedicate one or more employees to work full-time on selected projects, if the project is critical for the company.

Organizing also helps geeks cooperate when they have more idealistic goals. The formal processes allows them to develop roadmaps, release plans, coding and interface guidelines, etc.

FreeSoftwareMotivations has more about the people that move from the ordinary user group to the geek group.

Tags

CategoryDiagram

Discussion

I think you’ve struck on something, but I think it runs much deeper than you wrote above!

I met a ton of old-school activists at the EvolutionarySalon, and the rift between the pre and the post Internet activists is enormous.

The old schooler’s are all about uniting and amassing power in a center.

The kids (such as myself) are all about networking. We hear the things the older folk are talking about, and we go: “That’s crazy! Don’t you know there are already 10 groups working on just what you’re talking about?” They don’t even hear it. Then I understand why we have the LargeOrganizationsDilemma; they literally cannot understand (without a lot of 1-on-1) how we work, how we do it, how it ends up working very well.

To be sure, there are valuable and important things there. But the focus on network is near-zero.

Whereas Free Software projects are extremely networked.

These result in radically different organizing strategies.

At the camps, it’s just sort of assumed: “We are providing a service. This meeting space is so you can do what you do best.” In the old school world, if you’re provided a space, it’s under the assumption that you’re going to figure out how you directly contribute to a specific agenda shared with the space holder. (The evo salon was is between the two perspectives, leaning centerward.) That is, it is not a “network and services” model.

Mindboggling, especially when you consider that the theme of the event was: “Catalyzing collective intelligence, and Social creativity.” It took me several days to just figure out that everyone didn’t understand how we in the hacker community do things.

That’s why you get things like sessions on "How Hackers Collaborate."

But, to be fair: How we collaborate is not possible without the communications technology that we have. When you’re just stuck in a city with a handful of other people, and no web pages, collaborative networking is super difficult.

See also: http://news.bbc.co.uk/2/hi/technology/4683385.stm & http://www.rand.org/pubs/monograph_reports/MR1382/index.html

Incidentally, I would argue with the following:

  • Hackers very much are about usability, simplicity, slick design.
  • Explain how the GnomeHig? [2] functions, how distributions work as gate keepers, how intense the motivation is by groups to meet the guidelines, how intense their desire to be included in the distro.
  • The “asocial facetious arrogant” is so old school. When there are those people, there are other people that work as an interface to that. This is a GeekHealth thing.
  • Point to the OpenUsability? [3] project, and the KdeUsability? [4] project.
  • We are conquering the desktop. Working at a Windows-Linux migration company, that’s quite clear to me. China is no small deal. Nor is South America.
  • We are conquering the desktop. But this stuff is all interrelated. The ideas and benefits spread across fields. The desktop developers are helping the server writers, and vice versa. If you work on Python, you’re helping the desktop efforts. And so on, and so forth.
  • It works out evolutionarily, it works out opportunisticly, like real problem solving. That’s the “try a ton of stuff, and then take advantage of the few things that work really well” approach. And that story is hidden within your diagram. That’s where the “oh, wow, look at that!” stuff comes in.

If you tried to plan it all out, you would fail. The waterfall will not work.

What would work, I think, is a CyberneticRoadmap? project of some sort, if the semiconductor roadmap is anything like it. And there are many signs that they are comparable. Tons of projects in different fields, connected, working towards roughly the same sorts of ends (but not monolithic, not the same,) unknown territory, unknown costs & benefits, lots of research, yadda yadda yadda. Looks like Free Software, to me.

Anyways, I’d just say a little more than: “Nah. We just work on what we want to.” That may be true, but the collection of all those “what we want to’s” results in a process that is trustable. But you don’t give that impression, if you just say: “We just work on what we want to.”

I guess I am old school. 😊 As Oddmuse authors, the feedback from my users on #wiki or #oddmuse and via mail is the most fantastic thing that happens to me. Fellow geeks that help translate the manual and write their own extensions to Oddmuse – fabulous! That’s where my motivation comes from. That means that I just don’t care enough about my mom and dad being able to install and run their own wikis. (Although I’ve been trying to make that my goal…)

You said that hackers care about usability, simplicity, and slick design. And I agree with you. But the reproach is still there, eg. all the attacks on wiki syntax is usually framed in those terms. So here we have old school suits accusing us of lacking something we believe we have plenty of. Why is that? That’s what I use the diagram for: The point is that they don’t talk. Suits make demands, which geeks ignore. Suits spread a whole lot of negativity, which we ignore by listening even less. Geeks end up never listening even when suits are right, or interesting, or both. That’s the point I tried to make with the diagram.

The diagram doesn’t say whether geeks or suits care about simplicity. The diagram does say that plain users care about those, but they have a hard time communicating with geeks. And suits don’t communicate, either. They just sell and control. So basically ordinary users are left out there on their own. People like my parents. I’m not comparing ordinary Emacs users that talk on the newsgroups, where the outer circle of Emacs development hangs out, which then influences the kinds of discussions the inner circle has on the emacs-devel mailing list, which finally the maintainer reads. I’m talking mom and dad kind of users. They don't even read English well enough to read an ordinary manual.

Basically the only real input geeks are getting is from newbies – former simple users that are turning into little geeks – and their fellow geeks. The diagram doesn’t even say what free software is or is not: Simple or complex, opinionated or not, flexible or archaic. We don’t know. All we know is that whatever satisfaction geeks often feel amongst themselves, the suits and moms and dads don’t know about it.

I’m not saying that this is right or wrong. In a way, I understand why it is that way, and I think there’s not much we can do. I feel that all this talk about human interface guidelines, and before that, all the talk about having to conquer the desktop – all this strategic planning was descriptive instead of prescriptive.

I claim that nobody who didn’t care about desktops started working on desktops because he read somewhere that GNU/Linux would have to win big on desktops. I claim that it doesn’t work that way. Only when fellow geeks started admiring other geeks for having worked on slick interfaces, neat libraries, cool GUI stuff – only then did things change. And whoever kept writing the articles that geeks should do this or geeks should do that – they just didn’t get it.

Well, wait; I don’t buy it: There are communication pathways between “normals” and “geeks.”

When I was at WikiSym, I observed two major distinct themes:

  1. Spam must die.
  2. WysiWygWiki?.

There were a lot of “normals” there, and the geeks were very receptive; Several had WysiWygWiki?, and they were stars for it. It was clear that the users appreciated it, wanted it, demanded it.

And at RecentChangesCamp, there was a lot more conversation between geeks and normals.

We’re approaching Penguin Day here in Seattle. It’s entire focus is on connecting geeks with (non-tech oriented) activists, and showing them how they can use Linux, Drupal, etc., etc.,. This conversation is happening.

You’ve sort of described it as if the one major thing geeks care about, is what other geeks are interested in. This makes very little sense to me, by my life’s experience.

  1. I think REST sucks, because the arguments behind it are horrible.
  2. I think the SemanticWeb is cool, because of the amazing things it can do.
  3. I think CommunityProgrammableWiki is awesome, I see the path to PervasiveProgramming?.
  4. I think WysiWyg? is awesome, because it makes things easy.
  5. I think solving ContentRouting is awesome, definitely not because some geek thought was popular, but because it solved a super-important problem.

And I don’t understand the argument about the HIG. No HIG, No GNOME. It’s as simple as that- you can’t design a UserInterface to a specification that isn’t there, and then have it come out matching well with other people’s user interfaces. You know that. The HIG isn’t descriptive; It’s clearly perscriptive. I mean, what about it isn't perscriptive? This is pretty nitty gritty instruction!

Do you want to know how I come to be here? It’s not because other geeks think it’s cool. If I wanted to do something cool, I’d be writing AJAX or making electronics projects for Make magazine or something. No, I do this because it’s strategic. Because after I spent 2 years researching communes and coop movements because it seemed to me to be the only alternative to the cruelties of capitalism, I realized that the future was a looming force that I and most people have no idea about, and I also realized just how dramatically important communication and intelligence systems are. I started to realize that the future emmanates out from all of this stuff, and I realized that work on Free Software could be one of the most Democratizing things possible. Of course there are a zillion of reasons and impulses, but when the moral hand plays the rudder on the other impulses, this is how it plays out in my mind.

I agree: It’s misguided to say: “Geeks should all do this,” or “Geeks, should all do that-” that’s severely misguided. But I think it’s also misguided to say: “Geeks just do whatever they think is cool.” If geeks admire the slick interfaces, neat libraries, and cool GUI stuff, there’s a reason for that, and it’s a reason that runs deeper than just “style.” There is deep power in slick interface, well organized library, good UI, and great tools.

The iPod may be hip, but it’s also amazingly functional. If it wasn’t functional, it couldn’t be hip.

Eh, … I’m feeling too forceful, like I’m speaking when I should be listening.

I’m sorry; I’m reading this over more carefully…

love the new image! it’z so true, parentz (& lots of others) are so like “boil it down for me”, “what’s it about?” and I start saying, “well it’s open source, collaborative…” and thier eyes are already so glazed over…

I think the image doesn’t model reality.

The question is, why do people prefer to work on their own visions instead of seeking collaboration.

There may be many answers, some come to my mind immediately:

  • Collaboration is tiresome, you need some consensus, the younger you are, the less desirable. (INABILITY)
  • I want to have my own kingdom, where I’m the leader, “follow me, guys”. Better a king in fantasy than a minister or officer in reality. (EGO)
  • Don’t touch me by your feedback or criticism. In my own sandbox, others won’t be able to hurt me. (FEAR)

All this is not specific to software development or geeks. You find it in alternative political projects as well as in wikis. Probably everywhere. Why do teachers and schools hardly ever collaborate? Psychological anti-patterns.

I find it totally interesting that the image has managed to reveal three totally different points of view in an area that I thought was a no-brainer. 😊 Each one of us has a different point of view, based on introspection and personal background, and each one “rings true”.

I wonder what to do with that. Maybe I should extend the diagram in directions that I personally have not experienced myself. For example, I’ve never seen Helmut’s three organisational anti-patterns. I don’t see them in myself, and I’ve not seen them in others. But I can imagine that it does happen in some projects, and I think that I’d immediately avoid these projects, never thinking too much about it, maybe just noting the arrogance of the maintainers. Actually, now that I’m thinking about it, I remember at least two, no, three projects with maintainers that had the ego problem. Of course, I’d be less prone to find the projects of maintainers with the fear problem, since they would not be advertizing their projects, or not inviting feedback. Those unable to find consensus would be forking away from the projects I’m involved in, so I’d be loosing touch anyway. And yes, now that I do think about, two or three forks come to mind as well.

Anyway, I added some stuff on the left that I thought of – just as newbies turn from “other people” to geeks, so can geeks turn into suits. I also added stuff based on Helmut’s comments on the right: The negative aspects (“geek failures” so to say).

To represent the fact that geeks and ordinary people do talk from time to time, I’ve added an arrow in the middle.

I like it!

But, I’d like to add two things to it:

  • A transition path, from the “little geek” to the “geek,” (perhaps labeled: “Time, Study, Construction, and Conversation,”)
  • …and then I think there needs to be some recognition of the enormous organizations that geeks form, such as:
    • the Apache Foundation, and all the myriad subprojects
    • the W3C
    • the IETF
    • the KDE project
    • the GNOME project
    • …etc., etc.,.

I don’t know how you’d represent these in the diagram; perhaps as a set of graphs with dotted borders round clusters of nodes, or something like that. I would position some of this network between business and geeks, and some between the geeks and the “little geeks.” In reality, several cross all of those, (such as the KDE project,) but I suppose that’ll be kind of hard to draw.

The point is: “It’s not a big disorganized jumble of individuals and tiny groups.” There are actually promises and schedules other there.

I also wish there were a space for designers, artists, etc., because we shoot ourselves in the foot to exclude them.

Seems to me there are two separate questions here:

  • Why don’t geeks all work on the projects which are most “important to end users/useful/productive", for instance, desktop ease-of-use for GNU/Linux?
  • Why don’t geeks collaborate more rather than having separate projects?

These questions are related (if geeks are just anti-collaborative in nature, that explains why they don’t all end up working on one big GNU/Linux desktop project) (if there are as many different “worthy” projects as there are geeks, that explains why they don’t all work on the most “important” projects; because they ARE all working on the most important projects; but that also explains why there isn’t as much collaboration as you might expect), but they’re not the same.

  • Alex’s “Geeks only get feedback from other geeks – no one joins a free desktop project because they read an article saying free desktops were “important to end-users”” addresses the first question but not the second.
  • Helmut’s “I want to have my own kingdom, where I’m the leader” addresses the second question, not the first.

The diagram right now is good, but I also think that it is dead.

What I mean is: I think it represents the way things have been, not how they should (and will likely) be.

That is: It is intensely programmer-centric, and has less than flatering things to say about non-programmers.

That artists are appealed to for glitz & shine I think is a losing proposition for the Free Software community.

I think there’s a strong space for a division of roles, and a strong space for project coordinators who are not programmers.

I think the voluntary efforts will cease to be called “Free Software projects,” and more “Free Culture projects,” or something like that.

The only reason that programmer’s came first, is because it’s history’s spear: They were the ones holding the networking software when things first connected up, and thus they were the first to discover this particular CyberneticEconomy.

Actually what I was trying to say in my original diagram was how difficult it was to communicate – between corporations, enthusiasts, and ordinary people. And I felt that this was true for any kind of enthusiasm. Just as a dedicated rock climber has trouble explaining to his family what it is he likes about rock climbing, so does a free software activist have trouble explaining to his family what it is all about.

But I seem to have trouble explaining what it is all about. :'(

Yay! I like the new one. 😊 This diagram is going to grow until everything in the world is on it, but in greater resolution than exists in real life. hehehehe!

Someday we’ll be able to see diffs and animations of the graph’s changes …

I wonder whether making several small graphs would be better … I’m working on my own versions …

Interesting idea. Somebody should take it to the Inkscape buys, because basically it is possible to do a diff between the SVG files, and display the stuff that got removed in a picture, and the stuff that got added in another picture. Then all we need to do is have a way to generate those two pictures from the command line, and we could include it in Oddmuse. 😊

Several small graphs… I don’t know. As I said before, I like complex graphs.

Actually, all you need is an XML diff program, right? Well, a little more complicated than that if you want to display only the changes.

Here’s xmldiff, which is GPL and Python.

BryceHarrington? demonstrated including text in an SVG template frame, at RecentChangesCamp.

It’s a neat idea, and you can find various uses for it, such as making a structured graphical template, and then allowing people to feed text into it from the wiki. So, you get these nicely displayed databases where people can edit either the presentation or the data feeding into it.

I once wrote a program that extracted Python source code that was embedded in an SVG document produced by Inkscape.

(Lion diverges further and further…)

(total aside,the sidebar is making my diff view, my edit view and any thing with images go way down the page, below the sidebar)

About image diffs: My housing co-op is doing some remodelling. We hired an architect to help us get permits from the city. We expected he would draw “existing” and “future” but instead, he drew “demolition” and “construction.” The demolition showed what was being removed and the construction showed was was being added. Both had all the walls and stuff for context. It was cool. :-)

Define external redirect: PervasiveProgramming WysiWyg BryceHarrington CyberneticRoadmap KdeUsability WysiWygWiki OpenUsability GnomeHig

EditNearLinks: FreeSoftware UserInterface

Languages: