dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
18.61k stars 3.96k forks source link

Studying the evolution of Roslyn's project #11714

Open gustavopinto opened 8 years ago

gustavopinto commented 8 years ago

Hi there,

I'm a researcher studying software evolution. As part of my current research, I'm studying the implications of open-sourcing a proprietary software, for instance, if the project succeed in attracting newcomers. Roslyn was in my list.

To further analyze the impacts of Roslyn’s migration, we analyzed the git log commit history of your project in terms of number of contributions, number of newcomers, and number of contributors per month. The following figure presents a temporal perspective regarding these three measures.

roslyn

Given the numbers presented in the graphic, we would like to ask Roslyn developers the following questions:

  1. What motivated the project to open its source code at Github? How do you evaluate the benefits of this migration?
  2. Does this snapshot make sense? Did you find any inconsistency on the data?
  3. Do you have any internal policy to promote/attract/retain newcomers? If so, do them succeed?
  4. Why did the number of contributors increase only few months after the project became open-source?
  5. Why did the newcomers rate decrease in the middle of 2015? Is there any explanation for this fact?

Thanks in advance for your collaboration,

Gustavo Pinto, PhD http://www.gustavopinto.org

AdamSpeight2008 commented 7 years ago

@gustavopinto I'm an external (non-microsoft) contributor as I'm interested in both of the languages, especially Viasual Basic.. If I could help making them "better" then yay, even if just provide small / minor fixs, for aspects they may have missed. eg spelling errors, utilise new language features. I am also using it as a learning experience, so the was points where my goals and aims, didn't align with the road set out by the team members. Being on github I could fork and try different things. My contributions may not be big but I still feel that they are appreciated. Especially if they are for parts of the repo, that the team members may have forgotten about, needed dusting off and shown some love. As I've gotten used to the repo, I've gain confidence to attempt implementing a new language feature, and the expectations and requirements. That are needed to have such a pull request merged in the master or other "offical" branch.

4 Why did the number of contributors increase only few months after the project became open-source?

It was something new to play with, as well it being fairly regually being shown on various channel9 shows and microsoft events videos. The videos which involved interviewing the developers and language design members, where a bonus. The cherry on top, where the Q & A sessions.

Why did the newcomers rate decrease in the middle of 2015? Is there any explanation for this fact?

Initial peek was due to it being.moved to github from codeplex. Plus It is a big repo and complex one at that. So I reckon a lot of the interest fell away because It's bit of a niche subject area. Only those that are interested in developing languages would stick around. Of those few would provide contributions, few still have contributions accepted and merged.

gustavopinto commented 7 years ago

Thanks @AdamSpeight2008 for your comments.

Initial peek was due to it being.moved to github from codeplex.

Interesting. However, most of the projects that we are analyzing have this peek right after the project became open-source. For Roslyn, it seems that it took some days (weeks?) until it attracted newcomers. Any thoughts?

Also, do you believe that some contributors just want to have few commits accepted in a well-known project like Rosyln, for popularity reasons? This might explain the newcomers' peek in 2015.

Only those that are interested in developing languages would stick around.

That might not capture the whole picture, though. There are always people that want to contribute to other things but code (e.g., documenting, opening issues, etc.). Do you think that most of the Roslyn are language designers?

Any comments, @Pilchie?

ljw1004 commented 7 years ago

@kuhlenh interesting research!

kuhlenh commented 7 years ago

@gustavopinto what is your population for this study? are you looking at "all" contributors or "external only" (non-MSFT)? What is a "contribution" (we call any issue filed or PR submitted a contribution)? I think you probably are looking at "code contributors" here?

Mid-2015 was probably when we were locking down for a release and not accepting a lot of PRs.

I think it would be helpful for your study to look at how our interaction changes from the first model to the second. When we moved to GH, we moved to an "open development model" where all our bug-tracking and code reviews take place in the open. Also the OSS community is primarily on GH. You will find that our average time to close a community PR and first respond to an issue decreases when we moved to GH (see this article for more info).

Sidenote: some users on Codeplex changed their usernames when they moved to GH. Did you account for this? (otherwise they'll look like new users).

gustavopinto commented 6 years ago

Hi @kuhlenh,

what is your population for this study? are you looking at "all" contributors or "external only" (non-MSFT)? What is a "contribution" (we call any issue filed or PR submitted a contribution)? I think you probably are looking at "code contributors" here?

Yes, you are right. We made no distinction between Microsoft and non-microsoft contributors.

You will find that our average time to close a community PR and first respond to an issue decreases when we moved to GH (see this article for more info).

Thanks for the pointer!

Sidenote: some users on Codeplex changed their usernames when they moved to GH. Did you account for this? (otherwise they'll look like new users).

Yes, we are taking it into consideration!

gustavopinto commented 6 years ago

If you don't mind, I have additional questions for you @kuhlenh.

As regarding the motivations, what was the main motivation for open-sourcing roslyn?

For example, was the main motivation of the companies to attract and retain new contributors? Or was the main motivation perhaps to promote a profile of open-source-friendliness and get goodwill from the community?

Could you please elaborate a bit over it?

Additionally, were there instances that companies recruited people from the community after they contributed to the (now open-sourced) project?

Were there discussions between the companies and the community that indicate a communication between them?

Finally, what are the recommendations for policies to create a sustainable community?