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:(わかる = 自分が使える・他の人に説明できる)’))