Skip to content

Project Velocity and PR reviews #64

@benjamingr

Description

@benjamingr

Following an internal discussion about concerns of high project velocity and recent PRs landing and then being reverted, I'm copying my response publicly here (below).

I'd like to discuss what we can do to improve the PR process this during the summit if anyone is interested.


Thinking a little more about this - I definitely think it's a matter of not getting enough eyes to review the code rather than bigger changes.

I think this is also very discouraging to a collaborator working on a PR because:

  • Having a change you worked on (and landed) reverted because someone who hasn't looked at it now looked at it is discouraging. To be clear - reverting is fine, making mistakes is fine and we should encourage experimentation - but the fact something gets approved and then pulled is frustrating.
  • Having a change you worked on mostly ignored as a PR is (probably?) our San Francisco - August 6/7 2015 #1 driver of collaborator burnout. It's very frustrating and I recall collaborators that have left the org because of it.

I think that in order to improve the # of eyes on PRs we have two strategies:

  • Make reviewing more rewarding somehow (list reviewers after the author in the changelog, mention noteworthy reviewers etc).
  • Ping nodejs/collaborators much less and smaller teams more - so that people don't get to that vicious "I have so many node notifications in my GitHub and I'm super busy and close to burnout - let's mark all as read" which leads to stale objections and reviews.

I think we should work towards a more organized review system where:

  • Relevant people who own various parts of the code form teams (like an http team etc)
  • Teams report to the TSC (or write a report) once a month about the subsystem, teams would be self organizing and hopefully meet once a month.
  • Teams get pinged on PRs to subsystems (mostly the case) and we stop pinging nodejs/collaborators on many things.

Optimally, a collaborator joining would automatically join the teams related to the PRs said collaborator worked on when joining - we should also likely ping existing collaborators.

Would it make sense? It's really just broad ideas.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions