In this topic I would like to discuss a workflow for Social Coding that drives the crowdsourcing of content and enables the Movement to constitute a Community of Action.
Note: This top-level post will be updated to contain an up-to-date summary of procedures for building the movement.
Using this forum
When creating a new topic in this forum, consider the Activity Track (see below) the topic fits to best, and select a category or sub-category accordingly. Add a tag to the topic e.g #idea when posting an idea in the #ideation-hub:ideas sub-category. And #challenge when posting in the #documentation:challenges sub-category.
If you find the need to e.g. tag a topic with both #idea and #challenge tags, then consider splitting it up in two different posts and cross-reference them to each other.
There are four parallel activity tracks to the crowdsourced activities in Social Coding Movement:
- FSDL: Elaborate the Free Software Development Lifecycle, focused on project health, sustainability and success.
- Foundations: Elaborate Software and Protocol Ecosystems, focused on substrate formation, evolution and adoption.
- Documentation: Process of Identify Challenge → Outline Best-practice Pattern → Update Practitioners Guide.
- Ecosystem: Help Solve Challenges and Implement Ideas by the Movement’s affiliate communities and projects.
1. Free Software Development Lifecycle
Social Coding is participatory free software development that is inclusive to all people and focused on addressing real human needs. The main focus of our movement is on free software projects i.e. FOSS development. The lifecycle of such projects goes from the earliest seed of an idea, through the entire process of implementation, deployment, maintenance, up to the very end where the project ceases to exist.
More information on the FSDL activity track (click to expand)
Such lifecycle guidance existed before, in the form of the Rational Unified Process (RUP) developed in 1987 by Rational Software Corporation:
The last years of SCRUM / Agile / Lean Startup trends have given a different focus on software development. One where there was less emphasis on the entire development lifecycle. Nowadays negative effects of this focus become more apparent. Agile alone isn’t enough. RUP is at heart an agile process. It’s flaws are likely that it was too prescriptive and tied to formal UML modeling processes.
FSDL will have a similar structure and scope as RUP, but it will be more flexible and tailored for the dynamics that exist in the free software community. FSDL will be a navigable Library of Design Patterns where you can pick and choose best-practices for particular challenges you face in free software project.
Like RUP you will be able to drill-down to relevant content in intuitive ways, and patterns may be presented in a map (e.g. like here). At the same time, as part of the Ecosystem Track of social coding movement, tools and other solutions become available to support the library patterns.
2. Foundations and substrate formation
The Foundations activity track focuses on three subject areas, that are also part of the FSDL:
- Free software project community building.
- Free software project ecosystems.
- Technology and open standards adoption.
More information on the Foundations activity track (click to expand)
1. Community engagement. Most FOSS projects want to build a lively community around the project, consisting of core team, contributors, and any other person that is somehow involved with the project. Building active and inclusive communities is very hard. It requires soft skills, governance procedures, and many other aspects, while it provides opportunities to involve people with different skills and backgrounds to the project. Most FOSS projects struggle with community building, or neglect it altogether.
2. Project ecosystems. Some FOSS projects are part of a larger ecosystem of projects and communities, or enable such ecosystem to be built on top of their work. Building a healthy ecosystem that can grow, mature and evolve in a healthy manner comes with unique challenges, that are both technical and social in nature. Getting independent projects and communities to align with each other, foster collaboration and cross-pollination is the focus in this area: Substrate formation at project level.
3. Technology adoption. Even more challenging is substrate formation at the level of a technnology or open standard. There are less direct ties to the adopters of the tecnology or standard. Participants in the ecosystem must be incentivized to participate in evolving the technological landscape and make onboarding for newcomers easier. Doing so creates a win-win situation, but that isn’t always obvious. For instance for the Fediverse we can state that there is a “Tragedy of the Commons at Protocol Level” and Fediverse faces Major challenges as a result of that.
In order to tackle the challenges posed by 2) and 3) there must be a focus on substrate formation i.e. the people and effective processes that can drive ecosystems and technology adoption and that can innovate and evolve them collectively.
3. Crowdsourcing documentation
Documentation exists on the Social Coding website. Given the scope of the FSDL the website will gradually expand and must be crowdsourced. The website has three main content sections:
- Challenges: Documents challenges encountered, relates them to the FSDL and to Best Practices that can solve or mitigate them.
- Practices: Documents best-practices to solve particular Challenges, and how they are related to the FSDL.
- Practitioners Guide: Recipes / guidance for entire processes within the FSDL (referring to multiple Challenges and Practices).
More information on Documentation activity track (click to expand)
The Challenges and Practices will be documented according to a template for consistency. Together they form the Pattern Library. The various patterns cross-reference each other for navigability, and contain pointers to external resources. The Practitioners Guide is more of a free-form format. But all of the pages need to be succinct, easy to parse and understand. Less is more.
Besides the three main content sections there are more pages that will be updated and improved over time.
4. Social Coding ecosystem
The Social Coding Movement is a co-shared umbrella community that many other communities and projects can use as their home.
TODO: Elaborate this activity track. Until then for more information see this HedgeDoc pad.