堀口
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* 研究概要 [#xdf80500]
OSSプロジェクト(のメンター)が新人を大切にしているか?
- メンタリングの充実度と、新人の定着度の比較
-- 論文を読む
--- 既存研究との違い、不足を考える(視点を変える、対象を...
結論を一般論として考えない。
--- https://dl.acm.org/citation.cfm?id=2393647~
refarenceとcitedbyを見る
-- 目安は10本
- プロジェクトの品質、持続可能性との関係
* 研究MTG [#ve6c9421]
** 1/20 [#g0761992]
*** 卒論タイトルについて [#mc87895c]
- 研究室内の発表の時のタイトル:StackOverflowとGitHubでの...
-- 問題:目的が伝わらない~
-- 懸念:「分析」やった?RQ立てて仮説検定しただけですが・...
-- 参考
--- 研究の目的~
新人OSS開発者が開発コミュニティ(GitHub)に馴染む(/順応する...
--- アプローチ~
新人が開発コミュニティ,外側のコミュニティに馴染めている...
*** やったこと [#qe927a58]
- イントロから結果まで一通り書いた.吉富さんにレビューし...
- 考察は今日から考えます
** 1/7 [#o7d52c99]
*** やったこと [#c4b3e6e0]
- 効果量の勉強
- RQ2の検定を行うための集計プログラムを書いた.あとはRQ1...
- RQ1-1(カイ二乗検定)とRQ1-2(マンホイットニーのU検定)...
この書き方で大丈夫か?
** 12/24 [#xa3597bf]
*** やったこと [#j9495dfd]
- 自分の投稿した質問,Issue,PRへの回答,コメント,マージ...
- 検定のプログラムに,論文に結果を載せるために必要な計算...
- 論文に検定結果を載せるためのテンプレ考えた
** 12/10 [#k855af6a]
*** やったこと [#v1847648]
- リプライの速さの違いがあるかどうか~
下記の仮説について,マンホイットニーのU検定を行う.
-- 仮説4. 新人とそれ以外では,投稿したIssueに寄せられるコ...
--- N: 5177
--- 新人に対して最初のコメントが付くまでの時間の平均値[h]...
--- 新人に対して最初のコメントが付くまでの時間の標準偏差[...
--- 新人以外に対して最初のコメントが付くまでの時間の平均...
--- 新人以外に対して最初のコメントが付くまでの時間の標準...
--- p値の平均値: 3.18138275308254e-132
--- p値の標準偏差: 3.1507845292838883e-131~
有意差はある.新人の方が最初のコメントが付くまでの時間が...
GitHubの開発コミュニティでは新人に対して早く反応している.
-- 仮説5. 新人とそれ以外では,投稿した質問に対する回答の...
--- N: 2917
--- 新人に対して最初の回答が付くまでの時間の平均値[h]: 0....
--- 新人に対して最初の回答が付くまでの時間の標準偏差[h]: ...
--- 新人以外に対して最初の回答が付くまでの時間の平均値[h]...
--- 新人以外に対して最初の回答が付くまでの時間の標準偏差[...
--- p値の平均値: 0.06012987211053698
--- p値の標準偏差: 0.08826525634410144~
有意差なし.時間の平均値や標準偏差を見る限り,大きな差は...
- 「熟練者」って言い方やめる~
他のプロジェクトでの活動経験があるかどうかで,開発者を二...
「新人」と「新人以外」って呼び方にする.
*** 今後の予定 [#a7347184]
- RQ2(事前にStackOverflowで活動をした新人とそうでない新人...
以前1プロジェクトでやってはいるので,複数プロジェクトで試...
- 仮説検定の方法と結果をまとめる~
卒論に載せれる形まで整える.
** 12/3 [#iad98e60]
*** やったこと~ [#x0f48e43]
- 仮説と検定手法の見直し~
仮説2と3は,二項検定では新人と熟練者での差があるかどうか...
仮説を「新人か熟練者かどうかと,投稿したPull Requestがマ...
要するに,旧仮説に対して,そもそも二項検定では仮説の検定...
-- 旧仮説2. 新人と熟練者では,投稿したPull Requestがマー...
-- 旧仮説3. 新人と熟練者では,投稿した質問に回答があるか...
-- 新仮説2. 新人か熟練者かどうかと,投稿したPull Request...
-- 新仮説3. 新人か熟練者かどうかと,投稿した質問に回答が...
- ちょっとだけ検定してみた~
手動で必要なデータを集めて,仮説2のカイ二乗検定をやってみ...
p値: 5.669430515845988e-37~
関連はある.しかし,新人と熟練者でPRがマージされる割合は...
- 仮説4, 5について~
仮説4は予定通りマンホイットニーのU検定を行う予定.仮説5は...
参考~
-- 仮説4. StackOverflowで質問または回答を行ったことがある...
-- 仮説5. StackOverflowで質問または回答を行ったことがある...
*** 今後の方針(相談)~ [#r3f0f6f9]
- リアクションの速さに違いがあるかどうか検定する~
そういえば,コミュニティへの受け入れられやすさの指標の1つ...
一応RQ1(StackOverflowとGitHubで新人と熟練者の活動の受け...
それとも,早めに質的調査に移った方がいい?
- とりあえず,現在立てている仮説については来週までに検定...
期待通りの結果ではないことが目に見えているので,質的調査...
期待通りでなかった仮説に対して,質的調査を行い,なぜ期待...
例えば,
-- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコメ...
新人の投稿したIssueに寄せられるコメント数の方が多い.新人...
やること:新人が投稿したIssueに寄せられたコメントを目視す...
期待する調査結果:新人が投稿したIssueでは,投稿した内容に...
** 11/26 [#w83820f2]
*** やったこと [#o9a24228]
仮説検定を少しやりました.
- RQ1. StackOverflowとGitHubで新人と熟練者の活動の受け入...
それぞれのコミュニティで,新人に対する扱いを知りたい.~
-- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコメ...
結果はアンダーサンプリングした際の平均値~
--- N: 6012~
--- 新人のIssueに対する平均コメント数: 4.971057884231537~
--- 熟練者のIssueに対する平均コメント数: 4~
--- p値: 7.637873580525364e-30~
⇒ 熟練者はあんまりやり取りしなくてもIssueを解決できる?~
コメント数の差で見るのではなく,(人間の)コメント数0の状...
- 仮説2. 新人と熟練者では,投稿したPull Requestがマージさ...
検定の前に,新人が投稿したPRのうちマージされる割合と,熟...
-- 新人が投稿した全PRのうちマージされる割合(マージされたP...
-- 熟練者が投稿した全PRのうちマージされる割合(マージされ...
⇒ 新人の方がPRがマージされる割合が高い.新人はマージされ...
ちなみに,分析対象のプロジェクトに投稿されたすべてのPRの...
StackOverflowで活動を行った開発者のPRのマージされる割合が...
*** 相談 [#p37828f6]
- 新人にとって開発コミュニティ外のコミュニティがなぜ,役...
個人的な考えは,新人にとってIssueやPRでの議論には参加しず...
-- 開発コミュニティとの知識や技術のギャップを埋めやすくな...
例えば「〇〇ができません」という質問に対して,「それはバ...
もしかしたらGitHubでIssueを投稿するきっかけになるかもしれ...
-- 開発コミュニティでは相手にされないような質問でも,外の...
** 11/19 [#sc95527e]
*** やったこと [#gf52d211]
- 追加データの収集
-- angularjs(angular/angular.js)
-- swift(apple/swift)
-- django(django/django)
-- angular(angular/angular)
-- (先週収集済み)ruby-on-rails(rails/rails)
-- (先週収集済み)node.js(nodejs/node)
- ユーザの紐づけと活動履歴の取得~
実行中...
- リサーチクエスチョンと仮説を決める~
-- 研究の目的~
新人がStackOverflowで活動した後,GitHubの開発コミュニティ...
-- RQ1. 新人と熟練者では,開発コミュニティへの貢献の受け...
--- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコ...
--- 仮説2. 新人と熟練者では,投稿したPull Requestがマージ...
-- RQ2. 事前に開発コミュニティ外で活動を行った新人とそう...
--- 仮説3. StackOverflowで質問または回答を行ったことがあ...
--- 仮説4. StackOverflowで質問または回答を行ったことがあ...
- 研究発表用のスライド(FOSEのポスターに使う予定)の研究...
スライドの内容も大体作った.
** 11/11 [#a4fc0dfd]
*** やったこと [#j4835169]
- 追加のデータ収集
node.jsのデータ収集とユーザの紐づけが終わった.~
angularjsのデータ収集を開始した.
- 追加データを踏まえてこの前の仮説を検定~
StackOverflowから活動を開始した開発者と,GitHubから活動を...
アンダーサンプリング済み,100回のランダムサンプリング
-- 結果~
so-avg: StackOverflowから活動を開始した開発者のPRがマージ...
gh-avg: GitHubから活動を開始した開発者のPRがマージされる...
どの集団においても有意差はなし.~
--- 熟練者,初心者区別なし~
{'N': 965, 'so-avg': 0.4296555792445905, 'gh-avg': 0.4726...
--- 熟練者~
{'N': 928, 'so-avg': 0.4372790035798231, 'gh-avg': 0.4765...
--- 初心者~
{'N': 37, 'so-avg': 0.3352290732740967, 'gh-avg': 0.37619...
- 新たな仮説を考える
-- StackOverflowから活動を開始した開発者と,GitHubから活...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか~
貢献の動機(バグ修正や機能追加など)を考えれば,コミュニ...
ここでいう反応はPRへの,コメント,承認,変更の要求を意味...
--- どちらの投稿したIssueがコメントをもらいやすいか~
コメントがもらえないと,バグ修正の方法などの議論や,課題...
--- どちらの投稿したIssueへの反応が早いか
-- StackOverflowで質問した後にPRを投稿した開発者と,GitHu...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか
-- StackOverflowで質問した後にIssueを投稿し,さらにその後...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか
-- まだ仮説として明文化できてないけど,アイデアとして~
--- 2つのコミュニティの基本的な統計量の比較(Issue投稿数 ...
2つのコミュニティの,新規参入者に対する対応(受け入れられ...
プロジェクトの開発に関連するキーワード(Bug,feature requ...
StackOverflowでの活動が,開発コミュニティに影響を及ぼすか...
-- 検定方法について~
連続値については,引き続きマンホイットニーのU検定を使う.~
PRのマージされやすさは,マージされる割合を使って検定する...
そもそもPR投稿数が少ないことから連続値としての検定がうま...
二項検定(マージされる or されないの2値)をしてみようと思...
--- 例:StackOverflowから活動を開始した開発者が投稿したPR...
- 活動履歴を取得するプログラムの機能追加(未完)~
収集したデータから,上記の仮説を検証(検定)するために必...
*** 次やること [#zafee387]
- 追加のデータ収集
-- 収集済み
--- ruby-on-rails(rails/rails)
--- node.js(nodejs/node)
-- 追加予定
--- angularjs(angular/angular.js)
--- swift(apple/swift)
--- django(django/django)
--- ruby(ruby/ruby)
--- angular(angular/angular)
- 新しい仮説を検定するために追加で必要な活動履歴を取得す...
** 11/5 [#w2ab73c4]
*** やったこと [#we2cc621]
- 先週の検定結果は間違っていました・・・~
配列の一部がゴミでパディングされていて,それを取り除いた...
StackOverflowから活動を開始した開発者と,GitHubから活動を...
アンダーサンプリングを10回行って,平均値と標準偏差を出す.
-- 初心者,熟練者混合~
N = 33 (StackOverflow: 33, GitHub: 52)~
U average: 565.7~
U stdev: 25.779190574311418~
p average: 0.7238294278693558~
p stdev: 0.18171447235767416~
→有意差なし
-- 熟練者~
N = 26 (StackOverflow: 26, GitHub: 49)~
U average: 323.8~
U stdev: 16.801454963451494~
p average: 0.756500676097484~
p stdev: 0.20189692999318884~
→有意差なし
-- 初心者~
データ数不足のため検定不可.
- データ収集の準備~
データ収集のプログラムがvscode専用の書き方だったので,リ...
- データ収集~
約3日間でruby-on-railsのデータは集まりました.
- データ収集のためのプロジェクト探し(相談)~
StackOverflowで,タグ一覧を質問数が多い順にソートし,タグ...
タグ一覧の上位36個中,リポジトリを見つけた7個を示す.~
ほとんどがプログラミング言語またはフレームワーク.~
プログラミング言語は書き方などの質問が特に多そうなので除...
-- タグ名(リポジトリ名)
-- ruby-on-rails(rails/rails)
-- node.js(nodejs/node)
-- angularjs(angular/angular.js)
-- swift(apple/swift)
-- django(django/django)
-- ruby(ruby/ruby)
-- angular(angular/angular)~
*** 次やること [#i7f72649]
- 統計処理のためのプログラムをvscode以外のプロジェクトに...
- 追加のデータ収集をしたうえで,同じ検定をやってみる.
** 10/29 [#i6214953]
** やったこと [#aba0b4fd]
*** StackOverflowから活動を開始した開発者と,GitHubから活...
- 方法~
下記2つの集団で,提出したPRがマージされる割合に差がある...
-- 最初の活動がStackOverflowでの質問または回答だった開発...
-- 最初の活動がGitHubでのIssueの投稿,コメント,PR投稿,P...
- 結果~
N=85
|統計量U|RIGHT: 1877.0|
|p値|RIGHT: 0.000|
いきなりGitHubで活動を始めるよりも,StackOverflowから活動...
- おまけ~
それぞれの集団の,投稿したIssueに他人からコメントされる割...
N=1125
|統計量U|RIGHT: 188517.5|
|p値|RIGHT: 0.000|
いきなりGitHubで活動を始めるよりも,StackOverflowから活動...
*** 初心者と熟練者を分けて,上の検定をやる [#j0d05b18]
- 方法~
上の検定で分けた集団について,さらに熟練者の集団,初心者...
-- 熟練者:vscodeでPRを提出するより前に,ほかのリポジトリ...
-- 初心者:vscodeでPRを提出するより前に,ほかのリポジトリ...
- 結果~
-- PRのマージされる割合について~
--- 熟練者(N=75)
|統計量U|RIGHT: 1764.0|
|p値|RIGHT: 0.000|
有意差あり.~
--- 初心者(N=10)
|統計量U|RIGHT: 15.0|
|p値|RIGHT: 0.905|
サンプルが少なすぎて,そもそも検定がうまくいっていない.~
使っているライブラリのリファレンスによると,片方の集団だ...
-- Issueにコメントされる割合について~
--- 熟練者(N=931)
|統計量U|RIGHT: 145375.0|
|p値|RIGHT: 0.000|
有意差あり.~
--- 初心者(N=194)
|統計量U|RIGHT: 4665.5|
|p値|RIGHT: 0.000|
有意差あり.
** 次にやること(相談) [#p84a8c5b]
- なぜ,「いきなりGitHubで活動を始めるよりも,StackOverfl...
StackOverflowで具体的にどんな活動をすると,PRがマージされ...
どのくらいの期間,StackOverflowで活動すれば有意差が出るの...
- そもそも検定に十分なサンプルが取れているのか?~
ほかのプロジェクトのデータも集めてみる.~
StackOverflowでの質問数や回答数が多いプロジェクトを探すと...
** 10/22 [#hfe0d7db]
** やったこと [#d8c66487]
- 開発者の階層分け~
アクティブ開発者の閾値を調整.条件を2つ以上のPRを提出した...
OTCは1つ以上PRを提出したことのある開発者.~
それに伴って階層名も変更.~
-- 結果~
|階層|人数[人] (割合[%])|h
|コア開発者|RIGHT: 39 ( 0.08)|
|アクティブ開発者|RIGHT: 480 ( 1.04)|
|One-Time Contributor|RIGHT: 1241 ( 2.66)|
|ペリフェラル開発者|RIGHT: 44787 (96.22)|
- StackOverflowとGitHubのアカウント紐づけ~
-- 方法~
先週は「josh-ua, joshua」や「leonadler, leon adler」とい...
レーベンシュタイン距離を使ってアカウント名の類似度を計算...
空白スペースやハイフンなどの記号なら前処理で除去できるの...
これらを除去したうえで,アカウント名の完全一致を探した.
-- 結果~
|階層|紐づけられたユーザ数[人] (階層のユーザ数[人])|h
|コア開発者|RIGHT: 8 (39)|
|アクティブ開発者|RIGHT: 26 (480)|
|One-Time Contributor|RIGHT: 51 (1241)|
|ペリフェラル開発者|RIGHT: 1496 (44787)|
**次にやること(相談) [#kb3b84a6]
- 紐づけられたユーザのGitHubでの活動履歴と,StackOverflow...
例. ユーザA~
2019/10/20 SOで質問~
2019/10/21 GHでIssue立てる~
2019/10/22 PR提出~
2019/10/23 SOで回答~
例. ユーザB~
2019/10/20 GHでIssueを立てる~
2019/10/21 GHでIssueにコメント~
2019/10/22 SOで質問~
- 活動履歴を使って何をする?
-- SOで活動開始してから,GHで活動開始するまでの期間を得る...
-- タイプ分け?どうやって?
- 考慮すべきこと
-- OSS開発初心者と熟練者を分ける.初心者,熟練者の境界は?
** 10/15 [#z01c082b]
やったこと
- StackOverflowとGitHubのアカウント紐づけ~
-- 方法1. StackOverflowのユーザの自己紹介文からGitHubアカ...
紐づけられたアカウント数 / SOでvscodeタグ付きの質問または...
278 / 23,356 (1.19%)~
このうち、PRをマージした人、Issue・PR投稿またはそれらにコ...
-- 方法2. GitHubのアカウント名とStackOverflowの表示名の類...
GitHubのアカウント名とStackOverflowの表示名のレーベンシュ...
(前処理として、それぞれの名前をすべて小文字に変換)~
計算の40%が終わった段階で、紐づけができたユーザ数は800人。~
この方法で紐づけられた人は、必ずどこかの階層(後述)に現...
しかし、PR投稿者の中に紐づけできた人がいるかどうかは現時...
--- 無関係な人も紐づけてしまうことがある~
例:ball, bball 目視したところ、全くの別人~
かといって、レーベンシュタイン距離が0(まったく同じ名前)...
「josh-ua, joshua」や「leonadler, leon adler」といったア...
Pythonのdifflibを使って文字列の類似性を測った値も併用する...
--- 全探索しているのでかなり時間がかかる(3~4日かかる)~
レーベンシュタイン距離とdifflibを使った類似性を計算して、...
また、ボトルネックはDBからデータを取り出すのにかかる時間...
メモリ節約のためと思って、いくつかデータを取り出し、処理...
大量にデータをDBから取り出して、メモリに展開してから処理...
-- その他の非現実的な方法について~
--- 自己紹介文の類似性~
そもそも自己紹介文を書いてる人が少なすぎる。
--- プロフィールアイコン画像の類似性~
名前の総当たりだけでも3~4日かかるのに、画像比較なんてやっ...
- 開発者の階層分け~
以下の4つの階層に分けた。~
vscodeの場合、これらの開発者の分布は、~
|階層|人数[人] (割合[%])|h
|コア開発者|RIGHT: 39 ( 0.08)|
|定期的PR投稿者|RIGHT:7 ( 0.02)|
|不定期的PR投稿者|RIGHT:3001 ( 6.00)|
|Issue投稿者, Issueコメント者, PRコメント者|RIGHT:46941 (...
-- コア開発者~
PRのマージをした人
-- 定期的PR投稿者~
PR投稿数が5個より多く、最も古いPR投稿から直近のPR投稿まで...
-- 不定期的PR投稿者~
定期的PR投稿者以外のPR投稿者~
-- Issue投稿者, Issueコメント者, PRコメント者
** 10/8 [#we51c25c]
やったこと
- データ集め
-- StackOverflow~
sotorrentはいったん放置して、Webスクレイピングの件を作業...
vscodeのタグが付いた質問と回答はWebAPIから取得しておいた。~
-- GitHub~
プルリクエストを全部取得。
- データ分析~
集めたデータを使ってコメント数の分布をプロットしてみた。~
&attachref(ghReplyCountsHistogram.png);
&attachref(soReplyCountsHistogram.png);
- 相談~
-- GitHubとStackOverflowのアカウント紐づけについて~
とりあえず考えられる方法を試して、どのくらいのアカウント...
--- StackOverflowのプロフィール(APIから取得可能な範囲で)...
--- GitHubアカウントのプロフィールからStackOverflowアカウ...
--- StackOverflowのプロフィールからTwitterアカウントへの...
-- 2回目質問する割合について~
発言のしやすいコミュニティかどうかを調べるのに役に立つ指...
1回目と2回目が同じ質問かどうかを、自然言語処理の技術を使...
-- 開発者の階層分けについて~
「Toward an Understanding of the Motivation of Open Sourc...
--- Passive user: ただのユーザ。
--- Reader: Issueやソースコードを読む人。
--- Bug reporter(, Feature requester←この論文には書いてな...
--- Bug fixer: 自分または他人が報告したバグの修正をする。...
--- Peripheral developer: 時々新機能を提供する。貢献が不...
--- Active developer: 定期的に新機能を提供し、バグを修正...
--- Core member: 開発の指導、調整を行う。比較的長い間プロ...
--- Project leader: プロジェクトのオーナー。プロジェクト...
--- 疑問1: Bug fixerとPeripheral developerを階層分けすべ...
明記はされていなかったが、Bug fixerは1つのバグをFixするた...
Peripheral developerは2回以上で貢献がコンスタントではない...
--- 疑問2: issueやPRにコメントする人はどこに対応するのか?~
Bug reporterと同じ層?コメントは問題提起よりも難易度が低...
ほかにも階層分けモデルがある?
- 来週までにやること
-- アカウント紐づけ頑張る
** 9/25 [#p5c003e6]
やったこと
- データ集め
-- StackOverflow~
sotorrentをDLしてmysqlデータベースにインポート中。~
あと最低2週間はかかる見込み。
-- GitHub(対象のリポジトリはvscode)~
issueとissueについたコメントを取得するプログラムを作成中。~
GitHub APIの制限に引っ掛からない速度でゆっくりデータ収集...
来週までにやること
- issueのリプライの数/速さを箱ひげ図にプロットする~
-- リプライの数: 質問や問題があるときにコミュニティの誰か...
-- リプライの速さ: 質問や問題があるときにコミュニティがど...
- StackOverflowからGitHubの開発コミュニティに移動する割合...
StackOverflowなど(Gitter, Slack, Twitter)のメディアが、...
StackOverflowで質問や回答をした人が、GitHubのissueで議論...
その中で新人の割合は?逆に新人の中で、過去にStackOverflow...
アカウントの紐づけに関する研究がある?~
- 新人が発言する割合: 新人が発言しやすいメディアかどうか...
新人の定義が難しい。。。~
コミュニティに新しく入る人として考えるなら、ネットワーク...
例: コミュニティ検出をして、そのに新しくリンクが張られる...
** 9/19 [#n0e9e32a]
やったこと
- Who is Going to Mentor Newcomers in Open Source Project...
新人が求める知識を教えてくれそうなメンターを推薦するツー...
-- 考えたこと
--- FreeBSDではメンターと新人のペアでのメールのやり取りが...
1人または複数のメンターによって1人の新人を教えるだけでは...
--- メンターはいらない!1人でやりたい!でもプロジェクトの...
メンターなしで、1人でやったほうが良かったみたいな新人はい...
メンターはどんなことを新規参入者に教えている?~
メンターが必要なぐらいドキュメントが整備されていないプロ...
メンターのやってることを機械が代替できないか?~
- そもそもメンタリングすることで新人に対してどんな効果が...
https://dl.acm.org/citation.cfm?id=1806842
-- メンタリングの充実度などの評価があるかも?
**9/12 [#q4cc5805]
やったこと
- 分析対象のリポジトリを選んでみた~
2010年以前にGitHubに登録されたリポジトリをfork数で降順ソ...
その中から、コントリビュータの数が一番多い[[rails:https:/...
- 分析対象のコントリビュータを選んでみた~
[[https://github.com/rails/rails/graphs/contributors]]か...
リポジトリ登録から2年以降に初めてのコミットがあり、コンス...
- 分析対象のコントリビュータのコミットを集めてみた~
途中
** 9/5 [#gf9eb79b]
やったこと
- 論文を読んだ
-- OSSプロジェクトへの新規参入者のための研究
--- Overcoming Open Source Project Entry Barriers with a...
OSSプロジェクトの新規参入者をサポートするために作成された...
貢献を始めるためのステップバイステップのフロー、簡単なタ...
プロジェクトに必要なスキル、コミュニティが提供するチュー...
ドキュメントに関連する整理された情報、コーディングスタイ...
65人の学生にポータルを使用してOSSプロジェクト(LibreOffic...
--- Hipikat: A project memory for software development~
タスクに関連するソースコード、ドキュメント、ディスカッシ...
関連しているアイテム同士にリンクを張り、リンクされている...
評価は、Eclipse Bugzillaから修正済みバグレポートをサンプ...
Eclipseの過去に完了した機能拡張に関するタスクに取り組んで...
また、Eclipseの開発メンバー数人にツールを利用せずに同様の...
-- バグレポートの要約に関する研究
--- Summarizing Software Artifacts: A Case Study of Bug R...
バグレポートの要約を正確に行えるかどうかを検討。~
7人の大学院生に計36個のバグレポートの要約を作成してもらい...
--- Unsupervised Deep Bug Report Summarization~
AutoEncoderモデルを使った、抽象型のサマライザを実装。~
公開されているバグレポートの要約を使ってサマライザを学習...
- 自分がOSSプロジェクトに参加するのに役立つこと
-- これらが分かりやすく示されていると参加しやすい
--- 歴史
--- 現在抱えている問題、議論と、これらに助けが必要かどう...
** 8/20 [#v0b5767a]
やったこと
- An Empirical Study of Long Lived Bugsを読んだ~
長期間解決されないバグについての分析。~
すぐ解決されるバグに比べて特筆すべき特徴や傾向はなし。~
ソフトウェアのクラッシュやデータの損失など、重大なバグの...
- オープンソースプロジェクトに参加してみようとした~
-- 現在の開発状況が分かりにくい(どこまで作業が完了してい...
-- Slackなどの縦に流れるチャット履歴を追うのがしんどい
- PRを送ってみた~
issuehuntでお金が着いているissueの中で、good first issue...
単純な修正だったので即承認してもらえたが、プログラムを考...
次のMTGまでにやること
- 自分がコミュニティに参加するのに役立つようなことを考える
- コミュニティの履歴やチャンネルでの議論の可視化、要約
-- どんな要約があったらいいかを考える
-- 既存の可視化、要約技術について調べる
--- CodeCity: モジュールを街(建物)に見立てて可視化
--- Gource: プロダクトを開発者が作り上げる過程を可視化
- issueの難易度の推定
-- 開発者の実績を基にバグをアサインするバグトリアージに近...
-- good first issueラベルを使う
-- 素人とエキスパートの解決するissueの違いについて調べる
- 論文を読む
-- SocialBarrier関連で初心者向けに要約を行う論文がある
--- Overcoming Open Source Project Entry Barriers with a...
-- APIドキュメントの要約などの論文を読み、どのような評価...
--- Generating query-specific class API summaries
-- 素人と熟練者が取り組んだissueやコードの違いを比較した...
** 8/7 [#pc895c3c]
やったこと
- どんなOSSを対象にした研究がしたいか考える~
-- 開発者は完全にボランティア~
例: Apache~
Apacheは財団があるが、開発者は完全なボランティアで、財団...
他の会社に勤めていて、かつApacheのOSSにフルタイムで開発に...
TODO: Linuxカーネルとかディストリとかはどうなんだろう?~
-- コア開発者がフルタイムで開発にあたっている~
つまり、コア開発者はそれを本業の仕事として給料をもらい、...
例: React(Facebook), TensorFlow(Google), VSCode(Microsoft...
- 研究対象のOSS開発者がどういった問題を抱えていそうか調査...
コア開発者がフルタイムで開発にあたっているOSSであるvscode...
-- issue
--- 一番古いのは4年前
--- MS社員が担当者の任命やラベル付けはしているが、コメン...
--- 議論がされているものの、結論が出ていない。途中で止ま...
-- PR
--- 一番古いのは2年前
--- 社員にケチをつかられて、PRを立てた人が追加の変更をし...
--- PRを立てた人が実装を途中であきらめた
--- 社員によるレビューが何回か行われているのに、途中で行...
--- issueに基づくPRではあるが、プランに含まれていないとい...
-- その他issueとPRを見てて分かったこと
--- issueのコメントでいろんなユーザが「はよこの機能追加し...
来週までにやること
- 研究対象のOSS開発者がどういった問題を抱えていそうか調査...
** 7/25 [#i032b46a]
やったこと
- 以下の論文を流し読みしました
-- Two case studies of open source software development: ...
上位15名の開発者が、コード生成への貢献の約80%を占めている...
コア開発者は新機能の開発、ペリフェラル開発者はバグ修正を...
-- Who Gets a Patch Accepted First? Comparing the Contri...
ボランティアは従業員よりも26倍多くrejectされていることが...
プルリクが作られてからマージされるまで、従業員は2日なのに...
--- 気になったこと~
時間がかかると貢献から遠のいてしまうのではないか?~
ボランティアが遠のくと、OSSの品質(細かなバグ)に影響が出...
パッチ受け入れとOSSの品質に関係する論文を探す
- その他気になっていること
-- OSSを収益化すれば、OSSが廃れる?~
社会規範から市場規範へ切り替わることで問題は発生するのか?~
OSSの持続可能性を高めるため, OSSを収益化する動きがある.~
--- GitHub Sponsors(GitHub, Inc.): 5000ドルばらまくキャン...
GitHubのOSS開発者への寄付が可能.
--- Issuehunt(BoostIO, Inc.): 資金調達1億円~
Issueに報酬を設定し, PRが承認されれば報酬を得る.
--- Beerpay~
オープンソースプロジェクトへの寄付が可能.
--- Dev(FRAME00, Inc.): ~
オープンソースプロジェクトに対して毎月仮想通貨を配布.
--- これによる問題~
OSSコミュニティに市場規範が持ち込まれると, 今まで金銭的見...
今までは非金銭的な動機でOSSに貢献していたのが、金銭的な動...
金銭的見返りのないコミュニティ(社会規範のコミュニティ)...
市場規範: 金銭的なつがりを基に価値判断される世界の規範. ...
社会規範: 社会的なつながりを基に価値判断される世界の規範....
来週までにやること
** 7/18 [#k93e82d9]
やったこと
- 以下の論文を流し読みして、オープンソースプロジェクトの...
-- オープンソースプロジェクトへ初めて参加する際の社会的障...
--- Socialization in Open Source Software Projects A Gro...
--- Social Barriers Faced by Newcomers Placing Their Firs...
-- One-Time Contributorsに関する論文
--- One-Time Contributors to FLOSS Surveys and Data Analy...
--- Understanding the impressions, motivations, and barri...
-- 読んでて気になったこと~
そもそもコア開発者とペリフェラル開発者の割合ってどのくら...
昨日それっぽい論文見つけたので来週までに読んできます~
来週までにやること
- コア開発者やペリフェラル開発者について知るため
-- https://dl.acm.org/citation.cfm?id=567795
-- More Common Than You Think: An In-Depth Study of Casu...
コア開発者、ペリフェラル開発者の割合、ペリフェラル開発者...
-- How does contributors involvement influence open sourc...
コア開発者、ペリフェラル開発者によって投稿されたパッチの...
- めっちゃ読みたい論文~
Who gets a patch accepted first?: comparing the contribut...
企業のオープンソースプロジェクトにおいて、従業員の開発者...
ボランティア開発者が何かしらの問題に直面してそう。~
** 6/17 [#c7d18b1e]
やったこと
- CytoscapeのAPI機能を利用して、ネットワークの図の作成を...
- GitHubから適当なリポジトリを選んで、Cytoscape Core Apps...
問題点
- CytoscapeのNetwork Analyzerは機能が限定的で、かゆいとこ...
⇒ pythonのSNAライブラリNetworkXに移行する
進行中
- issueやissue_commentの数が多いリポジトリのからのデータ...
- issueやissue_commentの数が多いリポジトリからネットワー...
** 6/10 [#u75f9cbc]
やったこと
- GitHub APIから特定のリポジトリの全てのissue(open and cl...
- issue投稿者とcomment投稿者のノードを作り、コミュニケー...
** 6/3 [#x0d5e935]
やったこと
- 研究概要を考える
** 5/23 [#s23b2a33]
やったこと
- The Role of Participation Architecture in Growing Spons...
** 5/7 [#yfbc2354]
やったこと
- グラフ描画のツール作成
- 「Contrasting Community Building in Sponsored and Commu...
アメリカ合衆国退役軍人省の医療情報システム(public domain)...
コミュニティ主導のオープンソースプロジェクトとスポンサー...
スポンサー付きのオープンソースプロジェクトでは、健全なコ...
** 4/18 [#j7a17328]
やったこと
- mysqlの設定を変更して、ghtorrentのデータをにインポート...
今のペースだと最低1か月以上かかるので、~
日別に分割されたmongoのダンプファイルが公式から出てるので...
- 「Two Case Studies of Open Source Software Development:...
アブストラクトとイントロダクションのRQの部分を訳した。~
この論文が何を明らかにしようとしているのかは分かった(多...
* Templates [#lc4d5af1]
- 添付~
&attachref();
終了行:
* 研究概要 [#xdf80500]
OSSプロジェクト(のメンター)が新人を大切にしているか?
- メンタリングの充実度と、新人の定着度の比較
-- 論文を読む
--- 既存研究との違い、不足を考える(視点を変える、対象を...
結論を一般論として考えない。
--- https://dl.acm.org/citation.cfm?id=2393647~
refarenceとcitedbyを見る
-- 目安は10本
- プロジェクトの品質、持続可能性との関係
* 研究MTG [#ve6c9421]
** 1/20 [#g0761992]
*** 卒論タイトルについて [#mc87895c]
- 研究室内の発表の時のタイトル:StackOverflowとGitHubでの...
-- 問題:目的が伝わらない~
-- 懸念:「分析」やった?RQ立てて仮説検定しただけですが・...
-- 参考
--- 研究の目的~
新人OSS開発者が開発コミュニティ(GitHub)に馴染む(/順応する...
--- アプローチ~
新人が開発コミュニティ,外側のコミュニティに馴染めている...
*** やったこと [#qe927a58]
- イントロから結果まで一通り書いた.吉富さんにレビューし...
- 考察は今日から考えます
** 1/7 [#o7d52c99]
*** やったこと [#c4b3e6e0]
- 効果量の勉強
- RQ2の検定を行うための集計プログラムを書いた.あとはRQ1...
- RQ1-1(カイ二乗検定)とRQ1-2(マンホイットニーのU検定)...
この書き方で大丈夫か?
** 12/24 [#xa3597bf]
*** やったこと [#j9495dfd]
- 自分の投稿した質問,Issue,PRへの回答,コメント,マージ...
- 検定のプログラムに,論文に結果を載せるために必要な計算...
- 論文に検定結果を載せるためのテンプレ考えた
** 12/10 [#k855af6a]
*** やったこと [#v1847648]
- リプライの速さの違いがあるかどうか~
下記の仮説について,マンホイットニーのU検定を行う.
-- 仮説4. 新人とそれ以外では,投稿したIssueに寄せられるコ...
--- N: 5177
--- 新人に対して最初のコメントが付くまでの時間の平均値[h]...
--- 新人に対して最初のコメントが付くまでの時間の標準偏差[...
--- 新人以外に対して最初のコメントが付くまでの時間の平均...
--- 新人以外に対して最初のコメントが付くまでの時間の標準...
--- p値の平均値: 3.18138275308254e-132
--- p値の標準偏差: 3.1507845292838883e-131~
有意差はある.新人の方が最初のコメントが付くまでの時間が...
GitHubの開発コミュニティでは新人に対して早く反応している.
-- 仮説5. 新人とそれ以外では,投稿した質問に対する回答の...
--- N: 2917
--- 新人に対して最初の回答が付くまでの時間の平均値[h]: 0....
--- 新人に対して最初の回答が付くまでの時間の標準偏差[h]: ...
--- 新人以外に対して最初の回答が付くまでの時間の平均値[h]...
--- 新人以外に対して最初の回答が付くまでの時間の標準偏差[...
--- p値の平均値: 0.06012987211053698
--- p値の標準偏差: 0.08826525634410144~
有意差なし.時間の平均値や標準偏差を見る限り,大きな差は...
- 「熟練者」って言い方やめる~
他のプロジェクトでの活動経験があるかどうかで,開発者を二...
「新人」と「新人以外」って呼び方にする.
*** 今後の予定 [#a7347184]
- RQ2(事前にStackOverflowで活動をした新人とそうでない新人...
以前1プロジェクトでやってはいるので,複数プロジェクトで試...
- 仮説検定の方法と結果をまとめる~
卒論に載せれる形まで整える.
** 12/3 [#iad98e60]
*** やったこと~ [#x0f48e43]
- 仮説と検定手法の見直し~
仮説2と3は,二項検定では新人と熟練者での差があるかどうか...
仮説を「新人か熟練者かどうかと,投稿したPull Requestがマ...
要するに,旧仮説に対して,そもそも二項検定では仮説の検定...
-- 旧仮説2. 新人と熟練者では,投稿したPull Requestがマー...
-- 旧仮説3. 新人と熟練者では,投稿した質問に回答があるか...
-- 新仮説2. 新人か熟練者かどうかと,投稿したPull Request...
-- 新仮説3. 新人か熟練者かどうかと,投稿した質問に回答が...
- ちょっとだけ検定してみた~
手動で必要なデータを集めて,仮説2のカイ二乗検定をやってみ...
p値: 5.669430515845988e-37~
関連はある.しかし,新人と熟練者でPRがマージされる割合は...
- 仮説4, 5について~
仮説4は予定通りマンホイットニーのU検定を行う予定.仮説5は...
参考~
-- 仮説4. StackOverflowで質問または回答を行ったことがある...
-- 仮説5. StackOverflowで質問または回答を行ったことがある...
*** 今後の方針(相談)~ [#r3f0f6f9]
- リアクションの速さに違いがあるかどうか検定する~
そういえば,コミュニティへの受け入れられやすさの指標の1つ...
一応RQ1(StackOverflowとGitHubで新人と熟練者の活動の受け...
それとも,早めに質的調査に移った方がいい?
- とりあえず,現在立てている仮説については来週までに検定...
期待通りの結果ではないことが目に見えているので,質的調査...
期待通りでなかった仮説に対して,質的調査を行い,なぜ期待...
例えば,
-- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコメ...
新人の投稿したIssueに寄せられるコメント数の方が多い.新人...
やること:新人が投稿したIssueに寄せられたコメントを目視す...
期待する調査結果:新人が投稿したIssueでは,投稿した内容に...
** 11/26 [#w83820f2]
*** やったこと [#o9a24228]
仮説検定を少しやりました.
- RQ1. StackOverflowとGitHubで新人と熟練者の活動の受け入...
それぞれのコミュニティで,新人に対する扱いを知りたい.~
-- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコメ...
結果はアンダーサンプリングした際の平均値~
--- N: 6012~
--- 新人のIssueに対する平均コメント数: 4.971057884231537~
--- 熟練者のIssueに対する平均コメント数: 4~
--- p値: 7.637873580525364e-30~
⇒ 熟練者はあんまりやり取りしなくてもIssueを解決できる?~
コメント数の差で見るのではなく,(人間の)コメント数0の状...
- 仮説2. 新人と熟練者では,投稿したPull Requestがマージさ...
検定の前に,新人が投稿したPRのうちマージされる割合と,熟...
-- 新人が投稿した全PRのうちマージされる割合(マージされたP...
-- 熟練者が投稿した全PRのうちマージされる割合(マージされ...
⇒ 新人の方がPRがマージされる割合が高い.新人はマージされ...
ちなみに,分析対象のプロジェクトに投稿されたすべてのPRの...
StackOverflowで活動を行った開発者のPRのマージされる割合が...
*** 相談 [#p37828f6]
- 新人にとって開発コミュニティ外のコミュニティがなぜ,役...
個人的な考えは,新人にとってIssueやPRでの議論には参加しず...
-- 開発コミュニティとの知識や技術のギャップを埋めやすくな...
例えば「〇〇ができません」という質問に対して,「それはバ...
もしかしたらGitHubでIssueを投稿するきっかけになるかもしれ...
-- 開発コミュニティでは相手にされないような質問でも,外の...
** 11/19 [#sc95527e]
*** やったこと [#gf52d211]
- 追加データの収集
-- angularjs(angular/angular.js)
-- swift(apple/swift)
-- django(django/django)
-- angular(angular/angular)
-- (先週収集済み)ruby-on-rails(rails/rails)
-- (先週収集済み)node.js(nodejs/node)
- ユーザの紐づけと活動履歴の取得~
実行中...
- リサーチクエスチョンと仮説を決める~
-- 研究の目的~
新人がStackOverflowで活動した後,GitHubの開発コミュニティ...
-- RQ1. 新人と熟練者では,開発コミュニティへの貢献の受け...
--- 仮説1. 新人と熟練者では,投稿したIssueに寄せられるコ...
--- 仮説2. 新人と熟練者では,投稿したPull Requestがマージ...
-- RQ2. 事前に開発コミュニティ外で活動を行った新人とそう...
--- 仮説3. StackOverflowで質問または回答を行ったことがあ...
--- 仮説4. StackOverflowで質問または回答を行ったことがあ...
- 研究発表用のスライド(FOSEのポスターに使う予定)の研究...
スライドの内容も大体作った.
** 11/11 [#a4fc0dfd]
*** やったこと [#j4835169]
- 追加のデータ収集
node.jsのデータ収集とユーザの紐づけが終わった.~
angularjsのデータ収集を開始した.
- 追加データを踏まえてこの前の仮説を検定~
StackOverflowから活動を開始した開発者と,GitHubから活動を...
アンダーサンプリング済み,100回のランダムサンプリング
-- 結果~
so-avg: StackOverflowから活動を開始した開発者のPRがマージ...
gh-avg: GitHubから活動を開始した開発者のPRがマージされる...
どの集団においても有意差はなし.~
--- 熟練者,初心者区別なし~
{'N': 965, 'so-avg': 0.4296555792445905, 'gh-avg': 0.4726...
--- 熟練者~
{'N': 928, 'so-avg': 0.4372790035798231, 'gh-avg': 0.4765...
--- 初心者~
{'N': 37, 'so-avg': 0.3352290732740967, 'gh-avg': 0.37619...
- 新たな仮説を考える
-- StackOverflowから活動を開始した開発者と,GitHubから活...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか~
貢献の動機(バグ修正や機能追加など)を考えれば,コミュニ...
ここでいう反応はPRへの,コメント,承認,変更の要求を意味...
--- どちらの投稿したIssueがコメントをもらいやすいか~
コメントがもらえないと,バグ修正の方法などの議論や,課題...
--- どちらの投稿したIssueへの反応が早いか
-- StackOverflowで質問した後にPRを投稿した開発者と,GitHu...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか
-- StackOverflowで質問した後にIssueを投稿し,さらにその後...
--- どちらの投稿したPRがマージされやすいか
--- どちらの投稿したPRへの反応が早いか
-- まだ仮説として明文化できてないけど,アイデアとして~
--- 2つのコミュニティの基本的な統計量の比較(Issue投稿数 ...
2つのコミュニティの,新規参入者に対する対応(受け入れられ...
プロジェクトの開発に関連するキーワード(Bug,feature requ...
StackOverflowでの活動が,開発コミュニティに影響を及ぼすか...
-- 検定方法について~
連続値については,引き続きマンホイットニーのU検定を使う.~
PRのマージされやすさは,マージされる割合を使って検定する...
そもそもPR投稿数が少ないことから連続値としての検定がうま...
二項検定(マージされる or されないの2値)をしてみようと思...
--- 例:StackOverflowから活動を開始した開発者が投稿したPR...
- 活動履歴を取得するプログラムの機能追加(未完)~
収集したデータから,上記の仮説を検証(検定)するために必...
*** 次やること [#zafee387]
- 追加のデータ収集
-- 収集済み
--- ruby-on-rails(rails/rails)
--- node.js(nodejs/node)
-- 追加予定
--- angularjs(angular/angular.js)
--- swift(apple/swift)
--- django(django/django)
--- ruby(ruby/ruby)
--- angular(angular/angular)
- 新しい仮説を検定するために追加で必要な活動履歴を取得す...
** 11/5 [#w2ab73c4]
*** やったこと [#we2cc621]
- 先週の検定結果は間違っていました・・・~
配列の一部がゴミでパディングされていて,それを取り除いた...
StackOverflowから活動を開始した開発者と,GitHubから活動を...
アンダーサンプリングを10回行って,平均値と標準偏差を出す.
-- 初心者,熟練者混合~
N = 33 (StackOverflow: 33, GitHub: 52)~
U average: 565.7~
U stdev: 25.779190574311418~
p average: 0.7238294278693558~
p stdev: 0.18171447235767416~
→有意差なし
-- 熟練者~
N = 26 (StackOverflow: 26, GitHub: 49)~
U average: 323.8~
U stdev: 16.801454963451494~
p average: 0.756500676097484~
p stdev: 0.20189692999318884~
→有意差なし
-- 初心者~
データ数不足のため検定不可.
- データ収集の準備~
データ収集のプログラムがvscode専用の書き方だったので,リ...
- データ収集~
約3日間でruby-on-railsのデータは集まりました.
- データ収集のためのプロジェクト探し(相談)~
StackOverflowで,タグ一覧を質問数が多い順にソートし,タグ...
タグ一覧の上位36個中,リポジトリを見つけた7個を示す.~
ほとんどがプログラミング言語またはフレームワーク.~
プログラミング言語は書き方などの質問が特に多そうなので除...
-- タグ名(リポジトリ名)
-- ruby-on-rails(rails/rails)
-- node.js(nodejs/node)
-- angularjs(angular/angular.js)
-- swift(apple/swift)
-- django(django/django)
-- ruby(ruby/ruby)
-- angular(angular/angular)~
*** 次やること [#i7f72649]
- 統計処理のためのプログラムをvscode以外のプロジェクトに...
- 追加のデータ収集をしたうえで,同じ検定をやってみる.
** 10/29 [#i6214953]
** やったこと [#aba0b4fd]
*** StackOverflowから活動を開始した開発者と,GitHubから活...
- 方法~
下記2つの集団で,提出したPRがマージされる割合に差がある...
-- 最初の活動がStackOverflowでの質問または回答だった開発...
-- 最初の活動がGitHubでのIssueの投稿,コメント,PR投稿,P...
- 結果~
N=85
|統計量U|RIGHT: 1877.0|
|p値|RIGHT: 0.000|
いきなりGitHubで活動を始めるよりも,StackOverflowから活動...
- おまけ~
それぞれの集団の,投稿したIssueに他人からコメントされる割...
N=1125
|統計量U|RIGHT: 188517.5|
|p値|RIGHT: 0.000|
いきなりGitHubで活動を始めるよりも,StackOverflowから活動...
*** 初心者と熟練者を分けて,上の検定をやる [#j0d05b18]
- 方法~
上の検定で分けた集団について,さらに熟練者の集団,初心者...
-- 熟練者:vscodeでPRを提出するより前に,ほかのリポジトリ...
-- 初心者:vscodeでPRを提出するより前に,ほかのリポジトリ...
- 結果~
-- PRのマージされる割合について~
--- 熟練者(N=75)
|統計量U|RIGHT: 1764.0|
|p値|RIGHT: 0.000|
有意差あり.~
--- 初心者(N=10)
|統計量U|RIGHT: 15.0|
|p値|RIGHT: 0.905|
サンプルが少なすぎて,そもそも検定がうまくいっていない.~
使っているライブラリのリファレンスによると,片方の集団だ...
-- Issueにコメントされる割合について~
--- 熟練者(N=931)
|統計量U|RIGHT: 145375.0|
|p値|RIGHT: 0.000|
有意差あり.~
--- 初心者(N=194)
|統計量U|RIGHT: 4665.5|
|p値|RIGHT: 0.000|
有意差あり.
** 次にやること(相談) [#p84a8c5b]
- なぜ,「いきなりGitHubで活動を始めるよりも,StackOverfl...
StackOverflowで具体的にどんな活動をすると,PRがマージされ...
どのくらいの期間,StackOverflowで活動すれば有意差が出るの...
- そもそも検定に十分なサンプルが取れているのか?~
ほかのプロジェクトのデータも集めてみる.~
StackOverflowでの質問数や回答数が多いプロジェクトを探すと...
** 10/22 [#hfe0d7db]
** やったこと [#d8c66487]
- 開発者の階層分け~
アクティブ開発者の閾値を調整.条件を2つ以上のPRを提出した...
OTCは1つ以上PRを提出したことのある開発者.~
それに伴って階層名も変更.~
-- 結果~
|階層|人数[人] (割合[%])|h
|コア開発者|RIGHT: 39 ( 0.08)|
|アクティブ開発者|RIGHT: 480 ( 1.04)|
|One-Time Contributor|RIGHT: 1241 ( 2.66)|
|ペリフェラル開発者|RIGHT: 44787 (96.22)|
- StackOverflowとGitHubのアカウント紐づけ~
-- 方法~
先週は「josh-ua, joshua」や「leonadler, leon adler」とい...
レーベンシュタイン距離を使ってアカウント名の類似度を計算...
空白スペースやハイフンなどの記号なら前処理で除去できるの...
これらを除去したうえで,アカウント名の完全一致を探した.
-- 結果~
|階層|紐づけられたユーザ数[人] (階層のユーザ数[人])|h
|コア開発者|RIGHT: 8 (39)|
|アクティブ開発者|RIGHT: 26 (480)|
|One-Time Contributor|RIGHT: 51 (1241)|
|ペリフェラル開発者|RIGHT: 1496 (44787)|
**次にやること(相談) [#kb3b84a6]
- 紐づけられたユーザのGitHubでの活動履歴と,StackOverflow...
例. ユーザA~
2019/10/20 SOで質問~
2019/10/21 GHでIssue立てる~
2019/10/22 PR提出~
2019/10/23 SOで回答~
例. ユーザB~
2019/10/20 GHでIssueを立てる~
2019/10/21 GHでIssueにコメント~
2019/10/22 SOで質問~
- 活動履歴を使って何をする?
-- SOで活動開始してから,GHで活動開始するまでの期間を得る...
-- タイプ分け?どうやって?
- 考慮すべきこと
-- OSS開発初心者と熟練者を分ける.初心者,熟練者の境界は?
** 10/15 [#z01c082b]
やったこと
- StackOverflowとGitHubのアカウント紐づけ~
-- 方法1. StackOverflowのユーザの自己紹介文からGitHubアカ...
紐づけられたアカウント数 / SOでvscodeタグ付きの質問または...
278 / 23,356 (1.19%)~
このうち、PRをマージした人、Issue・PR投稿またはそれらにコ...
-- 方法2. GitHubのアカウント名とStackOverflowの表示名の類...
GitHubのアカウント名とStackOverflowの表示名のレーベンシュ...
(前処理として、それぞれの名前をすべて小文字に変換)~
計算の40%が終わった段階で、紐づけができたユーザ数は800人。~
この方法で紐づけられた人は、必ずどこかの階層(後述)に現...
しかし、PR投稿者の中に紐づけできた人がいるかどうかは現時...
--- 無関係な人も紐づけてしまうことがある~
例:ball, bball 目視したところ、全くの別人~
かといって、レーベンシュタイン距離が0(まったく同じ名前)...
「josh-ua, joshua」や「leonadler, leon adler」といったア...
Pythonのdifflibを使って文字列の類似性を測った値も併用する...
--- 全探索しているのでかなり時間がかかる(3~4日かかる)~
レーベンシュタイン距離とdifflibを使った類似性を計算して、...
また、ボトルネックはDBからデータを取り出すのにかかる時間...
メモリ節約のためと思って、いくつかデータを取り出し、処理...
大量にデータをDBから取り出して、メモリに展開してから処理...
-- その他の非現実的な方法について~
--- 自己紹介文の類似性~
そもそも自己紹介文を書いてる人が少なすぎる。
--- プロフィールアイコン画像の類似性~
名前の総当たりだけでも3~4日かかるのに、画像比較なんてやっ...
- 開発者の階層分け~
以下の4つの階層に分けた。~
vscodeの場合、これらの開発者の分布は、~
|階層|人数[人] (割合[%])|h
|コア開発者|RIGHT: 39 ( 0.08)|
|定期的PR投稿者|RIGHT:7 ( 0.02)|
|不定期的PR投稿者|RIGHT:3001 ( 6.00)|
|Issue投稿者, Issueコメント者, PRコメント者|RIGHT:46941 (...
-- コア開発者~
PRのマージをした人
-- 定期的PR投稿者~
PR投稿数が5個より多く、最も古いPR投稿から直近のPR投稿まで...
-- 不定期的PR投稿者~
定期的PR投稿者以外のPR投稿者~
-- Issue投稿者, Issueコメント者, PRコメント者
** 10/8 [#we51c25c]
やったこと
- データ集め
-- StackOverflow~
sotorrentはいったん放置して、Webスクレイピングの件を作業...
vscodeのタグが付いた質問と回答はWebAPIから取得しておいた。~
-- GitHub~
プルリクエストを全部取得。
- データ分析~
集めたデータを使ってコメント数の分布をプロットしてみた。~
&attachref(ghReplyCountsHistogram.png);
&attachref(soReplyCountsHistogram.png);
- 相談~
-- GitHubとStackOverflowのアカウント紐づけについて~
とりあえず考えられる方法を試して、どのくらいのアカウント...
--- StackOverflowのプロフィール(APIから取得可能な範囲で)...
--- GitHubアカウントのプロフィールからStackOverflowアカウ...
--- StackOverflowのプロフィールからTwitterアカウントへの...
-- 2回目質問する割合について~
発言のしやすいコミュニティかどうかを調べるのに役に立つ指...
1回目と2回目が同じ質問かどうかを、自然言語処理の技術を使...
-- 開発者の階層分けについて~
「Toward an Understanding of the Motivation of Open Sourc...
--- Passive user: ただのユーザ。
--- Reader: Issueやソースコードを読む人。
--- Bug reporter(, Feature requester←この論文には書いてな...
--- Bug fixer: 自分または他人が報告したバグの修正をする。...
--- Peripheral developer: 時々新機能を提供する。貢献が不...
--- Active developer: 定期的に新機能を提供し、バグを修正...
--- Core member: 開発の指導、調整を行う。比較的長い間プロ...
--- Project leader: プロジェクトのオーナー。プロジェクト...
--- 疑問1: Bug fixerとPeripheral developerを階層分けすべ...
明記はされていなかったが、Bug fixerは1つのバグをFixするた...
Peripheral developerは2回以上で貢献がコンスタントではない...
--- 疑問2: issueやPRにコメントする人はどこに対応するのか?~
Bug reporterと同じ層?コメントは問題提起よりも難易度が低...
ほかにも階層分けモデルがある?
- 来週までにやること
-- アカウント紐づけ頑張る
** 9/25 [#p5c003e6]
やったこと
- データ集め
-- StackOverflow~
sotorrentをDLしてmysqlデータベースにインポート中。~
あと最低2週間はかかる見込み。
-- GitHub(対象のリポジトリはvscode)~
issueとissueについたコメントを取得するプログラムを作成中。~
GitHub APIの制限に引っ掛からない速度でゆっくりデータ収集...
来週までにやること
- issueのリプライの数/速さを箱ひげ図にプロットする~
-- リプライの数: 質問や問題があるときにコミュニティの誰か...
-- リプライの速さ: 質問や問題があるときにコミュニティがど...
- StackOverflowからGitHubの開発コミュニティに移動する割合...
StackOverflowなど(Gitter, Slack, Twitter)のメディアが、...
StackOverflowで質問や回答をした人が、GitHubのissueで議論...
その中で新人の割合は?逆に新人の中で、過去にStackOverflow...
アカウントの紐づけに関する研究がある?~
- 新人が発言する割合: 新人が発言しやすいメディアかどうか...
新人の定義が難しい。。。~
コミュニティに新しく入る人として考えるなら、ネットワーク...
例: コミュニティ検出をして、そのに新しくリンクが張られる...
** 9/19 [#n0e9e32a]
やったこと
- Who is Going to Mentor Newcomers in Open Source Project...
新人が求める知識を教えてくれそうなメンターを推薦するツー...
-- 考えたこと
--- FreeBSDではメンターと新人のペアでのメールのやり取りが...
1人または複数のメンターによって1人の新人を教えるだけでは...
--- メンターはいらない!1人でやりたい!でもプロジェクトの...
メンターなしで、1人でやったほうが良かったみたいな新人はい...
メンターはどんなことを新規参入者に教えている?~
メンターが必要なぐらいドキュメントが整備されていないプロ...
メンターのやってることを機械が代替できないか?~
- そもそもメンタリングすることで新人に対してどんな効果が...
https://dl.acm.org/citation.cfm?id=1806842
-- メンタリングの充実度などの評価があるかも?
**9/12 [#q4cc5805]
やったこと
- 分析対象のリポジトリを選んでみた~
2010年以前にGitHubに登録されたリポジトリをfork数で降順ソ...
その中から、コントリビュータの数が一番多い[[rails:https:/...
- 分析対象のコントリビュータを選んでみた~
[[https://github.com/rails/rails/graphs/contributors]]か...
リポジトリ登録から2年以降に初めてのコミットがあり、コンス...
- 分析対象のコントリビュータのコミットを集めてみた~
途中
** 9/5 [#gf9eb79b]
やったこと
- 論文を読んだ
-- OSSプロジェクトへの新規参入者のための研究
--- Overcoming Open Source Project Entry Barriers with a...
OSSプロジェクトの新規参入者をサポートするために作成された...
貢献を始めるためのステップバイステップのフロー、簡単なタ...
プロジェクトに必要なスキル、コミュニティが提供するチュー...
ドキュメントに関連する整理された情報、コーディングスタイ...
65人の学生にポータルを使用してOSSプロジェクト(LibreOffic...
--- Hipikat: A project memory for software development~
タスクに関連するソースコード、ドキュメント、ディスカッシ...
関連しているアイテム同士にリンクを張り、リンクされている...
評価は、Eclipse Bugzillaから修正済みバグレポートをサンプ...
Eclipseの過去に完了した機能拡張に関するタスクに取り組んで...
また、Eclipseの開発メンバー数人にツールを利用せずに同様の...
-- バグレポートの要約に関する研究
--- Summarizing Software Artifacts: A Case Study of Bug R...
バグレポートの要約を正確に行えるかどうかを検討。~
7人の大学院生に計36個のバグレポートの要約を作成してもらい...
--- Unsupervised Deep Bug Report Summarization~
AutoEncoderモデルを使った、抽象型のサマライザを実装。~
公開されているバグレポートの要約を使ってサマライザを学習...
- 自分がOSSプロジェクトに参加するのに役立つこと
-- これらが分かりやすく示されていると参加しやすい
--- 歴史
--- 現在抱えている問題、議論と、これらに助けが必要かどう...
** 8/20 [#v0b5767a]
やったこと
- An Empirical Study of Long Lived Bugsを読んだ~
長期間解決されないバグについての分析。~
すぐ解決されるバグに比べて特筆すべき特徴や傾向はなし。~
ソフトウェアのクラッシュやデータの損失など、重大なバグの...
- オープンソースプロジェクトに参加してみようとした~
-- 現在の開発状況が分かりにくい(どこまで作業が完了してい...
-- Slackなどの縦に流れるチャット履歴を追うのがしんどい
- PRを送ってみた~
issuehuntでお金が着いているissueの中で、good first issue...
単純な修正だったので即承認してもらえたが、プログラムを考...
次のMTGまでにやること
- 自分がコミュニティに参加するのに役立つようなことを考える
- コミュニティの履歴やチャンネルでの議論の可視化、要約
-- どんな要約があったらいいかを考える
-- 既存の可視化、要約技術について調べる
--- CodeCity: モジュールを街(建物)に見立てて可視化
--- Gource: プロダクトを開発者が作り上げる過程を可視化
- issueの難易度の推定
-- 開発者の実績を基にバグをアサインするバグトリアージに近...
-- good first issueラベルを使う
-- 素人とエキスパートの解決するissueの違いについて調べる
- 論文を読む
-- SocialBarrier関連で初心者向けに要約を行う論文がある
--- Overcoming Open Source Project Entry Barriers with a...
-- APIドキュメントの要約などの論文を読み、どのような評価...
--- Generating query-specific class API summaries
-- 素人と熟練者が取り組んだissueやコードの違いを比較した...
** 8/7 [#pc895c3c]
やったこと
- どんなOSSを対象にした研究がしたいか考える~
-- 開発者は完全にボランティア~
例: Apache~
Apacheは財団があるが、開発者は完全なボランティアで、財団...
他の会社に勤めていて、かつApacheのOSSにフルタイムで開発に...
TODO: Linuxカーネルとかディストリとかはどうなんだろう?~
-- コア開発者がフルタイムで開発にあたっている~
つまり、コア開発者はそれを本業の仕事として給料をもらい、...
例: React(Facebook), TensorFlow(Google), VSCode(Microsoft...
- 研究対象のOSS開発者がどういった問題を抱えていそうか調査...
コア開発者がフルタイムで開発にあたっているOSSであるvscode...
-- issue
--- 一番古いのは4年前
--- MS社員が担当者の任命やラベル付けはしているが、コメン...
--- 議論がされているものの、結論が出ていない。途中で止ま...
-- PR
--- 一番古いのは2年前
--- 社員にケチをつかられて、PRを立てた人が追加の変更をし...
--- PRを立てた人が実装を途中であきらめた
--- 社員によるレビューが何回か行われているのに、途中で行...
--- issueに基づくPRではあるが、プランに含まれていないとい...
-- その他issueとPRを見てて分かったこと
--- issueのコメントでいろんなユーザが「はよこの機能追加し...
来週までにやること
- 研究対象のOSS開発者がどういった問題を抱えていそうか調査...
** 7/25 [#i032b46a]
やったこと
- 以下の論文を流し読みしました
-- Two case studies of open source software development: ...
上位15名の開発者が、コード生成への貢献の約80%を占めている...
コア開発者は新機能の開発、ペリフェラル開発者はバグ修正を...
-- Who Gets a Patch Accepted First? Comparing the Contri...
ボランティアは従業員よりも26倍多くrejectされていることが...
プルリクが作られてからマージされるまで、従業員は2日なのに...
--- 気になったこと~
時間がかかると貢献から遠のいてしまうのではないか?~
ボランティアが遠のくと、OSSの品質(細かなバグ)に影響が出...
パッチ受け入れとOSSの品質に関係する論文を探す
- その他気になっていること
-- OSSを収益化すれば、OSSが廃れる?~
社会規範から市場規範へ切り替わることで問題は発生するのか?~
OSSの持続可能性を高めるため, OSSを収益化する動きがある.~
--- GitHub Sponsors(GitHub, Inc.): 5000ドルばらまくキャン...
GitHubのOSS開発者への寄付が可能.
--- Issuehunt(BoostIO, Inc.): 資金調達1億円~
Issueに報酬を設定し, PRが承認されれば報酬を得る.
--- Beerpay~
オープンソースプロジェクトへの寄付が可能.
--- Dev(FRAME00, Inc.): ~
オープンソースプロジェクトに対して毎月仮想通貨を配布.
--- これによる問題~
OSSコミュニティに市場規範が持ち込まれると, 今まで金銭的見...
今までは非金銭的な動機でOSSに貢献していたのが、金銭的な動...
金銭的見返りのないコミュニティ(社会規範のコミュニティ)...
市場規範: 金銭的なつがりを基に価値判断される世界の規範. ...
社会規範: 社会的なつながりを基に価値判断される世界の規範....
来週までにやること
** 7/18 [#k93e82d9]
やったこと
- 以下の論文を流し読みして、オープンソースプロジェクトの...
-- オープンソースプロジェクトへ初めて参加する際の社会的障...
--- Socialization in Open Source Software Projects A Gro...
--- Social Barriers Faced by Newcomers Placing Their Firs...
-- One-Time Contributorsに関する論文
--- One-Time Contributors to FLOSS Surveys and Data Analy...
--- Understanding the impressions, motivations, and barri...
-- 読んでて気になったこと~
そもそもコア開発者とペリフェラル開発者の割合ってどのくら...
昨日それっぽい論文見つけたので来週までに読んできます~
来週までにやること
- コア開発者やペリフェラル開発者について知るため
-- https://dl.acm.org/citation.cfm?id=567795
-- More Common Than You Think: An In-Depth Study of Casu...
コア開発者、ペリフェラル開発者の割合、ペリフェラル開発者...
-- How does contributors involvement influence open sourc...
コア開発者、ペリフェラル開発者によって投稿されたパッチの...
- めっちゃ読みたい論文~
Who gets a patch accepted first?: comparing the contribut...
企業のオープンソースプロジェクトにおいて、従業員の開発者...
ボランティア開発者が何かしらの問題に直面してそう。~
** 6/17 [#c7d18b1e]
やったこと
- CytoscapeのAPI機能を利用して、ネットワークの図の作成を...
- GitHubから適当なリポジトリを選んで、Cytoscape Core Apps...
問題点
- CytoscapeのNetwork Analyzerは機能が限定的で、かゆいとこ...
⇒ pythonのSNAライブラリNetworkXに移行する
進行中
- issueやissue_commentの数が多いリポジトリのからのデータ...
- issueやissue_commentの数が多いリポジトリからネットワー...
** 6/10 [#u75f9cbc]
やったこと
- GitHub APIから特定のリポジトリの全てのissue(open and cl...
- issue投稿者とcomment投稿者のノードを作り、コミュニケー...
** 6/3 [#x0d5e935]
やったこと
- 研究概要を考える
** 5/23 [#s23b2a33]
やったこと
- The Role of Participation Architecture in Growing Spons...
** 5/7 [#yfbc2354]
やったこと
- グラフ描画のツール作成
- 「Contrasting Community Building in Sponsored and Commu...
アメリカ合衆国退役軍人省の医療情報システム(public domain)...
コミュニティ主導のオープンソースプロジェクトとスポンサー...
スポンサー付きのオープンソースプロジェクトでは、健全なコ...
** 4/18 [#j7a17328]
やったこと
- mysqlの設定を変更して、ghtorrentのデータをにインポート...
今のペースだと最低1か月以上かかるので、~
日別に分割されたmongoのダンプファイルが公式から出てるので...
- 「Two Case Studies of Open Source Software Development:...
アブストラクトとイントロダクションのRQの部分を訳した。~
この論文が何を明らかにしようとしているのかは分かった(多...
* Templates [#lc4d5af1]
- 添付~
&attachref();
ページ名: