Hello, Guilherme.

First, let me briefly answer your questions:
a) yes
b) no
c) As Alex said, there is a large clojure community.  Also, there are a 
significant number of companies using clojure for production software.  I 
think that would ensure that clojure stayed alive (but maybe not thriving).

I also have some concerns about your methodology.  I think the main thing 
skewing your results for clojure is the emphasis on first authorship.  
Almost all the files in the clojure repo will have Rich Hickey as the 
original author.  However, inferring from "X is the original author" that 
"only X understands this code well enough to change it" is a logical leap 
that I think is unfounded.

I think the correct measure for maintainability is not "degree of 
authorship", but "code understanding."  Unfortunately, this is harder to 
measure, because some 1-line changes require you to understand a whole 
codebase, and some only require you to understand a couple methods or 
functions.

Some simple measures I tested (files changed, lines changed) don't predict 
this very well.  For instance, Ambrose, Nicola, and tbaldridge score fairly 
low, even though it's clear from their other projects that they understand 
a significant fraction of the clojure codebase.  It's the same for some of 
the primary authors of clojurescript.

Unfortunately, I can't immediately think of a good measure, but I believe 
it would contain
1) recency (if A originally writes a file, and B completely rewrites it, 
who understands it better now?)
2) code dependencies (if you have some low-level code that lots of other 
code depends on, you usually have to understand a good fraction of its 
dependents before you are confident enough to change it)
3) activity (if a file isn't touched very often, it's probable that no one 
really needs to understand it right now for the project to move forward.)
4) popularity (if enough 3rd party code depends on a project, someone will 
take it over)

Reading this list, it occurs to me that recency is related to activity, and 
popularity is an indicator of 3rd-party code dependencies.

Many projects that you currently assign TF=1 I think have no chance of 
being incapacitated, which I think is because you ignore popularity, and 
you picked the most popular projects.

All that said, I think your project is interesting: I think lots of 
companies / open source orgs would like to know which portions of their 
codebase need the most cross-training.

Good luck on your research,
Leif

On Friday, August 7, 2015 at 12:21:40 PM UTC-4, Guilherme Avelino wrote:
>
> 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 *Clojure* and obtained a value of *2*.
>
> The developers responsible for this TF are:
>
> Rich Hickey - author of 58% of the files
> Stuart Halloway - author of 27% of the files
>
> To validate our results, we would like to ask *Clojure* developers the 
> following three brief questions:
>
> (a) Do you agree that the listed developers are the main developers of 
> *Clojure*?
>
> (b) Do you agree that *Clojure* will be in trouble if the listed 
> developers leave the project (e.g., if they win in the lottery, to be less 
> morbid)?
>
> (c) Does *Clojure* have some characteristics that would attenuate the 
> loss of the listed developers (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/
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to