Skip to content

RxJava Truck Factor #3133

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

Closed
gavelino opened this issue Aug 6, 2015 · 1 comment
Closed

RxJava Truck Factor #3133

gavelino opened this issue Aug 6, 2015 · 1 comment
Labels

Comments

@gavelino
Copy link

gavelino commented Aug 6, 2015

As part of my PhD research on code authorship, we calculated the Truck Factor (TF) of some popular GitHub repositories.

As you probably know, the Truck (or Bus) Factor designates the minimal number of developers that have to be hit by a truck (or quit) before a project is incapacitated. In our work, we consider that a system is in trouble if more than 50% of its files become orphan (i.e., without a main author).

More details on our work in this preprint: https://peerj.com/preprints/1233

We calculated the TF for RxJava and obtained a value of 1.

The developer responsible for this TF is:

Ben Christensen - author of 91% of the files

To validate our results, we would like to ask RxJava developers the following three brief questions:

(a) Do you agree that the listed developer is the main developer of RxJava?

(b) Do you agree that RxJava will be in trouble if the listed developer leave the project (e.g., if he wins in the lottery, to be less morbid)?

(c) Does RxJava have some characteristics that would attenuate the loss of the listed developer (e.g., detailed documentation)?

Thanks in advance for your collaboration,

Guilherme Avelino
PhD Student
Applied Software Engineering Group (ASERG)
UFMG, Brazil
http://aserg.labsoft.dcc.ufmg.br/

@benjchristensen
Copy link
Member

a) Overall, yes I have been the main developer. However, the community has become actively involved, with some such as @akarnokd now having contributed not only significant amounts of code, but very critical parts of code. See https://github.com/ReactiveX/RxJava/graphs/contributors for statistics that are more representative than just who has touched a file.

b) 6ish months ago, yes this concerned me. Now, not as much. There are now more committers and other community members than just me who are actively maintaining the project even when I am absent. Currently I am still the bottleneck for releases and major changes, but I am actively working towards having others who can fulfill that role in my place as well. I hope that within the next 6 months I get to a point where I have in place enough leadership on the project that I could step away and it would be okay. For example, since Netflix sponsors the project, our goal is to have another Netflix engineer besides myself who can support and if needed, replace me.

c) There are a few things:

  • ReactiveX is not just a Java project, but a polyglot pattern of development, so the skills, mindshare and interest transfer across languages
  • active community on Github, Google Groups, Twitter, conference talks
  • solid documentation in both the Wiki and at http://reactivex.io that is always being improved
  • paid technical writer (@DavidMGross) sponsored by Netflix to maintain the documentation
  • significant usage of RxJava in critical systems at Netflix, so for the foreseeable future, even if I were to leave the project, others would step in to maintain the project

Hope this provides context on my thinking on the topic. It is definitely something that I have been thinking about over this past year, have started making changes to account for, and I am working on further improvements to the situation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants