guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How can we decrease the cognitive overhead for contributors?


From: Katherine Cox-Buday
Subject: How can we decrease the cognitive overhead for contributors?
Date: Wed, 23 Aug 2023 10:25:58 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

Summary: for people who don't contribute to Guix a lot, each contribution has
very high cognitive overhead. Can we work to reduce that?

Hey all,

Contributing to Guix is currently pretty difficult for me. I'm a Mom with a
full-time job, and anything outside of my job that requires a lot of executive functioning (e.g. lots of manual, detailed, steps) is very difficult for me to get correct. That last part is what I wanted to discuss, because that's the part
that prevents me from contributing more than I do, and I think there are
probably others whom are impacted by this.

When I have some time to contribute, I usually stall out at the "submit this for
review" because of the amount of cognitive overhead required. I've written a
script for myself that tries to perform all the steps including running the git command to submit the patch, and this has helped me, but that this is necessary
for me to do might be something that, if addressed, could help others.

Here are some examples of things that cause issues for me. This is not a list of grievances; it's my way of attempting to demonstrate the "shape" of the issue:

    I signed up on Savannah with the intention of applying to be a committer.
    Savannah closed my account one or two days later due to inactivity.

    I can't ever seem to get the GNU style commit messages correct. I use the     templates provided, but those don't cover all cases, and I've even gotten
    feedback in a review to change a message it created.

    I don't use the email-based patch workflow day-to-day, so this is another
    area where I spend a lot of time trying to make sure I'm doing things
    correctly.

    My script runs `guix style` and `guix lint`, but its suggestions aren't
    always correct. I suspect I've submitted some patches with nonsensical
    changes due to implicitly trusting these tools.

    Maybe https://lists.gnu.org/archive/html/guile-devel/2023-02/msg00030.html
    addresses this, but manually managing Guile imports is laborious. As a
    fledgling schemer, I often forget which imports I needed just for
    development.

I think I would summarize the core of these examples as:

    "At every step of the contribution process, I must manually check that
    multiple things are correct. With limited available executive functioning,     and no automation, this is very difficult to do correctly, and an easy place
    for contributors to stop."

I think that if I were working on Guix more frequently, I would build habits I
didn't have to think about, and these wouldn't be the large issues they are
for me. But because of the nature of a project like Guix, we want contributions from people of all kinds of backgrounds, not just people who have the privilege
to work on Guix a lot.

I have given a list of issues to a group of people who are presumably
analytical, and I think the natural inclination is to go point-by-point and make
arguments for/against. Instead of that[*], I invite you to address the more
abstract issue: (should/how do) we reduce friction for making contributions?

Here are some things I've considered:

* Contributing to Guix is not for you

    I would be really sad if someone ever said this, but I guess it's a
    possibility. Maybe someone like me just can't be a contributor to Guix until     I have the bandwidth to manage all the details. I would preemptively argue     that diversity of thought and experiences usually leads to better things.

* It's OK to make lots of mistakes

    The people who have reviewed my code have been generous both with their time     and fixing my mistakes and then applying. Maybe this model is OK? I still     feel guilty every time a reviewer has to correct an oversight I've made. I     also want to become a committer, but I don't know how that would work if     I'm regularly making mistakes. Obviously people would still be reviewing my
    commits, but presumably a committer should not regularly be making
    mistakes.

* We could support a managed web-based workflow

    I think this has been brought up a lot of times, and I don't have a clear     idea of what's been said. But I think a lot of developers these days are     more familiar with this style, and we could still maintain self-sovereignty
    if we hosted something.

* Encourage upstream communities like "Guix 'R Us" (https://sr.ht/~whereiseveryone/guixrus/)

    Maybe Guix proper continues as is and we foster various upstream communities
    that utilize different styles and batch their contributions?

What do you all think? Does this affect anyone else?

[*] But if you have workflow suggestions, I'm all ears!

--
Katherine




reply via email to

[Prev in Thread] Current Thread [Next in Thread]