DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 963,864 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for Is open source community an example of complex system?
Arthur Borges
Arthur Borges

Posted on

Is open source community an example of complex system?

I've been doing some casual/serious research among some diverse topics as "emergence", "information theory", "complex systems theory", "chaos theory", "complexity", mainly on Wikipedia. Then I realized that it could be a interesting topic to be wrote here, asking if and how the open source community, as a complex system, is evolving and adapting over time.

Top comments (3)

Collapse
 
dmfay profile image
Dian Fay • Edited on

Anything described as a "community" is a complex system, and the open source community is a system comprising many individual communities built around projects, scenes, areas of interest, and so on. These smaller communities interact much as the individuals making them up do, gravitating here or there, building up collective bodies of work, converging, diverging, occasionally squabbling.

Paul Cilliers' criteria for defining a complex system are quite useful (in Complexity and Postmodernism). To sum up, complex systems

  1. consist of a large number of elements
  2. which interact in ways that change over time
  3. richly, with many other elements affecting each individual element
  4. non-linearly, with patterns and sub-patterns which cannot effectively be reduced or simplified
  5. at a relatively short range compared to the size of the system itself (e.g. neuron to neuron)
  6. with loops and feedback, both positive and negative
  7. with their environment, so that the boundaries of the system as a whole are difficult to define
  8. far from equilibrium, requiring a constant flow of energy to sustain and develop the system
  9. adapting to their own histories
  10. without full knowledge of the system as a whole

All of these describe both individual open source communities and the broader social movement or tendency toward open software development. It's especially interesting to think about the Free Software Movement as distinct from capital-letters Open Source, both complex systems interacting dialectically: the FSM originated as an antithesis to closed-source software development, but their viral copyleft licensing became the thesis against which Tim O'Reilly and friends developed the more corporate-friendly Open Source ideology.

If you're looking for a next step after Wikipedia, Cilliers can be heavy going, but I can unreservedly recommend Stuart Kauffman's At Home in the Universe: The Search for the Laws of Self-Organization and Complexity.

Collapse
 
arthurborges profile image
Arthur Borges Author

Thank you a lot for your massive input of feedback to my complex brain system, Dian Fay! πŸ˜‚

I will for sure read the material that you recommended so I can understand better the topic. Wikipedia only amazed the surface of my interest in the topic.

Of what I read so far, my main goal isn't to model and study complex systems modelling matematicaly, because I think that it is impossible, at least for the bigger complex systems which we have.

I intend to fill my heart and mind with the beauty of things like "emergence" and how two or more distinct things can join and develop different properties than the sum of both, and how it can be applied to software and computers in general.

I've been devoting a great part of my professional life to trying to understand the small parts of what computers and the world is made of, but, as it become evident now, the big picture is what we can create and discover by combining and merging those small parts (and those bigger parts so on, after they have been created).

Thank you a lot for your great input!

Collapse
 
dmfay profile image
Dian Fay

There are mathematics involved -- for instance, Kauffman has a wonderful example of complexity emerging in a phase transition as elements are connected one by one. If you have a bucket of buttons and some thread, and you repeatedly pick two buttons up and tie them together, at first that's all that happens. As you keep going, you might, every once in a while, pick up a button that you've already connected to another. But once you've made half as many connections as you have buttons, the magic happens: the odds of picking up a huge cluster of buttons, and the size of that cluster, both increase dramatically.

Like he says though, these are laws rather than models. Modeling is a reductive or lossy process, and complexity is the first thing lost. That's part of what makes Cilliers' work interesting: he was using neural networks, which are themselves complex systems, to represent complexity without reducing it. There's a host of other things to consider there, too, like ensuring that you have an appropriate number of "neurons" for a given problem. Too many, and the network starts inventing complexity and making connections that don't map to the original system; too few, and you're back at lossy modeling.

🌚 Browsing with dark mode makes you a better developer by a factor of exactly 40.

It's a scientific fact.