Verified Commit 610813d3 authored by Loïc Dachary's avatar Loïc Dachary
Browse files

in the wiki instead

parent 438e230e
# Recording interviews
## Mobile apps
Android has a useful, simple audio recording application built-in since Android 7.
## Audio recorder
* an audio recorder for little money (£€30-40).
* a Galaxy Samsung SIII, S4, S5 with the default recorder app from lineageos
* [TP8 Telephone Pick-Up]( to record interviews done via mobile (software solutions are flaky or proprietary)
## Audio recorder on GNU/Linux
To record a videoconference
# Transcribing interviews
- [OTranscribe](
- adb pull /sdcard/Music/SoundRecords /tmp
- ffmpeg -i SoundRecord-2018-03-29-12-36-18.wav -vn -ar 44100 -ac 2 -ab 192k -f mp3 interview.mp3
- chromium
If the volume of the recording is too low, [it can be amplified]( with:
ffmpeg -i interview.mp3 -filter:a "volume=5.0" amplified.mp3
We aim to treat our research participants with utmost respect. Our main priority during research activities is their well being, preserving their privacy and anonymity.
We treat participants not as research subjects, but as co-creators of insights that can help us improve fedeproxy. We are immensely thankful for their time, and for their willingness to share their knowledge and experience.
We aim to create trustworthy relationships with research participants, if they are willing. We do this because we are committed to keeping our users at the centre of our software design process.
We publish these guidelines because we want to be transparent about our research practices, and ensure that fedeproxy members and others know what to expect from our research activities. We also hope these guidelines might help other projects with their own research work.
If you have feedback or questions about these guidelines, please leave a message in the UX forum category:
1. We aim to capture data from all our user research activities for analysis purposes. We obtain informed consent (written or verbally) from research participants before collecting data.
1. The data can take the form of notes, audio recordings, video recordings and photographs. Before taking a photograph, we hide all visible personal information, to maintain privacy.
1. Photos, audio and video recordings are transcribed. Once transcribed, the audio file is deleted from storage. Transcriptions and notes are reviewed every six months. If we feel we have nothing else to learn from them, we delete them. This is to preserve participants' privacy.
1. All research data, except video, is anonymised. In notes and transcriptions we use pseudonyms instead of real participant's names, and we remove all personal information such as locations, institutions and third-party names. We aim to anonymise photographs before we take them by hiding all visible personal information. We further obfuscate photograph content as necessary.
1. We share the anonymised transcription with the research participant by email, to ensure it accurately portrays the outome of the research session. Participants can request amendments. They can also request the destruction of the data by sending a simple mail to
1. We will never publish research data without consent, but we might quote from notes and transcriptions in research reports and presentations. As part of the informed consent process, participants can request not to be quoted.
1. The research analysis process is carried out by fedeproxy members using the affinity diagram approach.
UX discussions in the [fedeproxy forum]( or [OSD](
# Research guidelines
- [User Research Guidelines](User-Research-Guidelines)
# User Research
## [Interview scripts](
- [Free Software developer](software-developer)
- Forge developer (TBD)
- Forge maintainer (TBD)
# Useful articles and links
- [User Experience without user research is not User Experience](
- [Software tools for user centred design](Useful-Software-Tools-&-Hardware)
- [How to do a research interview]( (video)
# What is this Interview Script for?
It is a 60 minutes interview to provide a basic understanding of how and why multiple forges are used by a software developer during the development life cycle of a given software.
## 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 to get a glimpse of the associated mental model).
- Conclusion questions
# Tools needed
- way to take notes (paper, or laptop)
- audio recorder (optional)
# Interview script
The themes between brackets ([Fragility], [Lock-in], etc.) relate to the [fedeproxy project description](, under the "Technical challenges and barriers" chapter. They are the themes that are identified a-priori. Most questions relate to these themes but the theme itself should not be explained during the interview: it is out of scope. It is quite possible that some of the themes will be entirely discarded by participants. And that other themes will emerge after the affinity mapping is complete.
## Introduction
Hello there, my name is Loïc Dachary. I'm a software developer and daily user of software forges for the past twenty years. 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 and figure out what to do. With an open mind: the conclusion may very be that it's all in my head :-) And this is where your contribution is extremely valuable: this interview is about your personal experience, past and present, when you are using multiple forges during the development lifecycle of a sofware. This will be the evidence showing what matters to you and, when aggregated with other people experience, it will tell us what needs to be done.
## 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
- For how long have you been a developer?
- What % of your paid work involves developing software?
- Do you develop software on your own time?
- How would you describe the routine of a Free Software developer?
- (prompt) how do you manage dependencies?
- What is a software project made of?
- (prompt) are the comments on pull/merge requetss part of the project or can they be discared after it is merged into the project?
- (prompt) is the mailing list part of the software project? Would loosing the archives negatively impact further development?
- What software project are you working on at the moment?
## About using multiple forges
- Which forges do you use?
- (prompt) A list of all that you ever used
- (prompt) Which one do you currently use?
### Dependencies management [Lock-in][No interoperability]
- Which software project involves using more than one forge?
- (prompt) are the dependencies of a project all hosted on the same forge?
- (prompt) do you always file issues about dependencies on the same forge?
- How do you manage your software project dependencies?
- (prompt) strict dependency only, no copy
- (prompt) under which circumstances and why do you chose to copy the project instead of depending on it?
- When you file an issue on a dependency
- How do you work around it?
- How do you fix it?
- (prompt) what if there is no release of the dependency to fallback to and you need to patch it?
- How do you keep track of the issue in the context of the project that depends on it?
### Migration [Lock-in][No interoperability][Fragility]
- How do you manage a mirror of a software project?
- What do you mirror?
- (prompt) git content? issues?
- Have you ever used the import/export function of a forge?
- (prompt) when was the last time?
- (prompt) which forge was it?
- Did you run import/export multiple times? Or was it a one shot?
- How do you migrate the software project participants?
- Did you ever migrate from one forge to another?
- What motivated the move?
- (prompt) better UX?
- (prompt) forge shutdown?
- Could you describe the steps?
- Did you keep the other project around for some time?
- Did you loose data or users?
### User preferences [Lock-in]
- Are there forges that you choose to not use?
- Are there forges that you try to avoid unless force to?
- What forge do you prefer to use?
- (prompt) user experience
- (prompt) other preferences
### [Exclusion] and [Censorship]
- Do you participate in the development of a project without using the forge they are hosted on?
- (prompt) do you contribute code? file issues?
- Do you know people who contribute to a project without using the forge they are hosted on?
- (prompt) could you describe what they contribute and how?
- Do you know of forges that exclude people based on where they live?
- (prompt) have you heard of people being banned from a forge?
### Communication [Lock-in]
- How do you get notifications about what happens on a forge?
- (prompt) to follow releases? patches you contributed?
- How do you get in touch with the user of a forge without using the forge?
### Bots [No interoperability]
- Do you use bots interacting with a software project on a forge?
- Did you ever write a bot for a forge?
- Did you write integration tests for this bot?
- Do you know of bots/tools that would allow you to seamlessly do operations on multiple forges?
### Decentralization
- How do you keep track of what is happening in the forks of a given project?
- How do you merge a pull/merge request that is in a fork?
### [Vulnerability]
- Who do you need to trust with the integrity of the software you publish?
- How do you ensure your commit is not rewritten?
- (prompt) do you sign your commits?
- Are you aware of the SHA1 collision attack and how it could help rewrite the history of a repository?
## Usability
- Imagine you have a magic wand. You can use it to help you work with multiple forges on a given software project. What would that be?
- Why do you want to change that?
- Is there anything that works well when working with multiple forges on a given software project?
# Finishing
Thanks very much for your time and patience. As a little thank you, I'd like to offer you a
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?
Thanks again.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment