On Wednesday, 4 April 2018 at 05:31:10 UTC, Andrei Alexandrescu
wrote:
Hi folks, I was thinking of the following.
To keep the PR queue trim and in good shape, we'd need at least
one full-time engineer minding it. I've done that occasionally,
and the queue size got shorter, but I couldn't do much else
during that time.
I was thinking, we can't afford a full-time engineer, and even
if we did, we'd probably have other important matters for that
engineer as well. However, what we can afford - and indeed
already benefit from - is a quantum of time from each of many
volunteers. By organizing that time better we may be able to
get more output. Here's what I'm thinking.
Let's define a "PR duty" role that is one week long for each of
a pool of volunteers. During that week, the person on PR duty
focuses on minding github queues - merge trivial PRs, ping
authors of old PRs, email decision makers for specific items in
PRs, etc. Then the week ends and the role is handed off to the
next person in the pool.
A calendar maintained by an impartial person - maybe we can ask
Mike - would keep track of everything.
The most obvious candidates for PR duty engineers would be the
most prolific contributors in the respective repositories.
One question would be how many distinct pools/tracks we should
have. Presumably someone fluent with phobos is not necessarily
fluent with dmd. So probably we need at least two tracks:
* dmd
* everything else (druntime, phobos, tools, site)
If there are a dozen of us in each pool, each would be on duty
one week every three months. Even with eight, we'd be on duty a
manageable week every other month.
Please share your thoughts.
Thanks,
Andrei
Something adjacent but related that I've been wanting to suggest
for awhile is that we hold a semi-weekly or weekly scrum for
Phobos and/or dmd (with possibly overlapping but not necessarily
identical groups).
I'm thinking that you would attend the Phobos one and Walter the
dmd one (I don't think it'd be necessary to have you at _every_
meeting). The idea is that we go over each PR opened that week
and decide what to do with them (merge, close, needs guidance,
needs W/A decision, etc.) The scrum master that sprint (which
could rotate between people) is responsible for getting a
decision from you or Walter on items (if you're not at the
scrum), ensuring action items are followed up on by those they're
assigned to, just generally coordination and administrative
tasks...
The goal is to improve the team's velocity such that we are
handling every PR that comes in for that week, and then start
eating into the backlog. IMO that backlog should be prioritized,
but I'm not certain how to go about that yet.
Anyway, end result is that hopefully we get the queue down and
are for the most part just handling new PRs each week. A big
component of this is you being available for, say, at least one
meeting a month.
That being said, one big stumbling block I see is people being
located in wildly different timezones, such as Sebastian in
Germany, you on the east coast, Mike in Korea, etc.