Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2017/08/19(⼟) Open Developers Conference 2017 Tokyo ࠃ࢈ 044্ཱͪ͛ͷ࣮ 0OTFO 6*͕ (JU)VCͰελʔΛ֫ಘ͢Δ·ͰͷಓͷΓ ຢ ঘथ !O@NBUBHBXB
Slide 2
Slide 2 text
ࣗݾհ •⼜川 尚樹 (24) • アシアル株式会社(2016年4⽉〜) • Web エンジニア 2年⽬ •Onsen UI (2015年10⽉〜) • Web 系のオープンソース UI ライブラリ • https://onsen.io/
Slide 3
Slide 3 text
σϞʢ0OTFO 6*ͷհʣ https://tutorial.onsen.io/
Slide 4
Slide 4 text
もっと⽇本から OSS が出るといいな OSS を⽴ち上げて 何のメリットがあるの? ͜ͷൃදͷඪ 発表後 OSS を⽴ち上げたとして、 どうやって伸ばすの? ⾃分も OSS を ⽴ち上げてみようかな?
Slide 5
Slide 5 text
ࠓճ͓͢͠Δ༰ I. OSS ⽴ち上げのメリット II. OSS の⽴ち上げ⽅ III. OSS の良い⽴ち上げ⽅ 1. OSS の成⻑指標の洗い出し 2. OSS の成⻑指標のフル活⽤ 3. 他 OSS の成⻑指標の調査 4. OSS の公開 & 成⻑施策の実⾏開始 IV. まとめ
Slide 6
Slide 6 text
044্ཱͪ͛ͷϝϦοτ
Slide 7
Slide 7 text
044্ཱͪ͛ͷϝϦοτ •OSS の開発元は個⼈, 中⼩企業, ⼤企業など様々
Slide 8
Slide 8 text
044্ཱͪ͛ͷϝϦοτ •(1) 広告効果 Google が開発しました 個⼈(Zaharia ⽒)が開発しました
Slide 9
Slide 9 text
044্ཱͪ͛ͷϝϦοτ •(2) テスト⼯数削減 • 欲しいライブラリを⾃作しようと思った時... • 閉じた環境で開発: • 全てのテスト・修正を⾃分たちで⾏う必要がある • ⼿が回らない → そこそこの品質にしかならない • 開いた環境で開発: • ユーザがテスト・修正してくれる → 品質向上
Slide 10
Slide 10 text
044্ཱͪ͛ͷϝϦοτ • まとめ • 個⼈や中⼩企業、⼤企業が こぞって OSS を⽴ち上げる理由は、 (1) 広告効果 と (2) テスト⼯数削減 でほぼ説明できる • 欲しいライブラリは⼿に⼊るし、広告にもなる、 だから開発する • 純粋なボランティアは少数派。みんな⾒返りを求めている!!
Slide 11
Slide 11 text
044্ཱͪ͛ͷϝϦοτ •(↓以前と違った⾒え⽅がしませんか?)
Slide 12
Slide 12 text
࣍ͷεςοϓ • 実際に OSS を⽴ち上げて、伸ばす!! 新OSS
Slide 13
Slide 13 text
044ͷ্ཱͪ͛ํ
Slide 14
Slide 14 text
ࢥߟ࣮ݧ •偉い⼈ 「OSS のメリットは分かった。ウチも公開だ!」
Slide 15
Slide 15 text
ࢥߟ࣮ݧ •偉い⼈ 「OSS のメリットは分かった。ウチも公開だ!」 ↓ 内製していたライブラリを 思い切って GitHub に公開
Slide 16
Slide 16 text
ࢥߟ࣮ݧ •結果: •誰も使ってくれない! • ダウンロード数は 1桁、ユーザからの反応は ゼロ • 何が起こったのか?
Slide 17
Slide 17 text
ࢥߟ࣮ݧ Կ͕ىͬͨ͜ͷ͔ • OSS は公開するだけでは使われない • なので誰も使ってくれなかった • なので OSS ⽴ち上げのメリットも得られなかった • 個⼈や中⼩企業での OSS ⽴ち上げでは 「開発がうまく進まない」問題よりも 「⽴ち上げの時点でコケる」問題の⽅が圧倒的に⼤きい • これは悪い⽴ち上げ⽅。では良い⽴ち上げ⽅とは?
Slide 18
Slide 18 text
044ͷѱ্ཱ͍ͪ͛ํɺྑ্ཱ͍ͪ͛ํ 1 10 100 1000 10000 100000 ユーザ数の伸び 1 10 100 1000 10000 100000 ユーザ数の伸び • メリットが最⼤化される(=ユーザ数が増え続ける)ことが 良い⽴ち上げ⽅として定義できる 広告効果 テスト⼯数 削減
Slide 19
Slide 19 text
044ͷྑ্ཱ͍ͪ͛ํ
Slide 20
Slide 20 text
⾠ ҙ ⾠ •ここからお話しする内容は個⼈的な経験則です • 確⽴された定⽯ではありません • 他の OSS の⽅々が どうやっているかは分かりません
Slide 21
Slide 21 text
044ͷྑ্ཱ͍ͪ͛ํ •Onsen UI で⾏っているユーザ数増加施策: 1. OSS の成⻑指標の洗い出し 何をもって「ユーザ数が伸びた」と⾒なすか、はっきりさせる 2. OSS の成⻑指標のフル活⽤ 「1⽇1回⼿動でチェック」はやめよう 3. 他 OSS の成⻑指標の調査 成⻑した OSS が実際にどういう推移を辿ったのか確認する 4. OSS の公開 & 成⻑施策の実⾏開始 データに基づいて⾏動する
Slide 22
Slide 22 text
<044ͷྑ্ཱ͍ͪ͛ํ> ࢦඪͷચ͍ग़͠
Slide 23
Slide 23 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷચ͍ग़͠ •何をもって「ユーザ数が伸びた」と⾒なすか、 はっきりさせる • 正味のユーザ数を⾒積もるのは意外と難しい • 「知っているが使う気がない」ユーザ、 「知っているが今使うタイミングにない」ユーザ、などなど、 ユーザの動態は複雑 • 直感 ダメ、ゼッタイ • OSS の⾒かけの伸びと実態は著しく異なります
Slide 24
Slide 24 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷચ͍ग़͠ •オススメの指標(※経験則です) (1) GitHub スター数 (2) ダウンロード数 (3) API リファレンス の ユニークユーザ数 •その他 • 公式 Twitter アカウント の フォロワー数 • Twitter、Reddit、Hacker News での⾔及数
Slide 25
Slide 25 text
(JU)VCελʔ • 性質 • バズり具合と相関 • 実際のユーザ数との相関は⾮常に弱い • 取得⽅法 • GitHub の stargazers API を使⽤する • Accept: application/vnd.github.v3.star+json フィールドを付加すると 各 star がいつ付けられたのかも取得できる • 備考 • スター数をリポジトリの UU で割ることでスター率も取れる
Slide 26
Slide 26 text
(JU)VCελʔ https://github.com/tensorflow/tensorflow
Slide 27
Slide 27 text
10 100 1,000 10,000 100,000 1,000,000 (JU)VCελʔ ૬ײ 伝説 世界的に有名 世界的に少し有名 駆け出し 解説記事が出始める ※分野によってスターの付きやすさは異なります (Web 系は付きやすい)
Slide 28
Slide 28 text
μϯϩʔυ •性質 • たった今使ってくれているユーザの数と相関 •取得⽅法 • ダウンロードカウンタを仕掛ける • パッケージマネージャが提供する統計情報を使⽤する • 例えば NPM の場合は npm stats microservice を使⽤する •備考 • ⾃動 DL & バージョンアップ によるノイズが混⼊する
Slide 29
Slide 29 text
μϯϩʔυ
Slide 30
Slide 30 text
"1*ϦϑΝϨϯε ͷ ϢχʔΫϢʔβ •性質 • たった今使ってくれているユーザの数と相関 •取得⽅法 • アクセス解析ツールで取得する •備考 • ダウンロード数がうまく取れない場合に有効
Slide 31
Slide 31 text
<044ͷྑ্ཱ͍ͪ͛ํ> ࢦඪͷϑϧ׆༻
Slide 32
Slide 32 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ • 成⻑指標を洗い出しても、そのままでは 「たまに GitHub でスター数を確認して終わり」 「たまにダウンロード数を確認して終わり」 のようになってしまう • 短期的な変化は分かるが、 ⻑期的な変化が分からない • 直感 ダメ、ゼッタイ
Slide 33
Slide 33 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ • ⻑期的な変化を客観的に把握するために: • 掟 1 必ず時間推移をプロットする • 掟 2 累積値ではなく差分の時間推移を⾒る (=累積値の時間推移は微分する) • 掟 3 移動最⼩値を使う
Slide 34
Slide 34 text
0 500 1000 1500 2000 2500 3000 3500 4000 4500 2014/1/1 2015/1/1 2016/1/1 2017/1/1 GitHub 044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 1 必ず時間推移をプロットする グラフ1. Onsen UI の 累積 GitHub スター数 ここで何かが起きたことが 分かる なぜか stargazers API から 得たデータでは star 数が 5000 に 満たなかった…
Slide 35
Slide 35 text
0 2 4 6 8 10 12 14 16 18 20 2014/1/1 2015/1/1 2016/1/1 2017/1/1 GitHub (N=18) 044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 2 累積値ではなく差分の時間推移を⾒る グラフ2. Onsen UI の ⽇別 GitHub スター数(+指数移動平均) バズったタイミングが すべて分かる
Slide 36
Slide 36 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 3 移動最⼩値を使う ダウンロード数のデータは ノイズが多くて分かりにくい
Slide 37
Slide 37 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 3 移動最⼩値を使う 単に平均を取ると ノイズの影響を受ける
Slide 38
Slide 38 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 3 移動最⼩値を使う 移動最⼩値を取ると きれいにノイズが消える
Slide 39
Slide 39 text
044ͷྑ্ཱ͍ͪ͛ํ r ࢦඪͷϑϧ׆༻ •掟 3 移動最⼩値を使う データによっては 対数軸を使うと効果的
Slide 40
Slide 40 text
<044ͷྑ্ཱ͍ͪ͛ํ> ଞ 044ͷࢦඪͷௐࠪ
Slide 41
Slide 41 text
044ͷྑ্ཱ͍ͪ͛ํ r ଞ 044ͷࢦඪͷௐࠪ •例として、⾊々な OSS の ⽇別 GitHub スター数の時間推移を分析
Slide 42
Slide 42 text
044ͷྑ্ཱ͍ͪ͛ํ r ଞ 044ͷࢦඪͷௐࠪ • 最初は理想的な伸び⽅をしているが、途中で崩壊 • 各バズりはリリースのタイミングとは無関係に発⽣ ※とある OSS の⽇別 GitHub スター数
Slide 43
Slide 43 text
044ͷྑ্ཱ͍ͪ͛ํ r ଞ 044ͷࢦඪͷௐࠪ • 最初に⼤きくバズってはいるが、その後の伸びが悪い ※とある OSS の⽇別 GitHub スター数
Slide 44
Slide 44 text
<044ͷྑ্ཱ͍ͪ͛ํ> 044ͷެ։ ˍ ࢪࡦͷ࣮ߦ։࢝
Slide 45
Slide 45 text
044ͷྑ্ཱ͍ͪ͛ํ r 044ͷެ։ ˍ ࢪࡦͷ࣮ߦ։࢝ • 前準備: • Web サイトの準備 • Retention ⽤媒体 (Twitter アカウント, ニュースレター, ブログRSS)の準備 • ⼀度興味を持ったユーザに「受動的に」情報を得させる媒体を⽤意する • 初期段階: • Reddit, Hacker News での告知 • Hacker News 砲 • Retention ⽤媒体への誘導 • 成⻑段階: • 品質を維持しつつバズり(virality)を稼ぐ • バグフィックスやリリースはバズりには繋がらない
Slide 46
Slide 46 text
·ͱΊ I. OSS ⽴ち上げのメリット • 広告効果 • テスト⼯数削減 II. OSS の⽴ち上げ⽅ • 良い⽴ち上げ⽅と悪い⽴ち上げ⽅が存在 III. OSS の良い⽴ち上げ⽅ 1. OSS の成⻑指標の洗い出し 2. OSS の成⻑指標のフル活⽤ • 時間推移をプロットする、累積値の時間推移は微分する、移動最⼩値を使う 3. 他 OSS の成⻑指標の調査 4. OSS の公開 & 成⻑施策の実⾏開始
Slide 47
Slide 47 text
࠷ޙʹ
Slide 48
Slide 48 text
(JU)VCΞΧϯτΛ͓࣋ͪͷํɺͥͻ͝ࢧԉΛʂ https://github.com/OnsenUI/OnsenUI
Slide 49
Slide 49 text
(JU)VCΞΧϯτΛ͓࣋ͪͷํɺͥͻ͝ࢧԉΛʂ Thank you for listening!