What is this Interview Script for?
It is a 60 minutes interview to provide a basic understanding of how and why a software developer who works on the code of a forge interacts with other forges such as Gitea, gogs etc.
Essential parts of the interview are:
- Introduction (to explain to the participant who you are, why you are talking to them)
- Get consent (to establish trust with the participant)
- About the participant (to learn about the participant, and their organisation)
- Using multiple forges (to find how and why multiple forges are used during the development cycle of a given forge to get a glimpse of the associated mental model).
- Conclusion questions
- way to take notes (paper, or laptop)
- audio recorder (optional)
Hello there, my name is Loïc Dachary. I'm a software developer and daily user of software forges for the past twenty years. In 2001 I created Savannah by forking SourceForge and I still have a vivid memory of how challenging it can be to work on the codebase of a forge. This year I thought it would be interesting to allow forges to talk to each other (i.e. be federated instead of isolated) so that people can use the forge they like best instead of being forced to use the forge on which the project is hosted. A grant was approved to work on this idea and the first order of business is to conduct User Research to figure out what to do. With an open mind: the conclusion may lead us on an unexpected path. And this is where your contribution is extremely valuable: this interview is about your personal experience, past and present, when working on the codebase of a forge. This will be the evidence showing how interactions between your forge and others are handled.
Get consent for recording the audio of the session
I would like to ask you for your permission to record our discussion today. Recording allows me to focus my attention on you. I will use this recording to make notes of our discussion today. Once I've made the notes, I will delete the recording.
May I record our discussion?
Get consent for questions and sharing notes
You can answer my questions to the extent that you feel comfortable. You're free to choose not to answer a question, or to stop the interview at any moment. OK?
We want to keep information from interiews available for the fedeproxy UX team members. With all our interview we remove personally identifiable information, like names, organisations, countries. We will send you the notes for review and wait for your approval to share them. It would be perfectly ok for you to decide at that time that you don't want them shared with anyone after all.
Do you have any questions before we begin?
About the participant
- On what forge codebase do you work?
- (prompt) for how long have you worked on this forge?
- (prompt) is it a full time job?
- What motivated you to start working on this forge?
- What is your position in the organization governing this forge?
- How do you chose what to work on?
- Is this your primary source of income?
- How is your work funded?
About the work you do on your forge
Your forge features
- What features does your forge implement? (yes/no)
- Merge/Pull requests
- Code review
- Operations (Kubernetes, OpenStack, Terraform, etc.)
- Alternate issue tracker: Redmine, Custom, Bugzilla
- Alternate CI: Jenkins
- Chat: Mattermost
- Alternate Wiki
- Email list of notifications
- Pages (as in static website)
- Packages registry
- (prompt) all features or part of them?
- On which of the above features did you work? (yes/no)
Import / export
Did you work on importing projects from another forge?
- (prompt) did it require third party/ad-hoc scripts
- (prompt) did you modify your forge on that occasion to facilitate the import
Did you work on the import/export feature? What did you do and why?
- What can be imported/exported?
- What is the import/export format?
- What standards are used for the import/export?
- Why do people need to import/export?
- How are user accounts imported/exported?
- (prompt) project ownership
- (prompt) project artifacts ownership
- (prompt) references
- (prompt) group membership
- How are internal references imported/exported?
- (prompt) a reference to an issue is an internal reference
- (prompt) @user to designate a user is an internal reference
- What is the granularity of import/export?
- (prompt) the entire software project?
- (prompt) can a single issue be exported?
The owner of a project cannot export its users with the project, why is that?
- (prompt) privacy issues?
Are the export features of your forge GDPR compliant?
- Did you work on mirroring projects to/from your forge?
- Is mirroring read-only?
- Did you work on user notifications?
- (prompt) how is the granularity of notification decided? (issue, whole project, ...)
- Can your forge act as a notification proxy (i.e. subscribe to a notification on another service and relay)
- Was ActivityPub compatibility considered for activity notifications?
- Did you work on integration (webhooks, chat, ...)?
- Did you work on tools to link two software project together within your forge?
- (prompt) maybe because they depend on each other, even if not in the same group
- What about two software projects that are not on the same instance (although both instances are the same forge)
- Did you work on tools to link two software project together on different forges?
- (prompt) not mirrors
- How do you research what your user need (with a focus on a multi-forge user)?
- (prompt) user research, interviews etc.
- Why do you proceed in this way?
- How much of your work is guided by the need of the project funders?
- Are you in direct contact with the funders of the project?
- How do they communicate their needs?
- Do you know of forge federation efforts for your forge?
- Could you define what forge federation is in your own words?
- Did you participate in discussions regarding forge federation?
- (prompt) why did you decide to participate
- (prompt) do you remember action items
- Did you work on forge federation?
- Do you work on bots for your forge?
- Is there a catalog of bots for your forge?
- How is this catalog maintained
- Are bots dedicated to working on multiple forges including your own?
Working with forks
- How to keep track of what is happening in the forks of a given project?
- How to merge a pull/merge request that is in a fork?
- Imagine you have a magic wand. You can use it once to wish for anything as long as it is related to your forge and how it communicates with other forges. What would that be?
- Is there anything that you are happy about regarding how your forge software communicates with other forges?
Thanks very much for your time and patience. As a little thank you, I'd like to offer you a https://solokeys.com/.
Is there anybody you know who would be willing to answer this interview? Would it be OK to introduce me to them so we can talk?