Hi Daniel, I am delighted by your interest in Social Coding. In this topic I will elaborate more of the thoughts that kept me busy past couple of years.
Long intro… it is skippable
A bit more background on Social Coding and why its so holistic and broad in scope, is in order. As a generalist I’ve been passionate advocate and community facilitator for humane technology, Free Software and the Fediverse for the last 5 years. Before that I worked in as IT employee in many different roles for 18 years. Like so many people I’m very worried about trends in society, wicked problems where I see a root cause in hypercapitalism, capitalism “run amok”. I am not anti-capitalist per se, but I avoid this overloaded term. What I’d like to see is emergence of holistic sustainability throughout society, and working in software myself, my focus became Free Software and the Free Culture movements creating it. Working in companies with Scaled Agile and such I was already convinced that “coding is social” and many (if not most?) IT project failure is caused by communication issues and overly dogmatic focus on technical aspects rather than social ones.
FOSS based on the Four Freedoms has been very successful. Rather than “software” one might say that it is “(F)OSS that has eaten the world”. And yet, I’ve come to see, FOSS is incredibly weak. There’s something very significant lacking in the Free Software movement: the outlook towards sustainable projects where its practitioners manage to eek out a decent living, while applying sustainable (post-growth) business models. I recently (somewhat melodramatically) exclaimed that there’s a Fifth Freedom. One wielded by hypercapitalism: The Freedom to Corrupt. The reason for my frustration was the Fediverse going mainstream due to Elon Musk, and the realization that in all the years before the FOSS movement hadn’t been able to organize the technology substrate enough to have any confidence of staying in control against a corporate onslaught that may be coming now.
My insight is that FOSS works very well at individual project level, but not anywhere beyond! Not at levels of technology adoption and technological ecosystems. There is a wicked problem here too, and it is one that utterly fascinates me.
When looking at FOSS weaknesses one might reflect on: “Why can Big Industry profitably mass-produce output in hypercomplex factories that require global supply lines, while any moderate FOSS project with a nice developer community around it cannot be self-sustainable?”. In most cases projects are lucky if they get costs of their infrastructure back.
Social Coding focuses where FOSS projects go beyond the audience of Hobbyists (where projects are often started), and long-term sustainability and project health are central themes. FOSS developers are, as a rule, overly tech-oriented. Hence at the project level Social Coding will encourage them to take the entire lifecycle of the project into account. There’s some inspiration here from the old RUP method, where the whole of the Free Software Development Lifecycle (FSDL) is considered for best-practices and social coding involves crowdsourced creation of both a pattern library and tools that facilitate these patterns.
Things get more interesting still where FOSS projects involve creation and adoption of new technologies and/or establishment of large-scale ecosystems of related projects. The best example here is the Fediverse itself, where I have been moderator at SocialHub and collector of federated apps, clients and library projects. Here we are trying to establish a technology substrate - the people and processes that evolve the technology base and open standards - in a fully grassroots environment and open cultures.
Here it is important that people become active beyond individual project scope, contribute to collective efforts. And here FOSS weaknesses are biggest. This does not happen, even if it is a clear win-win for project maintainers to do so. There can be technology-oriented communities such as SocialHub, but volunteer community facilitators have no hope of holding these together while “herding cats”. Dedicating to the chores that no one wants to do is easily a full-time effort. Funding (e.g. grants) for this type of activity might help, but isn’t available.
Social coding and Fediverse
Daniel, you mentioned that “decentralized and open-standards based social networking environment” needs a better elevator pitch, and you are right. I could give one, though it is hard to not short-sell the potential and opportunity that exists. Also in Fediverse culture there is no such thing as an elevator pitch. There isn’t an agreed upon logo for the Fediverse, though there’s one logo often used. The Fediverse is an organic chaos with people going in all directions. There’s tremendous beauty and power in that, which I only recently came to appreciate fully. It makes any technology efforts extra challenging, though.
As part of an EU-funded program for Solidground project I took notes on the major challenges ailing the Fediverse. None of them is purely technical in nature, they are social ones and may have socio-technical solutions that enter new paradigms to how we model our software. First let me mention an article I wrote “Let’s Reimagine Social”, where I contrast social networking - what humans do since the dawn of time - with Social Media, which are platforms to monetize ads. When we extend our social networking online we use technology in support of our daily lives (humane technology), and by doing so create - what I call - a Peopleverse (note: not the peopleverse, just a peopleverse). This I consider a technology vision worthy of pursuit. It has numerous use cases and it is task-oriented in nature, not app-oriented. Apps are silo’s, bags of features that have only superficial interoperability with other apps. I am inspired by Bret Victor and e.g. the Mercury OS design prototype to look into App-free Computing (which is coined by Chris Gebhardt of the InfoCentral project).
The beauty of the Fediverse is in the peopleverse it can support, where people have “personal social networks” that are tailored to the life they live. To their interests and their passions, and the people they like to hang around with. This kind of social networking is deeply human-scale, and notions of “scalability” we see on big platform levels are much less important or even irrelevant. We are talking Small Web here. But how do we get there?
First of all, when looking at the dynamics and culture, it is people’s motivations, incentives, passions and expectations that set them to action, and any form of organization must take that into account. Here large-scale and broad-scoped communities with or without incorporated entity at their heart, do not work. They are unnatural power structures that are doomed to fail in the long run. Small communities, below Dunbar’s number, and intricate relationships between them are imho the way to go here.
When it comes to development of the socio-technical solutions itself, i.e. technologies and software, things are ultra interesting too. Take the FSDL itself and imagine it deeply entwined into the social graph of the Peopleverse. What you get is a totally different paradigm of software development! Look at all existing online development tools that vendors provide. Most aren’t process or task oriented. They are siloed apps without deep integrations within ecosystems. At best you get commercial ecosystems where a dominant vendor provides integration points to their platform. Like e.g. Github and Gitlab. Github feature set slice the development process quite oddly. Providing issue and PR lists etc. the process isn’t included. All features are very dev-oriented but leave other stakeholders out of the picture. On the Fediverse an organic movement around code forge federation is taking shape, where different directions can be taken.
I must add here, that at the moment, when it comes to Fediverse, my attention has shifted to what can be considered Fediverse vNext, with Spritely project as guiding light. Major new technology here is Spritely Goblins, or Object Capabilities. My recent post to Elixir community gives somewhat of a summary.
CUPID Joyful coding and Joyful creation
“Joyful creation” is merely joyful coding projected on the entire FSDL. It includes all the stakeholders in the development process. And it goes on the premise of what motivates people, like the “Joy of Coding” it considers motivations and expectations. In one Fediverse challenge I mention Alternative technology adoption models (TAM’s) that are based on the incentives to adopt a technology.
When looking at CUPID, each of the properties have applicability in the broader FSDL Social coding + Fediverse context:
- Composable: How a “social experience” is composed on the decentralized network.
- Unix philosophy: How building blocks should be universally applicable like Lego bricks.
- Predictable: How I should be able to trust remote services I invoke.
- Idiomatic: This is peopleverse. Tech that is seamlessly supportive to daily tasks.
- Domain-based: How all these tasks are modeled to come together in this peopleverse.
So this is very exciting to me. CUPID at project scopes, more technical oriented and joyful creation where things extend into ecosystems and technologies.
Social Coding Movement and the future
So what are my expectations for all this for all this very holistic stuff? Well, that is simple: None. No particular expectations
That may seem weird, but it fits the adoption models. Things happen when people become motivated enough to let them happen. I am just a single person and have very little say in that, other than that I spread my ideas and crazy thinking. All I value is Progress, however small, and doing interesting things with my life. As anyone should try to do, where there’s a chance.