Text
Page: 1
OSS開発手順
須藤功平
株式会社クリアコード
SEゼミ2015 - OSS Hack 4 Beginners
2015-06-27
OSS開発手順
Powered by Rabbit 2.1.7
Page: 2
SEゼミの立場一覧
✓ 参加者(みなさん)
✓ スポンサー
✓ 運営
OSS開発手順
Powered by Rabbit 2.1.7
Page: 3
立場別SEゼミの目的
✓ 参加者
✓ OSSを開発したい!
✓ スポンサー
✓ 一緒に働きたい人をみつけたい!
✓ 一緒にOSSを開発するとわかりそう!
✓ →参加者のOSS開発参加を支援
✓ 運営:↑をサポートしたい!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 4
参加者のふるまい方
✓ 選ばれている!と気負わない
✓ 目的(OSSの開発)に集中すればよい
✓ スポンサー
✓ 本来の参加者に興味
✓ 仮面をかぶらない
✓ 入社→ミスマッチ→お互いに不幸!
仮面をかぶり続けられるならアリ
「m_seki ロールプレイングゲーム」で検索
OSS開発手順
Powered by Rabbit 2.1.7
Page: 5
スポンサー
✓ たくさんいる
✓ 勉強会中
✓ 企業は気にしない
✓ 担当メンターの人から学ぶ
✓ ランチ・懇親会
✓ 様々な企業の様々なメンターと交流
✓ →今まで知らなかった新しい視点!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 6
スポンサー(1)
✓ クラウドワークスさん
✓ エス・エム・エスさん
✓ 万葉さん
✓ スマートエデュケーションさん
✓ クックパッドさん
OSS開発手順
Powered by Rabbit 2.1.7
Page: 7
スポンサー(2)
✓ ビズリーチさん
✓ VASILYさん
✓ Treasure Dataさん
✓ ピクシブさん
✓ 楽天さん
OSS開発手順
Powered by Rabbit 2.1.7
Page: 8
スポンサー(3)
✓ CROOZさん
✓ ミラクル・リナックスさん
✓ フリークアウトさん
✓ ぐるなびさん
OSS開発手順
Powered by Rabbit 2.1.7
Page: 9
トレーナー
須藤
✓ 運営
✓ 進行と全体を気にかける係
✓ 大学生の頃からOSSの開発に参加
✓ RabbitもOSS
OSS開発手順
Powered by Rabbit 2.1.7
Page: 10
メンター
✓ 参加者のサポート係
✓ 現役超優秀エンジニア
✓ スポンサー企業または運営
✓ OSS開発経験者
✓ →困ったり悩んだら積極的に相談
OSS開発手順
Powered by Rabbit 2.1.7
Page: 11
このイベントの前提
✓ 参加者
✓ OSS開発に参加したい
✓ でも参加したことはない
↓
仮説:漠然とした不安があるから
OSS開発手順
Powered by Rabbit 2.1.7
Page: 12
このイベントの目的
参加者の
OSS開発参加への
不安を払拭
OSS開発手順
Powered by Rabbit 2.1.7
Page: 13
目的の理由
OSS Hack Weekendの準備
✓ ビクビクせずに済むように
✓ このPR嫌がられないかな…
✓ スムーズに進められるように
✓ どこから手をつければいいんだ…
✓ 時間だけが過ぎていく…
OSS開発手順
Powered by Rabbit 2.1.7
Page: 14
不安を払拭すると…
OSS Hack Weekend
✓ ビクビクせずに済むように
✓ このPRでいこう!
✓ スムーズに進められるように
✓ まずはここから着手!
✓ その後はアレをやろう!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 15
参加者の目的の再確認
✓ SEゼミ
✓ OSSを開発したい!(でもなんか不安
✓ OSS Hack 4 Beginners
✓ OSS開発参加への不安を払拭!
✓ →Weekendでスムーズに取り組める!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 16
目的の実現方法概要
1. 手順を伝える
✓ 知らないから不安なんじゃない?
✓ ただし、1つだけ伝える
✓ 不安には多くの選択肢より1つのオススメ
2. 失敗しても大丈夫なOSSで体験
✓ 未体験だから不安なんじゃない?
✓ 対象OSS:メンターが関係者
OSS開発手順
Powered by Rabbit 2.1.7
Page: 17
目的の実現方法
1. 開発参加時の手順を知る
✓ オススメ手順を知る
2. 手順を見る
✓ トレーナーが手順をデモ
3. 実践する
✓ 参加者が実際に体験する
OSS開発手順
Powered by Rabbit 2.1.7
Page: 18
開発参加時の手順
途中で詰まったらメモしておく
(後で直すため)
✓ まず動かす(ものすごく大事)
(急いで進むよりここをちゃんとできることが大事)
✓ 開発用にインストール
✓ テストを実行
OSS開発手順
Powered by Rabbit 2.1.7
Page: 19
詰まったらメモ
✓ うまくいかない
✓ 文句言っちゃう?
✓ 文句を言っている時間で直す?
✓ 直す!(あるいは報告する)
✓ OSS開発参加のチャンス!楽しもう!
✓ 次の人はうまくいく
メンターへ:うまくいかない時どう動く人と一緒に働きたい?
OSS開発手順
Powered by Rabbit 2.1.7
Page: 20
メモ
✓ forkリポジトリーのissueへ
(forkすることは後で説明する)
✓ 再現できる情報を書く
(大事なので午後も説明する)
✓ 何をした?何を期待?実際は?
メンターへ:最終的に「報告をもらう人が理解できる情報」に
ブラッシュアップするので、雑でいいのでそのときに参考にな
る情報を入れるようにフォロー。自分ならどういう情報を入れ
る?
メンターへ:バグレポートに必要な情報を想像するといいかも
メンターへ:どんな報告をする人と一緒に働きたい?
OSS開発手順
Powered by Rabbit 2.1.7
Page: 21
メモ例
brewでインストールできるはずなのに失敗した
(↑期待する結果)
(↓なにをしたか)
% brew install XXX
(...コマンドの実行結果...)
(↑実際の結果)
XXX is not found
↑というようにパッケージがないと言われる
OSS開発手順
Powered by Rabbit 2.1.7
Page: 22
まず動かす
1. 対象OSSを確認
2. 対象OSSをfork
3. 対象OSSのドキュメントを確認
✓ 「ユーザー」として動かす
✓ 「開発者」としてじゃない!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 23
ユーザーとして動かす
✓ ドキュメントを読んで…
(↓に不備があったらメモ。後で直す。)
✓ 概要理解
✓ インストール
✓ チュートリアル実行など…
✓ このOSSがわかる!
(↑が「まず動かす」で目指すところ。速く!じゃな
い。)
メンターへ:詰まった人のフォローは、問題を代わりに解決で
はなく、自分はこうやって調べる、一緒にやってみよう、でお
願い
メンターへ:一緒の調査経験後、どうなる人と一緒に働きた
OSS開発手順
Powered by Rabbit 2.1.7
い?
Page: 24
わかる
✓ ↓の状態になっていること
✓ 自分が使える
✓ 他の人に説明できる
✓ 他の類似ツールと比較できる
「まず動かす」で
「わかる」状態に
ならなかったら…
OSS開発手順
Powered by Rabbit 2.1.7
Page: 25
わからない…
✓ ドキュメントが足りなかった?
✓ サンプルコードを確認
✓ テストコードを確認
✓ パラメーターを変えながら動かす
✓ ↑はメモポイント!
メンターへ:こういうときは自分はどうやっている?
メンターへ:新しい視点を伝えて
OSS開発手順
Powered by Rabbit 2.1.7
Page: 26
開発参加時の手順
途中で詰まったらメモしておく
(後で直すため)
✓ まず動かす(ものすごく大事)
(急いで進むよりここをちゃんとできることが大事)
✓ 開発用にインストール
✓ テストを実行
OSS開発手順
Powered by Rabbit 2.1.7
Page: 27
開発用にインストール
✓ ドキュメント
✓ あり→その手順に従う
✓ なし→メモして後で手順をPR
✓ あるけど不備→メモして後で直す
✓ 通常のインストールより
手間がかかることが多い
OSS開発手順
Powered by Rabbit 2.1.7
Page: 28
テストを実行
✓ ドキュメント
✓ あり→その手順に従う
✓ なし→メモして後で手順をPR
✓ あるけど不備→メモして後で直す
✓ テスト
✓ なし→メモして後でPR
(ただし、テストの仕組みづくりは難易度が高い)
OSS開発手順
Powered by Rabbit 2.1.7
Page: 29
開発参加時の手順
途中で詰まったらメモしておく
(後で直すため)
✓ まず動かす(ものすごく大事)
(急いで進むよりここをちゃんとできることが大事)
✓ 開発用にインストール
✓ テストを実行
OSS開発手順
Powered by Rabbit 2.1.7
Page: 30
今日の流れ - 午前
✓ 10:00- 進め方の説明
✓ 11:00- まず動かす
✓ 12:00- 無料ランチ
(pixivさん提供!)
✓ 13:00- スポンサーのLT
OSS開発手順
Powered by Rabbit 2.1.7
Page: 31
今日の流れ - 昼下がり
✓ 13:30- まず動かす(続き)
✓ 15:00- フィードバックしよう
OSS開発手順
Powered by Rabbit 2.1.7
Page: 32
今日の流れ - 夕方
✓ 17:00- まとめ
✓ 17:10- 質疑応答
✓ 17:30- アンケート記入
✓ 18:00- 無料懇親会
OSS開発手順
Powered by Rabbit 2.1.7
Page: 34
開発参加時の手順
途中で詰まったらメモしておく
(後で直すため)
✓ まず動かす(ものすごく大事)
✓ 今日はここまででもよい
✓ 開発用にインストール
✓ テストを実行
メンターへ:つまづいていても答えを教えずに自分ならどこに
着目して調べるかを伝えて一緒に調べて
メンターへ:動いたらグループの他の人を手伝うように促して
OSS開発手順
Powered by Rabbit 2.1.7
Page: 35
詰まったら…?
✓ うまくいかない
✓ 文句言っちゃう?
✓ 文句を言っている時間で直す?
✓ 直す!(あるいは報告する)
✓ OSS開発参加のチャンス!楽しもう!
✓ 次の人はうまくいく
メンターへ:うまくいかない時どう動く人と一緒に働きたい?
OSS開発手順
Powered by Rabbit 2.1.7
Page: 36
大事なこと
楽しむ!
OSS開発手順
Powered by Rabbit 2.1.7
Page: 37
まずユーザーとして動かす
1. 対象OSSを確認→fork
2. 対象OSSのドキュメントを確認
(↓に不備があったらforkのissueにメモ。後で直
す。)
✓ 概要理解・インストール・
✓ チュートリアル実行など…
このOSSがわかる!を目指す
(わかる = 自分が使える・他の人に説明できる)
OSS開発手順
Powered by Rabbit 2.1.7