Redefining and positioning the forgefriends project

I think right now the biggest question is on positioning of the project. Not just on the short term, but strategic long-term as well.

You came into the project with a certain vision on creating a number of proxy implementations, merging them into forge codebases, and then having less need for FedeProxy project to be around. But what the past months have shown is that there are countless possibilities and attractive opportunities that align to a much broader vision.

Those parts may not be initiated and carried out by you and @pilou, but anyone might jump into the community and start work on sidetracks and parallel projects that are under ‘community umbrella’. Instead of say “No, that is not what we are about” these initiatives should be highly encouraged imho as part of community focus, advocacy, and provide incentives to become contributor to the whole. Someone building upon what you do now will be a user, tester, bug fixer, techwriter, advocate, etc. There’ll be synergy.

If all that happens then you need to have separation. Can’t be all in a single ‘ball of mud’ codebase / repo with everything mixing up. Things will have different scopes, use cases, applicability. So then having “Projects” under Forgefriends custodianship, and a comprehensive website from where to drill down into all activity, makes a lot of sense.

Hence FedeProxy might be a building-block, a project on the Roadmap of Forgefriends, towards an attractive vision. You might make the vision “Unified software development” or along these lines. Visions need to seem somewhat unattainable / utopian, yet motivating, and to an extent do-able with lotsa collective effort.

I did not get that when you wrote positioning you really meant redefining the forgefriends project. Our chat today helped me understand that and it sheds a different light on the subject.

The scope of the forgefriends project could loosely be defined as doing whatever is necessary to help developers use different forges seamlessly, in the same way they use different SMTP servers when sending mail. It makes no sense to create accounts on a zillion forges to participate in a zillion project, this has to stop.

It can be considered to contribute to other projects / initiatives because they largely overlap. The https://coding.social/ project for instance. But also advocacy for federated projects such as https://socialhub.activitypub.rocks/ and more.

The idea that the forgefriends project should be redefined is new to me and I would be interested to know what you have in mind.

Copying from Social Coding matrix channel:

How I envision the concept of “forge friends”:

  • We [The People] are dedicated to the Commons, and we want to strengthen and evolve it.
  • We ‘forge friend[ships]’ all across the online world, and in real-life too, to dedicate to that.
  • Our online Commons are supported by free software projects we create together.
  • FOSS is created by communities in a complex free software development lifecycle.
  • One very important tool is the Code Forge where much of FOSS collaboration happens.
  • Being a Friend of Code Forges entails opening them up to all communities in the Commons.
  • Being a Forge Friend means considering the entire free software development lifecycle and fit the tool of Code Forges into that seamlessly.
  • And part of that process works best by adding federation support and integrating with the Social Fabric of the Fediverse.

Note that I deliberately do not mention Github and walled gardens here. That they exist is irrelevant to the concept of “forge friends” which stands on its own. If they are closed, vendor lock-in platform they are just not that much of true forge friends, no matter how many features they cram into their UI.

The vision of Forge Friends is hence a beautiful one, void of the negative sentiments that always come along when saying “we must fight big tech, we must build alternatives, etc etc”. It is important objective, but not central to the Vision.

1 Like

I relate to that, although I would probably word it differently. One of the best features of horizontal communities is that each member has its own vision. And they are all different, which leads to discussions, such as the one we’re having now :slight_smile:

All other bullet points are intuitively aligned with my own vision. But this one trigger my interest because I think forges should be designed to help and assist the developers throughout the free software development lifecycle. Which part of the lifecycle is, in your opinion, out of scope for forges?

Agreed. Important is that we all realize the breadth and scope in which we can dream and take initiatives to realize these dreams to move in a common direction. In my other initiative (beyond scope, but called innercircles) I avoid talking about Vision, as they are too much a straight, formal jacket. And prefer talking Dreams where there’s much more individual agency, but we can still share common dreams :slight_smile:

It is up to Forgefriends as a whole to determine how we shape all of this, and that can take many forms. Right now Code Forges do not fit the entire development lifecycle. There are more people than developers involved, and there are more tools that come into play, plus activities that we do without software support (which may benefit from automation, or just fit in snugly in comprehensive processes).

Just an example, but one barrier to inclusivity on a free software project might be when you ask a completely non-technical person to sign up to a code forge an participate in an issue tracker discussion, which can be quite intimidating to them.

When thinking of that example is also where we are crossing over to what Social Coding means, as it wants to bridge the gap between technologists and everyone else that is involved in any way, shape or form.

Forgefriends has a defined scope. Its goal is to address a problem by working on ideas that leads to concrete outcomes which are expected to have an impact. It was articulated about ten months ago and some elements should be trimmed because they are somewhat obsolete.

It is my understanding that you think this definition and this scope are too narrow and should be changed. I also think that when you write:

you have mind software that are not in the current scope of forgefriends. If my interpretation is correct, I would be grateful if you could expand with a few concrete examples.

So re-arranging my thoughts, sketching…

"Forge friends"

(the concept, philosophically)

  • Who: “We The People” and “The Commons”
  • What: Strengthen our bonds (People) and Evolve our work (Commons)
  • Why: Humanity and Freedom
  • How: Supportive and open technology and tools

Forgefriends

(the initiative)

  • Who: Open community
  • What: Foster collaboration (People) and Free software development (Commons)
  • Why: Mitigate “Tragedy of the Commons” (?)
  • How: Free software development lifecycle support & automation
  • Organization: Top-level initiative and sub-projects (forgeproxy, specs, …)
  • Strategy: Forge relationships, unite friends, collaborate

Social coding

(the movement)

  • Who: “We The People” and “The Commons”
  • What: “The experience of strengthening social bonds between People in order to evolve the Commons”
  • Why: Need to “Bridge our divides, unite” (People) “Shape better world, brighter future” (Commons)
  • How: Social fabric of the Fediverse (People) and federated task-oriented apps (Commons)
  • Organization: Community-based movement, social coding projects, affiliations
  • Strategy: methodology (social coding), supportive tools (coding social), ‘wield’ the Fediverse

…and that may need to be further improved.

In reply to you @dachary the “our” refers to We The People, so indeed not part of Forgefriends. Both Forgefriends and Social Coding focus on the free software development lifecycle, and the latter possibly more broadly so, in scope. And different in nature on what is focused on and how people participate in general.

1 Like

The current scope and definition is very long and detailed, with a lot of specifics making it hard to determine what is in scope and what not. Given the potential of the concept of “forge friends” and taking into account a position that is as attractive as possible for people to help realize it in all kinds of ways…

I would try to come up with a Mission and Vision that gives a frame of reference to the space that Forgefriends occupies, without being restrictive to the creative solutions that may exist within. Like e.g. …

  • Mission: Forgefriends dedicates to making all functionality of code forges available for anyone to freely use and extend.
  • Vision: Forgefriends allows all people to participate in the creation of the free software projects that serve our commons.

That can be improved, of course, but I think you get the idea. I didn’t even mention ‘federation’ as it is a technical concern, and may just as well that P2P is used and many other means that help democratize forges.

And you get something along these lines conceptually as the umbrella structure that Forgefriends represents:

forgefriends-umbrella-community-idea

1 Like

Could you please give an example? I assume you do not refer to the umbrella concept because I think it is quite clear that is not in scope.

I think forgefriends occupies the space that is defined by https://coding.social/. And there could be an intermediate space such as forges.social to be defined as you suggest:

all it needs is a different name and voila :slight_smile:

  • Mission: forges.social dedicates to making all functionality of code forges available for anyone to freely use and extend.
  • Vision: forges.social allows all people to participate in the creation of the free software projects that serve our commons.

forgefriends would then be under this forges.social umbrella.

That’s a wonderful solution, @dachary :smiley:

1 Like

Happy New Year :tada:

What I am trying to convey is a positioning of this community such that it can facilitate any initiative started by arbitrary “forge friends”, i.e. any project dedicated to the Mission and Vision. How might that looks like?

My first idea, described above:

  • The umbrella → forgefriends
  • Supports → coding.social (broader umbrella)
  • One such initiative → forgefriends ‘IssueWelder’ (whatever name)

@dachary’s variation:

  • The umbrella → forges.social ?
  • Supports → coding.social (broader umbrella)
  • One such initiative → forgefriends (ecosystem project)
  • One such initiative → forgefed.io (ecosystem project)

That is a possibility. Another variation is… forget about forges.social. We already have coding.social:

  • The umbrella → coding.social (uses forum top-level category)
  • Advocacy concept: “forge friend” (ecosystem)
  • Social coding toolbelt → forgefriends (ecosystem project, free software)
  • Social coding toolbelt → forgefed.io (ecosystem project, free software)
  • Social coding toolbelt → forgefriends lifecycle (ecosystem project, specification)

I named the specification track “Forgefriends Free Software Lifecycle” just as an example for an aggregate name that breaks down into “Issue Management”, “Code Review”, etc. specification documents. The specs would follow up where Forgefed ended.

That specification track would then be part of Social Coding documentation website, together with other specs that fan out further (e.g. Ideation).

Agreed. If someone is willing to work on forges.social it can happen. But I’m not sure anyone has the energy to create such an umbrella right now.

This last variation is where we almost are right now. It means both Social Coding and Forgefriends accepting this relationship, and any other initiative that is part of “forge friends” ecosystem and on this forum should do as well. I think it is very attractive in terms of positioning.

1 Like

In Positioning Social Coding and Forgefriends - #2 by aschrijver I have elaborated on the third variant I described above.

1 Like

Here’s a quick diagram of the “Forge Friends” concept, that demonstrates the pillars on which it stands. Note that its just a bit of brainstorm right now.

forgefriends-mission-vision-strategy

1 Like

Btw, I am still unclear on your and @pilou’s original perception on what (then) FedeProxy was meant to be. To me it appeared as:

  • Fedeproxy / Forgefriends: FOSS project implementing proxies to federate code forges, starting with issue federation.
  • Diversity: Lower barrier to allow people to help us implement the proper code to achieve that.

Whereas I was and still am thinking more like:

  • Forge Friends: Broad ecosystem of any initiative that strives to liberate code forges to the benefit of free software development.
  • Diversity: Allow anyone involved in that ecosystem in any way to come along and collaborate in any way they can and want to.

My perception may be totally wrong, and you may just have preferred a different approach to come to something that is very similar. If that’s the case then I still think you’ve set a road that’s likely to be unnecessarily long and hard. With my repositioning I am trying to increase the success criteria of your original idea (the proxies), the likelyhood of a growing community of active contributors to emerge, and the opening of additional opportunities by shining a light on the possibilities and enormous potential of ‘forge federation’.

All my energy is dedicated to having an ongoing productization track, which I felt was missing in the “idea → user research → code” approach I perceived. I wear a “product owner” hat when writing all this (please don’t fall on the term, just refering to a common role in software dev).

When I look at the forgefriends.org website, I see missed opportunity as well due to the lack of productization. It will lead among others to fewer contributors than you might have had already. I feel you may fall in the trap of being overly tech-focused.

I have spent way more time in the forgefriends community than I ever intended to (as said before, my priorities for the Fediverse lie in a different direction). The fact that I spend it was my curiosity of 1) What is Forgefriends actually? 2) Do you realize the enormous potential of Forgefriends? 3) Do you intend to realize Forgefriends to its maximum potential? and 4) How can other people become motivated to do so too?

There is value in expressing your visions, ideas and criticisms.

Some of them are seeds that blossomed because someone worked with you to implement them (the name and logo change is the most luminous example). Others became a reality just because you voiced an idea once and someone decided to act on it and committed to finish it (the webinar is the most recent example).

Since you have many ideas and you see quite clearly what is lacking in forgefriends (and other initiatives), it stands to reason that most of the time nobody is available to work on them. Which can be frustrating and discouraging when you contemplate the magnitude of the work that lies ahead.

I also understand that you can be frustrated when I do not focus on what you think is most important. But in the end it is up to me to decide how I spend my time. In my opinion it is the right balance between what forgefriends needs to move forward, my skills and what makes me happy on a daily basis.

1 Like

Frustration is the wrong word, because I’m not. More fascination with the opportunity. Of course I am in no way trying to make you spend time in any way different than how you want to spend it. With my inquiries I am also trying to find how I am willing to spend mine :grinning_face_with_smiling_eyes:

1 Like

I think that you make a significant difference by spending time on forge federation (not just forgefriends). Without you, the majority of the work done is on writing software. You bring balance to the forge (pun intended) :smiley:

1 Like