OSS開発手順¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
OSS Gateワークショップ
: date
2016-03-26
: allotted-time
15m
: theme
clear-blue
立場一覧¶ ↑
* ビギナー * メンター * 進行役
立場別目的¶ ↑
* ビギナー * (('wait'))OSSの開発に参加したい!\n (('note:(どうして参加したいかは問わない!)')) * メンター・進行役 * (('wait'))OSSの開発に参加する人を\n 増やしたい!\n (('note:(どうして増やしたいかは問わない!)'))
ビギナー¶ ↑
* (('wait'))OSSの開発に参加したい * でも参加したことはない * (('wait'))OSSの開発に参加した事はある * でもまだ自信がない
メンター¶ ↑
* ビギナーのサポート係 * OSS開発経験者 * →困ったり悩んだら積極的に相談
進行役¶ ↑
* メンターの1人 * 進行と全体を気にかける係
ワークショップの目的¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) ビギナーのn OSS開発参加へのn 不安を払拭
目的の理由¶ ↑
((‘tag:center’)) 不安を払拭できればn OSSの開発に参加できるはず!
目的の実現方法概要¶ ↑
((‘tag:x-large’)) ((‘tag:center’)) 手順を伝える
* 知らないから不安なんだよね * ただし、((*1つだけ*))伝える * 不安には\n 多くの選択肢より1つのオススメ
目的の実現方法¶ ↑
(1) 開発参加時の手順を知る * オススメ手順を知る (2) (('wait'))実践する * ビギナーが実際に体験する
開発参加時の手順¶ ↑
((‘tag:center’)) ((‘tag:margin-bottom’)) ((‘tag:margin-bottom’)) 途中で詰まったらメモしておくn ((‘note:(後で直すため)’))
* まず動かす(ものすごく大事) * (('note:開発用にインストール')) * (('note:テストを実行')) * (('note:...'))
詰まったらメモ¶ ↑
* うまくいかない… * (('wait'))文句言っちゃう? * (('wait'))文句を言っている時間で((*直す*))? * (('wait'))OSS開発参加チャンス!楽しもう! * (('wait'))直したら次の人は((*うまくいく*))! * (('wait'))直すときにメモを活用
メモ¶ ↑
* 作業メモissueへ * 再現できる情報を書く\n (('note:(大事なので午後も説明する)')) * 何をした?何を期待?実際は?
((‘note:メンターへ:最終的に「報告をもらう人が理解できる情報」にブラッシュアップするので、ここでは雑でいい。ブラッシュアップ時に参考になる情報を入れるようにフォロー。自分ならどういう情報を入れる?’))n ((‘note:メンターへ:バグレポートに必要な情報を想像するといいかも’))
メモ例¶ ↑
brewでインストールできるはずなのに失敗した (↑期待する結果) (↓なにをしたか) % brew install XXX (...コマンドの実行結果...) (↑実際の結果) XXX is not found ↑というようにパッケージがないと言われる
まず動かす¶ ↑
(1) 開発対象OSSを確認 (2) ドキュメントを確認 * 「ユーザー」として動かす * 「開発者」としてじゃない!
ユーザーとして動かす¶ ↑
* ドキュメントを読んで…\n (('note:(↓に不備があったら((*メモ*))。後で直す。)')) * 概要理解 * インストール * チュートリアル実行など…
「まず動かす」の目標¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) このOSSがn わかった
((‘note:メンターへ:詰まった人のフォローは、「問題を代わりに解決」ではなく、自分はこうやって調べる、一緒にやってみよう、でお願い’))
わかる¶ ↑
* ↓の状態になっていること * 自分が使える * 他の人に説明できる * 他の類似ツールと比較できる
((‘wait’)) ((‘tag:center’)) 「まず動かす」でn 「わかる」状態にn ならなかったら…
わからない…¶ ↑
* ドキュメントが足りなかった? * サンプルコードを確認 * テストコードを確認 * パラメーターを変えながら動かす * ↑はメモポイント!
((‘note:メンターへ:こういうときは自分はどうやっている?’))n ((‘note:メンターへ:新しい視点を伝えて’))
開発参加時の手順¶ ↑
((‘tag:center’)) ((‘tag:margin-bottom’)) ((‘tag:margin-bottom’)) 途中で詰まったらメモしておくn ((‘note:(後で直すため)’))
* まず動かす(ものすごく大事) * (('note:開発用にインストール')) * (('note:テストを実行')) * (('note:...'))
大事なこと¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) 楽しむ!
まずユーザーとして動かす¶ ↑
(1) 対象OSSを確認→fork (2) ドキュメントを確認\n (('note:(↓に不備→作業メモissueに((*メモ*))→後で直す)')) * 概要理解・インストール・ * チュートリアル実行など…
((‘tag:center’)) このOSSがわかる!を目指すn ((‘note:(わかる = 自分が使える・他の人に説明できる)’))