Guix User and Contributor Survey 2024: The Results (part 3)

Today we're looking at the results from the Contributor section of the Guix User and Contributor Survey (2024). The goal was to understand how people contribute to Guix and their overall development experience. A great development experience is important because a Free Software project's sustainability depends on happy contributors to continue the work!

See Part 1 for insights about Guix adoption, and Part 2 for users overall experience. With over 900 participants there's lots of interesting insights!

Contributor community

The survey defined someone as a Contributor if they sent patches of any form. That includes changes to code, but also other improvements such as documentation and translations. Some Guix contributors have commit access to the Guix repository, but it's a much more extensive group than those with commit rights.

Of the survey's 943 full responses, 297 participants classified themselves as current contributors and 58 as previous contributors, so 355 participants were shown this section.

The first question was (Q22), How many patches do you estimate you've contributed to Guix in the last year?

Table 21: Guix contributors patch estimates
Number of patchesCountPercentage
1 — 5 patches19061%
6 — 20 patches6019%
21 — 100 patches3612%
100+ patches279%
None, but I've contributed in the past42N/A

Note that the percentages in this table, and throughout the posts, are rounded up to make them easier to refer to.

The percentage is the percentage of contributors that sent patches in the last year. That means the 42 participants who were previous contributors have been excluded.

Figure 13 shows this visually:

2024 Guix user survey: GNU Guix contributor patch count bar chart
Figure 13: Guix contributor estimated patch count

As we can see many contributors send a few patches (61%), perhaps updating a package that they personally care about. At the other end of the scale, there are a few contributors who send a phenomenal number of patches.

Active contributors

It's interesting to investigate the size of Guix's contributor community. While running the survey I did some separate research to find out the total number of contributors. I defined an Active contributor as someone who had sent a patch in the last two years, which was a total of 454 people. I deduplicated by names, but as this is a count by email address there may be some double counting.

This research also showed the actual number of patches that were sent by contributors:

Table 22: Active contributors by patch count
Number of patchesCountPercentage of Contributors
1 — 5 patches18741%
6 — 20 patches10222%
21 — 100 patches9120%
100+ patches7416%

Figure 14 shows this:

2024 Guix user survey: GNU Guix active contributor patch count bar chart
Figure 14: Active Guix contributors by patch count

Together this give us an interesting picture of the contributor community:

Types of contribution

The survey also asked contributors (Q23), How do you participate in the development of Guix?

Table 23: Types of contribution
Type of contributionCountPercentage
Develop new code (patches services, modules, etc)31259%
Review patches6512%
Triage, handle and test bugs6512%
Write documentation387%
Quality Assurance (QA) and testing234%
Organise the project (e.g. mailing lists, infrastructure etc)163%
Localise and translate122%
Graphical design and User Experience (UX)20.4%

Figure 15 shows this as a pie chart (upping my game!):

2024 Guix user survey: GNU Guix types of contribution pie chart
Figure 15: Guix contribution types

Of course, the same person can contribute in multiple areas: as there were 531 responses to this question, from 355 participants, we can see that's happening.

Complex projects like Guix need a variety of contributions, not just code. Guix's web site needs visual designers who have great taste, and certainly a better sense of colour than mine! We need documentation writers to provide the variety of articles and how-tos that we've seen users asking for in the comments. The list goes on!

Unsurprisingly, Guix is code heavy with 60% of contributors focusing in this area, but it's great to see that there are people contributing across the project. Perhaps there's a role you can play? ... yes, you reading this post!

Paid vs unpaid contribution

FOSS projects exist on a continuum of paid and unpaid contribution. Many projects are wholly built by volunteers. Equally, there are many large and complex projects where the reality is that they're built by paid developers — after all, everyone needs to eat!

To explore this area the survey then asked (Q24), Are you paid to contribute to Guix?

The results show:

Table 24: Contributor compensation
Type of compensationCountPercentage
I'm an unpaid volunteer32894%
I'm partially paid to work on Guix (e.g. part of my employment or a small grant)195%
I'm full-time paid to work on Guix10.3%
No answer7N/A

We can see this as Figure 16 :

2024 Guix user survey: GNU Guix developer compensation pie chart
Figure 16: Guix developer compensation

Some thoughts:

Previous contributors

Ensuring contributors continue to be excited and active in the project is important for it's health. Ultimately, fewer developers means less can be done. In volunteer projects there's always natural churn as contributor's lives change. But, fixing any issues that discourages contributors is important for maintaining a healthy project.

Question 25 was targeted at the 59 participants who identified themselves as Previous Contributors. It asked, You previously contributed to Guix, but stopped, why did you stop?

The detailed results are:

Table 25: Previous contributor analysis
CategoryCountPercentage of Previous Contributors
External circumstances (e.g. other priorities, not enough time, etc)2835%
Response to contributions was slow and/or reviews arduous1215%
The contribution process (e.g. email and patch flow)1114%
Developing in Guix/Guile was too difficult (e.g. REPL/developer tooling)68%
Guix speed and performance34%
Project co-ordination, decision making and governance23%
Lack of appreciation, acknowledgement and/or loneliness23%
Negative interactions with other contributors (i.e. conflict)23%
Burnt out from contributing to Guix23%
Learning Guix internals was too complex (e.g. poor documentation)11%
Social pressure of doing reviews and/or turning down contributions11%
Other1013%

Figure 17 shows this graphically:

2024 Guix user survey: GNU Guix previous contributors reasons for stopping pie chart
Figure 17: Reasons for ceasing to contribute to Guix

There were 80 answers from the 59 participants so some participants chose more than one reason.

Future contributions

Q26 asked contributors to grade their likelihood of contributing further, this is essentially a satisfaction score.

The question was, If you currently contribute patches to Guix, how likely are you to do so in the future?

Table 26: Future contributions scoring
CategoryCountPercentage
Definitely not72%
Probably not3410%
Moderately likely8023%
Likely11131%
Certain12335%

Figure 18 shows this graphically:

2024 Guix user survey: Contributor satisfaction pie chart
Figure 18: Contributor satisfaction

Out of the audience of current and previous contributors, 355 in total:

Improving contribution

The survey then explored areas of friction for contributors. Anything that reduces friction should increase overall satisfaction for existing contributors.

The question (Q27) was, What would help you contribute more to the project?

Table 27: Contribution improvements
AnswerCountPercentage
Timely reviews and actions taken on contributions20320%
Better read-eval-print loop (REPL) and debugging12412%
Better performance and tuning (e.g. faster guix pull)10210%
Better documentation on Guix's internals (e.g. Guix modules)10010%
Guidance and mentoring from more experienced contributors10010%
Addition of a pull request workflow like GitHub/Gitlab909%
Improved documentation on the contribution process778%
Nothing, the limitations to contributing are external to the project657%
More acknowledgement of contributions404%
More collaborative interactions (e.g. sprints)414%
Other566%

Figure 19 bar chart visualises this:

2024 Guix user survey: Contributor improvements bar chart
Figure 19: Improvements for contributors

The 355 contributors selected 933 options for this question, so many of them selected multiple aspects that would help them to contribute more to the project.

Conclusions we can draw are:

Comments on improving contribution

Jumping ahead, the last question of the contributor section (Q30) was a comment box. It asked, Is there anything else that you would do to improve contributing to Guix?

The full list of comments from Q27, and Q30 are available and worth reading (or at least scanning!).

Looking across all of them I've created some common themes - picking a couple of example comments to avoid repetition:

Organisational and social improvements

It's common in FOSS projects to focus on the technical issues, but Free Software is a social endeavour where organisational and social aspects are just as important. Q28 focused on the social and organisational parts of contribution by asking, What organisational and social areas would you prioritise to improve Guix?

This was a ranked question where participants had to prioritise their top 3. The rationale for asking it in this way was to achieve prioritisation.

It's useful to look at the results in two ways, first the table where participants set their highest priority (Rank 1):

Table 28: Rank 1 — Organisational and social improvements
Category CountPercentage
Improve the speed and capacity of the contribution process21363%
Project decision making and co-ordination3611%
Fund raising227%
Request-for-comments (RFC) process for project-wide decision making175%
Regular releases (i.e. release management)196%
In-person collaboration and sprints82%
Promotion and advocacy237%

Out of the 355 participants in this section, 338 answered this question and marked their highest priority.

Figure 20 shows it as a pie chart:

2024 Guix user survey: Organisational and social improvements (Rank 1) bar chart
Figure 20: Organisational and social improvements to GNU Guix (Rank 1)

This second table shows how each category was prioritied across all positions:

Table 29: All Ranks - Organisational and social improvements
Category Rank 1Rank 2Rank 3Overall priority
Project decison making and co-ordination2131
Promotion and advocacy3312
Fund raising4523
Request-for-comments (RFC) process for project-wide decision making6244
Improve the speed and capacity of the contribution process1665
Regular releases (i.e. release management)5456
In-person collaboration and sprints7777

Figure 21 shows this as a stacked bar chart. Each of the categories is the position for a rank (priority), so the smallest overall priority is the most important:

2024 Guix user survey: Organisational and social improvements (All ranks) stacked bar chart
Figure 21: Organisational and social improvements to GNU Guix (All Ranks)

Looking at these together:

Technical improvements

The partner question was Q29 which asked, What technical areas would you prioritise to improve Guix overall?

This was also a ranked question where participants had to prioritise their top 3.

Table 30: Rank 1 — Technical improvements
Category CountPercentage
Debugging and error reporting6318%
Making the latest version of packages available (package freshness)5014%
Automate patch testing and acceptance4212%
Runtime performance (speed and memory use)3610%
Package reliability (e.g. installs and works)309%
Contribution workflow (e.g. Pull Requests)268%
More packages (more is better!)237%
Improving Guix's modules206%
Project infrastructure (e.g. continuous integration)206%
Guix System services123%
Guix Home services103%
Stable releases (e.g. regular tested releases)82%
Focused packages (fewer is better!)51%

There were 345 answers for the highest priority, 327 for the second rank and 285 for the third rank — so not as significant a drop-off as for the social question. Figure 22 shows this as a bar chart:

2024 Guix user survey: Technical improvements (Rank 1) bar chart
Figure 22: Technical improvements to GNU Guix (Rank 1)

As before I've converted them to priorities in each rank. The smallest overall score is the highest priority:

Table 29: All Ranks — Organisational and social improvements
Category Rank 1Rank 2Rank 3Overall priority
Automate patch testing and acceptance3211
Runtime performance (speed and memory use)4132
Debugging and error reporting1473
Project infrastructure (e.g. continuous integration)9324
Contribution workflow (e.g. Pull Requests)6555
Making the latest version of packages avalable (package freshness)2866
Package reliability (e.g. installs and works)5747
More packages (more is better!)76108
Guix Home services111089
Improving Guix's modules812910
Guix System services1091111
Stable releases (e.g. regular tested releases)12111212
Focused packages (fewer is better!)13131313

Figure 23 shows this as a stacked bar chart.

2024 Guix user survey: Technical improvements (All ranks) stacked bar chart
Figure 23: Technical improvements to GNU Guix (All Ranks)

Some things that are interesting from this question:

Key insights recap

That completes our review of the contributor section! Here are the key insights I draw:

  1. The size of the active contributor community (~450) is really exciting. Many developers send a few patches (~60%), while at the other end of the scale there are some who have sent hundreds.
  2. Retaining and developing contributors is important for the project's sustainability. About 66% of active developers are likely to contribute again. That's great, how can we encourage that to happen?
  3. The key reasons contributors stopped (aside from life changes) was a slow response to contributions and the contribution process (e.g email and patch flow).
  4. Improving the capacity and speed of reviews was also the over-riding concern for active contributors by a significant margin. High priority suggestions were automating patch testing and acceptance, along with improving the projects infrastructure (e.g. continuous integration).
  5. Technical improvements to the developer experience were improving debugging and error reporting, runtime performance and also providing a more commonly used contribution process (e.g. Pull Requests).
  6. Finally, the project is 95% a volunteer one, so we should bear in mind that everyone's contributing to Guix on their personal time! While it's great to see all this fantastic feedback and it's very useful, Guix is a collective of volunteers with the constraints that brings.

Getting the Data

We've really squeezed the juice from the lemon over these three posts — but maybe you'd like to dig into the data and do your own analysis? If so head over to the Guix Survey repository where you'll find all the data available to create your own plots!

Relaterade ämnen:

Community User Survey

Om inte annat anges är blogginlägg på denna webbplats upphovsrättsskyddade av deras respektive författare och utgivna under villkoren hos licensen 1>CC-BY-SA 4.0</1> och licensen GNU Free Documentation License (version 1.3 eller senare, med inga invariant sections, inga front-cover texts, och inga back-cover texts).