... | ... | @@ -34,7 +34,7 @@ They are either independent system administrators or manager of an organization |
|
|
|
|
|
### Intercept interviews
|
|
|
|
|
|
The ten [users willing to participate ](https://jdittrich.github.io/userNeedResearchBook/#find-participants) in this research answered the interviews (roughly one hour each) and were recorded. Each interview was then transcribed, proofread and sent to them for review. Some participants agreed that they are [made available publicly](https://lab.fedeproxy.eu/fedeproxy/ux/-/wikis/home#interviews) which may prove useful in other contexts: they often contain valuable insights.
|
|
|
The ten [users willing to participate ](https://jdittrich.github.io/userNeedResearchBook/#find-participants) in this research answered the interviews (roughly one hour each) and were recorded. Each interview was then transcribed, proofread and sent to them for review. Some participants agreed [to publish them](https://lab.fedeproxy.eu/fedeproxy/ux/-/wikis/home#interviews) which may prove useful in other contexts: they often contain valuable insights.
|
|
|
|
|
|
The majority of participants have (or had) links with [LogiLab](https://www.logilab.org/). This is worth mentioning and could have been avoided but that was discovered during the affinity mapping session, at the very late stage of User Research. It does not seem to introduce a bias and it was decided to not discard interviews because of that.
|
|
|
|
... | ... | @@ -66,7 +66,7 @@ In the following the references to interview quotes are the first two letters of |
|
|
|
|
|
### The forge ecosystem
|
|
|
|
|
|
The interviewees use multiple forges for a variety of reasons but they mainly work on their software development project on a single forge. In the past years they came to experience and know about a wide variety of forges (GitHub, GitLab, Gitea, Phabricator, SourceHut, Heptapod, redmine, etc.) (ref. AR, CJ, CP, DA, DO, GR, MA, NA, PO, ZA). All of them have (or had in the past) a GitHub account and they acknowledge the monopolistic position it occupies because it hosts the majority of Free Software projects (ref. ZA44) (ref. DA54) (ref. MA67) (ref. DO61) (ref. GR39). Although they are concerned and have reservations about GitHub (ref. NA93) (ref. DA45) (ref. MA64) (ref. CP57), none of them refuse to use it (ref. PO80). The Free Software forges (GitLab CE, Gitea) are considered to be quality software that can easily be installed and maintained (ref. CP19). In the past years, the number of self-hosted forges instances grew substantially (ref. GR93). However the interviewees noticed that only a few are open to the general public (ref. MA4) (ref. CP57) (ref. GR75): most of them have a specific focus (ref. CP57). For instance the [GitLab CE instance of Gnome](https://gitlab.gnome.org/).
|
|
|
The interviewees use multiple forges for a variety of reasons but they mainly work on their software development project on a single forge. In the past years they came to experience and know about a variety of forges (GitHub, GitLab, Gitea, Phabricator, SourceHut, Heptapod, redmine, etc.) (ref. AR, CJ, CP, DA, DO, GR, MA, NA, PO, ZA). All of them have (or had in the past) a GitHub account and they acknowledge the monopolistic position it occupies because it hosts the majority of Free Software projects (ref. ZA44) (ref. DA54) (ref. MA67) (ref. DO61) (ref. GR39). Although they are concerned and have reservations about GitHub (ref. NA93) (ref. DA45) (ref. MA64) (ref. CP57), none of them refuse to use it (ref. PO80). The Free Software forges (GitLab CE, Gitea) are considered to be quality software that can easily be installed and maintained (ref. CP19). In the past years, the number of self-hosted forges instances grew substantially (ref. GR93). However the interviewees noticed that only a few are open to the general public (ref. MA4) (ref. CP57) (ref. GR75): most of them have a specific focus (ref. CP57). For instance the [GitLab CE instance of Gnome](https://gitlab.gnome.org/).
|
|
|
|
|
|
* **CP19**: "We converge towards the notion of 'I have a software component and it runs'".
|
|
|
* **CP57**: "[...] as any respectable Free Software developer trying to minimize their internal conflicts [...] you cannot be on GitHub nor GitLab.com"
|
... | ... | @@ -79,7 +79,7 @@ The interviewees use multiple forges for a variety of reasons but they mainly wo |
|
|
* **GR84**: "I took the thing that analyzes projects and repositories and transformed 'Possible if this is git' into 'Possible if it is Mercurial'"
|
|
|
* **GR93**: "[...] there are plenty of people who self-host a [forge] instance and they imported projects from BitBucket."
|
|
|
* **MA4**: "[forge] is free and dedicated to Free Software - a Free Software project can send us a request and be hosted for free, including CI."
|
|
|
* **MA64**: "[...] people who leave Git platforms such as GitLab/GitHub for [forge] (because [...] they want their data on french servers and not American servers[...]"
|
|
|
* **MA64**: "[...] people who leave Git platforms such as GitLab/GitHub for [forge] (because [...] they want their data on french servers and not American servers[...])"
|
|
|
* **MA67**: "There are things we are generally forced to do on GitHub and there also is an aura of 'most Free Software projects are on GitHub'"
|
|
|
* **NA93**: "GitHub actions for example: I don't like that feature. It feels like a trap."
|
|
|
* **PO80**: "[...] this is a GNU project that is not intended to feed the Microsoft leviathan.
|
... | ... | @@ -99,7 +99,7 @@ When a software project moves from a forge to another, it is not just about the |
|
|
|
|
|
When on-boarding new developers, it is useful to browse the discussions from older issues to understand how a particular part of the codebase came to be. This is also true for pull and merge requests, forums and mailing lists. Even the CI artifacts and the description of the CI: a complex pipeline that relies on features specific provided by a given forge (ref. ZA22) (ref. DA35) (ref. AM28) may be difficult to migrate to another forge that does not support them (for instance moving from [travis](https://docs.travis-ci.com/user/tutorial/) to [GitLab CI](https://docs.gitlab.com/ce/ci/yaml/README.html)).
|
|
|
|
|
|
The scope of what defines a software is fuzzy (ref. ZA19) (ref. PO42) (ref. CJ44). and should be considered on a case by case basis (ref. PO39). It is a web of dependencies that are not confined to the boundaries of a forge (ref. AR17) (ref. NA16) (ref. DA52). It includes every data, web service and developer that is stored and put to work when the software project moves forward. As an example, a developer mentioned that when they want to modify a software they use on their machine "most of the time it is not installed in a way that allows modifications: the first step is to get the code. If it's a Debian package, I look into he package metadata to find the source code, if it is a Python project, I tend to look on PyPI: I rely on the package manager to locate the source code" (ref. ZA11). Another example is how the software is packaged and distributed as it often involves resources external to the forge (ref. AR20).
|
|
|
The scope of what defines a software is fuzzy (ref. ZA19) (ref. PO42) (ref. CJ44) and should be considered on a case by case basis (ref. PO39). It is a web of dependencies that are not confined to the boundaries of a forge (ref. AR17) (ref. NA16) (ref. DA52). It includes every data, web service and developer that is stored and put to work when the software project moves forward. As an example, a developer mentioned that when they want to modify a software they use on their machine "most of the time it is not installed in a way that allows modifications: the first step is to get the code. If it's a Debian package, I look into he package metadata to find the source code, if it is a Python project, I tend to look on PyPI: I rely on the package manager to locate the source code" (ref. ZA11). Another example is how the software is packaged and distributed as it often involves resources external to the forge (ref. AR20).
|
|
|
|
|
|
The forge features used by a software project as well as its scope depends on how many people work on it. Very large projects tend to use more features and some tiny projects only have a DVCS (ref. NA22).
|
|
|
|
... | ... | |