Rabbit Slide Show

OSS開発者を増やしたい!

2016-09-01

Description

「OSS開発」をテーマにしたSpeee Cafe Meetup #02用の資料。OSSを開発するかどうかをどう判断すればよいか、OSS開発者になる最初のステップはどうしたらよいか、組織にOSS会はts派を増やすにはどうしたらよいかを説明。

Text

Page: 1

OSS開発者を
増やしたい!
須藤功平
クリアコード
Speee Cafe Meetup #02
2016-09-01
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 2

ここでいうOSS開発
✓ 1から独自で開発だけでなく
✓ 既存OSSの開発も含む
✓ 例:要望提案
✓ 例:バグレポート
✓ 例:pull request
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 3

OSSを開発する動機
人それぞれ
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 4

動機例
✓ 反応が欲しい・注目されたい
✓ 転職活動で使える材料が欲しい
✓ 技術力向上
✓ ○○機能が欲しい
✓ コミュニティーで活動したい
✓ 使ってばかりじゃ申し訳ない
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 5

OSSを開発する動機
✓ 独りよがりがいい
✓ 他人の損得は気にしなくていい
✓ 自分が割に合うと思うか?がいい
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 6

利用OSSにバグがあった!
どうする?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 7

昨日の実例:Vagrant
CentOS 5のVMにsshできない…
% vagrant up centos-5-i386
...
centos-5-i386: Key inserted! Disconnecting ...
centos-5-i386: Warning: Authentication failure. Retrying...
centos-5-i386: Warning: Authentication failure. Retrying...
...
PGroongaのRPMをビルドしようとしていた
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 8

利用OSSにバグがあった!
✓ どうする?
a. とりあえずツイート?
b. ググる?
c. 最新バージョンを確認?
d. 違うOSSに乗り換え?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 9

私の場合
よく使っているOSSの場合は…
✓ 調べて
✓ 直して
✓ 報告
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 10

ググった
http://qiita.com/cock1doodledoo/items/b32382776f76fb2d627c
↓で直ると書いている
少し違う現象っぽいが
config.ssh.insert_key = false
回避策っぽい…調べよう
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 11

調べて
パスワードではログインできた
% vagrant ssh centos-5-i386
vagrant@127.0.0.1's password: (vagrant)
[vagrant@localhost ~]$
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 12

調べて…
ログを確認
[vagrant@localhost ~]$ sudo less /var/log/secure
...
... sshd[3750]: Authentication refused: bad ownership
or modes for file /home/vagrant/.ssh/authorized_keys
...
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 13

調べて……
パーミッションを直すと
公開鍵でログインできた
[vagrant@localhost ~]$ chmod go-rwx ~/.ssh/authorized_keys
[vagrant@localhost ~]$ exit
% vagrant ssh centos-5-i386
[vagrant@localhost ~]$
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 14

調べて………
authorized_keysでgrep
% grep authorized_keys /usr/share/vagrant
.../plugins/guests/bsd/cap/public_key.rb:...
...
.../plugins/guests/linux/cap/public_key.rb:...
...
.../plugins/guests/solaris/...
...
.../plugins/guests/solaris11/...
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 15

調べて…………
GNU/Linuxなので↓を確認
.../plugins/guests/linux/cap/public_key.rb
chmod忘れを発見
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 16

直して
--- .../linux/cap/public_key.rb.orig
...
+++ .../linux/cap/public_key.rb ...
@@ -54,6 +54,7 @@
if test -f ~/.ssh/authorized_keys; then
grep ... > ~/.ssh/authorized_keys.tmp
mv ~/.ssh/authorized_keys{.tmp,}
+
chmod 0600 ~/.ssh/authorized_keys
fi
rm -f '#{remote_path}'
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 17

報告
✓ masterを確認
✓ https://github.com/mitchellh/vagrant/blob/master/
plugins/guests/linux/cap/public_key.rb#L57
✓ 同じchmodがすでにある!
✓ 手元で修正して元の作業を継続
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 18

ふりかえり
✓ 最初から最新バージョンを確認
すればよかった?
✓ 今回は調べた方でよかったかも
✓ 10分位だしVagrantの事がわかったし
(最新バージョンの用意は手間だった)
✓ ↑自分が割りに合ったか基準
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 19

なぜ報告するのか
✓ 自分が何度も回避するのが面倒
✓ ↑自分が割に合うか基準
✓ よく使うOSSなら違うマシンでも遭遇
しやすい
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 20

類似の事例
✓ mrubyがクラッシュするので修正
✓ #2732, #2867, #3087, #3090, #3129
✓ 自分がパッチを管理するのが面倒
✓ PostgreSQL 9.6beta1の
DROP ACCESS METHOD IF EXISTS
が動かないので修正
✓ 本体で直らないと自分の実装が手間
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 21

OSSを開発する動機
✓ 独りよがりがいい
✓ 自分が割に合うならやるといい
✓ OSSを開発する敷居が高いと
なかなか割に合わない!
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 22

OSS Gate
OSS開発の
敷居を下げる
取り組み
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 23

Gate == 門
境界にあるもの
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 24

扱う境界
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
興味なし
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 25

ターゲット
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
興味なし
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 26

やりたいこと
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 27

未参加者→参加者
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
ワークショップで実現
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 28

ワークショップの内容
✓ 未参加者の後押し
✓ すでに興味はある!
✓ どう後押せば…?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 29

未参加の理由?
1. やり方がわからない
2. なんとなく不安
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 30

ワークショップの内容
1. やり方を1つ教える
✓ やり方がわかると参加できる!
2. OSSの開発に実際に参加する
✓ 不安なのは未経験だから
✓ ワークショップで経験しよう!
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 31

門をくぐる
OSS 開
発
活発
自信ない
なんか不安だな…
未参加者
参加者
興味あり
OSS開発者を増やしたい!
くぐってしまえば
別になんてことはなかった!
Powered by Rabbit 2.2.0

Page: 32

よりくぐりやすく
OSS 開
発
サポート 活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
大丈夫だよー
Powered by Rabbit 2.2.0

Page: 33

募集中!
募集中!
OSS 開
発
活発
自信ない
未参加者
参加者
興味あり
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 34

OSS Gateワークショップ
✓ ターゲット:未参加者→参加者
✓ 奇数月の最終土曜に開催中!
✓ 次回9/24
✓ 次々回11/26
oss-gate.doorkeeper.jp
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 35

組織としてOSS開発
✓ 個人
✓ 自分が割に合うと思うときに開発
✓ 組織
✓ 「OSS開発する方針だからやろう」?
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 36

組織とOSS開発
多くの組織にとって
OSS開発は
目的でなく手段
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 37

組織としてOSS開発する動機
OSSを開発する結果として…
✓ 技術力アップ
✓ 開発効率アップ
✓ 知名度アップ
↑こっちが目的
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 38

技術力アップ
✓ 既存OSSの開発
✓ 社外のコード・やり方から学ぶ
✓ 新規OSSの開発
✓ 1ソフトウェアのすべてを経験できる
✓ 設計判断・告知・ユーザー対応…
✓ 経験から得られるものはたくさん
✓ 社内で不足している機会を提供
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 39

開発効率アップ
✓ 独自修正の管理より
開発元に修正を提供
✓ アップデートの難易度を下げる
✓ メンテナンスするものを減らす
OSSを開発
(開発元に修正を提供)
する方が割に合う
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 40

知名度アップ
✓ 技術者に技術でアピールできる
✓ 「あの○○さんがいる会社」
✓ 「○○が得意な会社」
✓ 求心力アップ・広告効果
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 41

組織としてOSS開発する動機
OSSを開発する結果として…
✓ 技術力アップ
✓ 開発効率アップ
✓ 知名度アップ
↑こっちが目的
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 42

組織としてOSS開発
✓ ×
✓ 「OSS開発する方針だからやろう!」
✓ ○
✓ 「このケースは○○だからOSS開発は
あなたの割に合うんじゃない?」
✓ 例:Railsの独自修正を抱えるよりも開発元に
提供した方があなたが開発しやすくなるんじ
ゃない?組織はそのための時間を確保する
よ。
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Page: 43

OSS開発支援
✓ 企業向けサポート
✓ Speeeさんにも
提供中
OSS開発者を増やしたい!
Powered by Rabbit 2.2.0

Other slides

Apache Arrow Apache Arrow
2018-12-08
Apache Arrow Apache Arrow
2018-11-17
Apache Arrow Apache Arrow
2017-06-13
Apache Arrow Apache Arrow
2017-05-28
Mroonga! Mroonga!
2015-10-30