Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analysis of merging policy #674

Closed
bvssvni opened this issue Oct 27, 2014 · 3 comments
Closed

Analysis of merging policy #674

bvssvni opened this issue Oct 27, 2014 · 3 comments

Comments

@bvssvni
Copy link
Member

bvssvni commented Oct 27, 2014

A+ = Good decision
A- = Bad decision
B+ = Knowing what you are doing
B- = Uncertain what you are doing

Using probability notation, similar to the one used in Bayes' theorem

On average, let's say there is a 80% chance that we make good decisions, given that we know what we are doing:

P(A+ | B+) = 0.8
P(A- | B+) = 0.2

If we review every merge, then we get rid of bad decisions, but we loose some hours. Let's say this is 10 hours on average for every PR. To fix bad decisions takes approximately 1 hour on average.

10 - 1 * P(A- | B+) = 10 - 1 * 0.2 = 9.8

It means that when we think we know what we are doing, then waiting for review is almost entirely waste of time.

The chance that we make another bad decision when fixing a bad decision is 0.2 * 0.2 = 0.04, which costs 2.4 minutes on average.

@bvssvni
Copy link
Member Author

bvssvni commented Oct 27, 2014

There are ways that we can increase the chance that we know what we are doing, to minimize bad decisions:

  • Plan as much as possible upfront
  • Break it down into easy tasks
  • Wait with implementing for some time
  • Collect information to arrive at good designs early
  • Test changes by override dependency locally with Cargo

These tasks are designed to separate the thinking part from the doing part. We want to spend more brain cycles on planning and fewer brain cycles on implementing.

If we do lots of review, then we waste both brain cycles and time, which could go into planning.

@bvssvni
Copy link
Member Author

bvssvni commented Oct 27, 2014

When there is a perception that bad decisions occur frequently and wastes time, remember the following:

  • The time waiting for review is saved
  • Frequent bad decisions might mean something is wrong with the planning
  • Some bad decisions takes longer time to fix, but what counts is the total saved time
  • Fixing merged changes is quicker and less error prone than fixing forked changes

@bvssvni
Copy link
Member Author

bvssvni commented Oct 27, 2014

We could make reviews more beneficial by increasing the number of reserve maintainers. This would also save time in cases where we are uncertain about what we are doing.

@bvssvni bvssvni closed this as completed Oct 30, 2014
bvssvni referenced this issue in PistonDevelopers/opengl_graphics Dec 9, 2014
bvssvni referenced this issue in image-rs/image Jan 29, 2015
std::io renamed to std::old_io
write renamed to write_all
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant