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
OpenSourceSoftware⼊入⾨門 世界に参加する最初のひと押し わかめ まさひろ
Slide 2
Slide 2 text
わかめ まさひろ @v vakame Masahiro Wakame DefinitelyTyped tsfmt 技術書典
Slide 3
Slide 3 text
今⽇日話すこと •OSSって何? •OSSってどうやって回ってるの? •問題の⾒つけ⽅ •どうすると⼊っていきやすいか
Slide 4
Slide 4 text
Welcome! •ようこそʙʙ! •質問あったら話を遮って⼿をあげる •いっぱい質問があったら嬉しい •時間が⾜りなくなっても気にしない 旅(⼈人に対して)の恥はかき捨て…!
Slide 5
Slide 5 text
OSSって何? Open Source Software
Slide 6
Slide 6 text
Open Source Software? •ソースが公開されている •修正を送ると取り込んでくれる(かも) •ライセンスの元、好きに使える オープンソースの定義
Slide 7
Slide 7 text
どうやって回っているの? •⼤⼈数が⽬にするので⾼品質…!? •ほんの⼀握り… •ぶっちゃけ直接⾦にはならない •だってオープンだから
Slide 8
Slide 8 text
OSSは⾼高品質なの? •いろいろな要素に左右される •オーナーの気質や⼒量やモチベ •ユーザがたくさんいるか •リリースサイクルの⾧さ
Slide 9
Slide 9 text
つまり? •⼤多数はショボい •→課題がいろいろある! •→やっていく余地が多い! ショボい問題ほど直しやすい!
Slide 10
Slide 10 text
はたして⾦金金になるの? •我々の近場のOSSは基本⾦になりません •様々なメリットがあるのでやります •パッチ来ると嬉しいな とか
Slide 11
Slide 11 text
会社がオーナーの場合 •サポートを売ったりする •サービスホストしてレンタルしたり •商⽤利⽤する場合フィーを取るとか OSSにしとくと退職した後も使える(⼩小声
Slide 12
Slide 12 text
個⼈人がオーナーの場合 •趣味(儲からない) •パトロン系サービスの利⽤(儲かる?) •どこかに雇われて仕事としてやる •クックパッド→Rubyコミッタ •メルペイ→僕 仕事の100%ではないです
Slide 13
Slide 13 text
何故⾃自分がやるのか •世界を⾃分好みの⽅向に誘導したい! •⾃分の持つ技術を世界に共有したい! 池に⽯石投げると楽しいみたいな話
Slide 14
Slide 14 text
どこでやるか •GitHub ←調べた時の情報が多い •それ以外 ←僕はよくわからん •Linux, Android, WebKit etc… •ゆえに主にGitHubの話をします
Slide 15
Slide 15 text
問題の⾒見見つけ⽅方 ⾒見見つけたら直せる
Slide 16
Slide 16 text
開発やっていますか? •やっている •やってない やりましょう
Slide 17
Slide 17 text
やると困ることがある •機能たりない •バグってる •こんな機能ほしい •→やっていく必要がある やらずに困れることはほぼないです
Slide 18
Slide 18 text
どうする?→改善 •コードを書いて送る •パッチを送る •Pull Requestを送る •取り込まれる→リリースされる→使える •嬉しい!!✌
Slide 19
Slide 19 text
以上! 脳筋感がありますね
Slide 20
Slide 20 text
⼊入っていきましょう 誰もが初回は初めて
Slide 21
Slide 21 text
プロトコル •これバグじゃね?と報告する •原因分析に協⼒する •原因を特定する •直し⽅相談する •直す! 実施すると偉いライン 報告すらしないと偉くない
Slide 22
Slide 22 text
プロトコル •これバグじゃね?と報告する •原因分析に協⼒する •原因を特定する •直し⽅相談する •直す! いきなりここに⾏行行くと⾟辛い話になる時がある
Slide 23
Slide 23 text
前段階 •いきなり報告するの怖い…! •どこかで質問して確かめる •⾃分のやり⽅が悪い?それともバグ? •StackOverflowとか •コミュニティや所属組織のチャット
Slide 24
Slide 24 text
その他の⽅方法 •Good first issue 探す •TypeScriptの例 bit.ly/2PGmKao •友達がƅ ƅ´ωAƅ ƅŇűƅŖ したのを助ける •ようするに代わりに直す
Slide 25
Slide 25 text
機能追加の話 •バグ報告よりちょっとむずかしい •まず提案する •○○ができると我々はより幸せになれる! •PR送ってみていい?って聞く 慣れたらいきなり送っても⾟辛くない
Slide 26
Slide 26 text
英語 •みんな使ってる •わりとみんな下⼿ ≒ ⾮ネイティブ多い •英語ヘタやな!って⾔われたことない •わかる努⼒をしてくれる(すき •こっちもわかる努⼒する
Slide 27
Slide 27 text
英語 •みんなの1st⾔語⇔英語 翻訳機はまぁある •Google翻訳を使い倒していこうな! •英語→⽇本語よく使う •変な⽇本語出てきたら英を⼿直しする ⽇日→英→⽇日 も使う
Slide 28
Slide 28 text
⻄西海海岸語 •cool →ただの相槌 •good →ヤバい指摘をする前の枕詞 •部分ではなく⽂全体を解釈する必要あり 僕が勝⼿手に⾔言ってます
Slide 29
Slide 29 text
PRやパッチを送る 捨てて書き直す覚悟
Slide 30
Slide 30 text
コードを送る意味 •だいたい以下の意味を含む •俺のコードこそ最強! •お前に俺のコードあげるから •あとのメンテは全部よろしく! •↑なかなかすごいこと⾔ってる
Slide 31
Slide 31 text
納得が必要 •じゃないと引き取ってくれないよね •基本的な姿勢 •我々は味⽅同⼠である •我々はコードを改善したい これを会話の⼟土台に使う
Slide 32
Slide 32 text
上⼿手に議論する •コード⾒せてわかりあえる時もある •そうじゃない場合やっていく必要がある •喧嘩(決裂)に突⼊すると旨味なし •アホには近寄らない 多少慣れが必要です(最初はみんな下⼿手)
Slide 33
Slide 33 text
議論とは? •合意できる部分を確かめ合う作業 •討論とは全く異なる(討論は合意しない) •相⼿の真の意⾒を引き出す必要がある •こともある •オーナーの意⾒を取り込むほうが早い 譲れるところは最⼤大限譲るのが楽
Slide 34
Slide 34 text
脇道:⾯面⽩白い読み物 •d.hatena.ne.jp/hyoshiok/20090704 •TOMOYO Linuxに学ぶ説得術 •パッチ送る⼈ともらう⼈の観点の差
Slide 35
Slide 35 text
Tips •前書いた記事 bit.ly/2CYFPNV •主語をIやYouではなくWeにする •Weにして破綻しない⽂章を書く •We are stupid! Fxxk we! とは書けない
Slide 36
Slide 36 text
オーナーの気持ち •みんなに便利に使ってほしい •モチベは維持したい •みんなが困ることはあまりしたくない •あわよくば⼈のリソースで楽したい
Slide 37
Slide 37 text
便便利利に使ってほしい •⾃分が便利ならみんなもきっと便利 •コードが広く使われて検証されてほしい •バグが⾒つかるから ついでにパッチくれ •できれば⾦も欲しい •↑難しい
Slide 38
Slide 38 text
モチベ維持したい •OSSで最も重要かつ貴重なリソースは? •オーナーのやる気 •やりたくないことやってほしい •僕の場合ドキュメントとか英語書くとか
Slide 39
Slide 39 text
みんなを困らせたくない •バグ埋め込みたくない •バグりやすいコードmergeしたくない •Breaking Changeしたくない •≒気軽にBCするライブラリ使いたくない •↑ものすごく⼤事 すごく⼤事 とても
Slide 40
Slide 40 text
やりとりの実例例 •最近の活動 bit.ly/2zpGpRo •mergeされずにcloseされたPRもちらほら •#327→#353→#388→#392(→#404) •紆余曲折を経て⽬的を果たしたヤツ 達成⽬目標伝える→オーナーを尊重した修正
Slide 41
Slide 41 text
与太話 時間余ってる?どう?
Slide 42
Slide 42 text
ライセンス •ちゃんと確認する •⼀番厄介なライセンスは? •ライセンス無し •↑ライセンス何?と聞けば概ね解決する
Slide 43
Slide 43 text
⾃自分がオーナー •やりたくないことはやらなくていい •ライセンス違反の指摘とかは除く •とりあえず公開することに慣れる •反応0がデフォなので過度な期待はしない •README.mdだけはちゃんと書く
Slide 44
Slide 44 text
⾃自分とは •有象無象の⼀部である •多少雑でもわりとすぐ忘れられる •きちんと説明できないと話が進まない 良くも悪くも
Slide 45
Slide 45 text
CONTRIBUTING.mdとか •GitHubのテンプレ的構造がある •bit.ly/2JzOWWP •TypeScriptの場合 bit.ly/1o2weYt ⾒見見てみよう!
Slide 46
Slide 46 text
質問コーナー