Fediverse needs: More developers

Following up on the poll and discussion What does the Fediverse need?, let’s talk about the problem of too few developers.

What are the facts? How can we prove if this is a problem or not? What are the causes? Effects? How many developers is enough?

2 Likes

For the facts, https://git.feneas.org/feneas/fediverse/-/wikis/watchlist-for-activitypub-apps is a great source to try and enumerate. There are so many projects listed there (thanks @aschrijver for your constant work) that if the alive/dead ratio is correct, then we’re not doing too badly. Still, I want to find out how many contributors each has had in the last 3/6/12 months.

Edit: I ran through the 42 repos of every site in the Social Media category, adding the notably absent Diaspora, and I get a grand total of 76 active developers. Looking at the commit logs and pretty graphs I’d estimate that putting it in terms of full-time developers, we’re in the single digits.

3 Likes

Wow, that’s really not much. I’d have expected a lot more.

1 Like

Thank you very much @weex. I was planning to so something similar with the list, but never took the time to do a count. In earlier articles I estimated between 400 and 500 active people, but amongst them the occasional contributor, the researcher, and SocialHub active member.

For the watchlist I proposed to no longer move to the ‘Dead’ category, but leave them at their place and maybe add an icon. The watchlists are input to Fediverse Party, where apps that are alive must be shown. On the watchlists though, any project that is open source is relevant, so that devs can pick it up again or reuse the code.

Btw, there’s also the https://git.feneas.org/feneas/fediverse/-/wikis/watchlist-for-activitypub-developer-resources where some active devs can be found.

I have followed up to this in a separate topic with a broader scope:

:sunrise_over_mountains:   The Fediverse Saga: How Shall We Conquer Our Challenges?   :sparkler:

1 Like

To help answer this, I posted a poll David Sterry: "If you contributed to a #FOSS project, but don't …" - Mastodon 🐘 please share to help get more responses.

3 Likes

According to the results, most people move on when they lose interest, and not many people seem to be hit by the contributions not being accepted issue. Other had more votes than replies but some of the issues raised were around inclusion, bad behavior including sexual and pushiness, and RL needs. Only 49 respondents and not really scientific but a good start.

Still to look at in an initial pass are the effects of not having enough developers and trying to come up with some measure of what is enough. Perhaps it has to do with what kind of work sits undone, are critical tasks and bugs ignored, has it been more than x days since a meaningful commit, or even the ratio between contributors and users getting out of whack.

1 Like

When I talked about the risk of too few developers dedicated to Fediverse evolution, I was mostly referring to collaborating to make a stronger foundation. This is imho most important of all.

Whether an individual FOSS project is happy with just a single dev coding a weekend here and there, is up to the maintainer. There is one issue in that any new developer wastes time to figure out how AP works, because - besides the spec - a lot of complexity is not documented. The onboarding is harder than it could be.

And then there is the choices the developer makes. If they develop a completely new feature they might invent protocol extensions on-the-fly. They remain hidden in the project, most often only in the codebase itself. The next dev with a similar need might reinvent something similar but incompatible, or needs to coincidentally know about the other dev and dive into that codebase.

This leads to a very happenstance and inefficient evolution. It is like ‘spaghetti code’ ad-hoc development by globally distributed teams that hardly communicate and use different methods and languages. It is a recipe for failure. And when communication does take place (e.g. on SocialHub) then it is not finished, inconclusive, not followed-up on, etc.

2 Likes

Early on I was looking for reference implementations (like standalone AP servers) because those make it easy to do AP Hello World. If I run across any developers who are interested in federation code I’ll try to find out what their favorite language is and send them to the best AP implementation in that language.

I wonder if there’s a market for an AP-lite that makes it clear that the extra complexity should be handled on top thereby inviting additional protocol layers.

2 Likes

First a question - who is meant by “developer” in this context? Here [2] is a definition “Who is a Hubzilla developer?” that I subscribe to and was one of the reasons I dived into Fediverse ~> Hubiverse 5 years ago.
And now a thesis: Fediverse needs solidarity

Justification: Exactly 5 years after my acquaintance with Fediverse, I feel like a refugee in Fediverse space. Since a few weeks I am forced to look for a Hubzilla-enabled webspace instead of working on my projects because - in my opinion - I assumed according to the principles announced in [2] that I as a participant of the Hubzilla community and creator of bug reports have a right to call myself developer and to express my opinion on an equal footing with the programmer. What has become of this is a [3] - in which I had to listen to insults like troll and the like. And in the end, my current webspace provider - a nice contemporary to whom I owe the fact that I have had an excellent Hubzilla-enabled webspace for several years - made it quite clear to me that I am prsona non grata on his webspace.

It’s easy to explain as in [2] “Anyone who contributes to making Hubzilla better is a developer.” But it gets complicated and, as in my case, uncomfortable, you are forced into an escape if you try to live by it and express your own opinion. Therefore = Fediverse needs solidarity =

During my escape I had time to think about basic things “Does it have to be Fediverse?”. My answer - as of now - is actually not. And paradoxically - when I expressed my disappointment that after a couple of channel moves from one hub to the other I lost a couple of texts due to technical reasons - a developer who intends to program things around Zap protocol recommended me to make local backups of my texts. Seriously - here’s Zap protocol, where the developer promises:

Start of quote
Failsafe: Because the best time to have a current backup of your data is 10 seconds ago. Clone your online identity and content to multiple sites using the Nomad protocol and mirror any changes in near realtime. Then if your chosen site goes down (either temporarily or permanently) or you get booted off of it for some reason, your online life doesn’t have to come to an end or force you to start over. All your friends and all your content are available on any of your cloned instances - at any time.” Zap - Welcome to the Fediverse
End of quote

and I have to resort to conventional backup solutions and save my texts locally on the hard disk :-).

= Source list =
[2] Who is a Hubzilla developer? - Hubzilla Help → developer/developer_guide
[3] Fix the problem of PhantomID’s sustainably, 10.09.2021 - https://zotadel.net/channel/support?mid=b64.aHR0cHM6Ly96b3RhZGVsLm5ldC9hY3Rpdml0eS8xNDgwZTRmNS1lODA3LTQ5ZDktYjk4My02ODU0MTgzM2Y4Mjc

1 Like

When I went looking for data, the main source was GitHub contributors so I would count anyone who creates or improves comments, issues, code, or documentation. The reason I didn’t go with contributor in the original question is that it’s too broad of a term. A user of a platform, even a scraper is technically contributing something to the overall project but I want to hone in on people who help the Fediverse progress and develop. Perhaps it’s better to say “More contributors of issues, docs, designs, and code”.

I’m sorry to hear about this experience. On the one hand I like the word contributor here, as it’s presented in context rather than the attempt to redefine developer, and in that case I’d call developers contributors as well.

The real issue is this idea of being on equal footing with the programmer. I’ve seen this pattern before and it’s always disappointing when different peoples’ opinions carry weight that is based on the kind of work they do and I see it as counter-productive. A strong project needs everyone: testers, documenters, cheerleaders, coders, designers, and many others.

What we should foster is an environment where everyone is invited to bring their best. When conflict develops, it should have an outlet which helps the project move forward perhaps with independence rather than turning people off or sending them far away.

So I agree on the solidarity point and not just on a community operations standpoint but also in terms of goals. The shared goals that I’ve observed most commonly are defined in the negative, against tracking, protection against harassment, not-using big tech platforms and while I agree that those are important issues to deal with, I’d love to see a more principled construction. The FSF has the four freedoms. Maybe the fedi can have some universal human goods that it seeks.

If you want to pursue this solidarity problem, I’d recommend creating another thread. It would be interesting to explore any data around that problem and then invite more solutions than the universal human goods manifesto I’m alluding to.

Sufficient for what? I assume that the cooperation, the viability of a community could be noticeably better if the community defined the project goals in a more concise and understandable way. I find the Lean Canvas format https://debane.org/franck/wp-content/uploads/lean-canvas-powerpoint-template.pptx helpful. Maybe it would make sense to think about a uniform format for project presentations for the various FLOSS projects? The many project business cards could then be made accessible in a FLOSS project search engine. So that potential contributors and projects can find each other more quickly.

1 Like

Correct me if I’m wrong but I think you’re trying to get to root cause of the not-enough-developers problem which is great. Maybe not enough developers is the wrong problem. If so, I’d like to discuss in this thread why.

If you want to prove out a sub-problem I’d suggest making a new topic so this one stays focused. It could be called Fediverse needs: Concise and understandable project goals

One thing I liked about Lean Canvas (I only just looked at it for the first time) is that it starts with problems and that’s what I see as the focus of this Fediverse needs series of topics. The theory goes that if we want to fix anything first we must understand what are the right things to fix.

So that we are not talking past each other, I would like you to confirm explicitly that when we look at, analyse

use “developers” and “contributors” as synonyms.

Yes, I can confirm that and my reasoning is a few posts above.

I think that a clearly recognisable perspective, a common goal for the whole community, not only for the programmers, is missing. My suggestion is to create c4social lean canvas from the perspective of potential users of Fediverse, of potential Fedizens. Here as a suggestion for discussion:

Problems

  • There is a lack of digital spaces for people who want to meet in digital space in a self-determined way, unsupervised by GAFA and the state
  • There is a lack of knowledge about the attractive possibilities of Fediverse
  • Respectful interaction with each other is often missing in Fediverse communities.

Solution

  • The respective communities must adopt a code of conduct
  • the community needs to establish structures and processes which
    – spread knowledge about the possibilities of Fediverse
    – ensure compliance with the code of conduct

Unique Value Proposition
Develop Fediverse on its own as a liveable space for work and leisure.

Unfair Advantage
the FSF has four freedoms
establish a professional service “Host Your Own Fediverse Instance

Channels
Fediverse communities:

  • Mastodon, Pixelfeld, PeerTube, FunkWhale, WriteFreely, Friendica, Mobilizon, Pleroma, Misskey, Diaspora, GNU Social, Hubzilla, Lemmy, BookWyrm

Conventional media

  • Conventional “social” networks such as Twitter, Instagram, Facebook & Co.
  • Newspapers, magazines, TV, radio

Face-to-face events

  • Conferences, webinars, telephone and video conferences
1 Like