March 31, 2021
March 2021, a grant was approved to bootstrap an incremental effort towards forge federation, starting May 2021. Pierre-Louis Bonicoli and Loïc Dachary will have until January 2022 to complete the milestones, each of them working 2.5 days per week on a fixed schedule (Wednesday, Thursday and every other Friday) and only communicating publicly on the forum and the chat room. This will allow anyone interested to participate and understand every details but it will also be very noisy. A series of 11 articles (this one + 9 + postmortem) will be published for the benefit of people who want to follow the progress of fedeproxy from a distance.
User research is the first item on the roadmap because, in the words of Jan Dittrich, an active member of the OpenSourceDesign community:
You may be very motivated to start designing your future product now and research based on the product features you have in mind, asking for preferences and evaluate your product ideas with the users. But if you focus on the product now, your research findings will be tied that specific product—which may or may not be useful for your users. If you instead focus on the user, your findings will be independent of a particular product implementation.
To keep this manageable, it will go like this:
- Prepare the research
- Find participants among software developers, organizations and forge maintainers
- Prepare the research sessions
- Create an intercept interview script
- Conduct interviews with the participants
- Organize an affinity mapping session to identify emerging themes
- Analyze the results and write a report with recommendations for the implementation of the fedeproxy user experience.
Hacking a showcase
Before the grant was approved, work started on fedeproxy, at a slow pace and for a single use case: adding a comment to a merge request. The goal was twofold:
- put together the building blocks of a fedeproxy product
- Django server
- ActivityPub federation
- Continuous Integration
- hack something that can be used daily by the developers
In the spirit of dogfooding it seemed like a good way to validate the incremental approach advocated in the fedeproxy project description.
Now that the grant was approved, it seems worth completing this hack because it can become a showcase that will demonstrate what fedeproxy is about, better than any written explanation:
- The fedeproxy service runs with a proxy for GitLab and a proxy for GitHub
- The Ceph project is hosted on GitHub
- A Ceph mirror is hosted on GitLab
- I notify fedeproxy that the Ceph project on GitHub should follow my actions on the Ceph project hosted on GitLab
- A GitHub user creates a pull request and fedeproxy mirrors it on Ceph project hosted on GitLab
- I read the merge request and add a comment.
- The fedeproxy server copies my comment over to the corresponding pull request on GitHub.
Thinking about the future
It’s never too early to think about how a project can benefit from having more resources or cope with a lack of resources. Before the grant was approved, the idea was that it would be a pet project, progressing at a slow pace depending on the needs and inspiration of a few people (or more likely a single person). Now that funding is approved, fedeproxy has the equivalent of a full time developer, but only for a limited period of time.
The milestones clearly outline what will be done until January 2022. But it says nothing about what will happen when the funding runs out. Maybe it should go back to being a best effort project going at a slow pace? Maybe more funding is a better idea? Maybe advocating for independent organizations to help with workforce instead of funding? It’s going to be a long and interesting discussion and you’re invited to discuss it in the chat if you feel like it.