Positioning Social Coding and Forgefriends

I am thinking about ways to fit Social Coding and Forgefriends neatly together.

Social Coding activities right now follow three parallel tracks:

  1. Community: Passionate free software lovers that work together.
  2. Practitioners: Refine a methodology and collect best-practices.
  3. Supporters: Build a fediverse platform with helpful tools. The target audience.

But I have an idea to restructure as: Social Coding → Movement, Ecosystem, MEthodology

  • Methodology (support track): Social Coding Patterns and Practitioners Guide.
  • Ecosystem (community track): Community collaborations in support of Social Coding practices.
  • Movement (practitioner track): Any Social Coding practitioner is part of the movement.

(The MEME acronym thus formed is just for convenience in remembering, but “meme” is appropriately defined as: “an idea or element of social behaviour passed on through generations in a culture”)

In this organization structure:

  • Social Coding is scoped to: 1. Free software → 2. Entire lifecycle → 3. Make more social.
  • Forgefriends is scoped to: 1. Free software code forges → 2. Entire lifecycle → 3. Make interoperable.

Both are very large scopes, though Social Coding’s scope is larger. Managing them requires:

  • Crowdsourced. Inviting and easy for anyone to contribute.
  • Incremental. Gradually evolving and maturing over time.
  • Extensible. Constituent parts form a larger whole, a framework.

Taking these requirements there’s a great match between Social Coding and Forgefriends:

  • Social Coding Patterns → Forgefriends Free Software Development Lifecycle

Now, what does this mean?

Social Coding Patterns

SCP is an extensible pattern library of simple documents that detail how to resolve particular challenges of free software development. Practitioners can decide which patterns appeal to them and pick & choose what they like to adopt (the Practitioners Guides exists to help them with this).

Forgefriends FSDL

FSDL is a set of specifications that define standards for code forge interoperability across the development lifecycle. ForgeFed’s prior work is continued in this standardization track. Issue Management, where forgefriends initial implementation aims for, is too. The specifications are broken into modules that constitute bounded contexts of the software development lifecycle.

And… since I love to create logo’s :wink:

forgefriends-fdsl-logo-square

Making the match

A pattern in SCP might be called “Foster dependencies”:

  • Problem: Software dependencies are good for reuse, but increase system fragility.
  • Effect: The projects you depend on affect your own project’s sustainability.
  • Solution: Consider projects you depend on as peers, and contribute actively.
  • Ecosystem support:
    • Forgefriends ‘IssueWelder’: Create bridges to issue trackers of your peers.

So there are matches from Social Coding patterns, to Forgefriends specifications, and then to ecosystem projects that impement supportive tools based on these specifications.

The Pattern Library

As an example of a pattern library I am inspired by: Sociocracy 3.0. They have their patterns organized in a map:

1 Like