概要¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
SEゼミ2015 - OSS Hack Weekend
: date
2015-07-11
: allotted-time
15m
: theme
clear-code
SEゼミの立場一覧¶ ↑
* 参加者(みなさん) * スポンサー * 運営
立場別SEゼミの目的¶ ↑
* 参加者 * (('wait'))OSSを開発したい! * スポンサー * (('wait'))一緒に働きたい人をみつけたい! * (('wait'))一緒にOSSを開発するとわかりそう! * (('wait'))→((*参加者のOSS開発参加を支援*)) * 運営:↑をサポートしたい!
参加者のふるまい方¶ ↑
* 選ばれている!と気負わない * 目的(OSSの開発)に集中すればよい * スポンサー * 本来の参加者に興味 * 仮面をかぶらない * 入社→ミスマッチ→お互いに不幸!\n (('note:仮面をかぶり続けられるならアリ'))\n (('note:「m_seki ロールプレイングゲーム」で検索'))
スポンサー¶ ↑
* たくさんいる * 勉強会中 * 企業は気にしない * 担当メンターの人から学ぶ * ランチ・懇親会 * 様々な企業の様々なメンターと交流 * →今まで知らなかった((*新しい視点*))!
スポンサー(1)¶ ↑
* クラウドワークスさん * エス・エム・エスさん * 万葉さん * スマートエデュケーションさん * クックパッドさん
スポンサー(2)¶ ↑
* ビズリーチさん * VASILYさん * Treasure Dataさん * ピクシブさん * 楽天さん
スポンサー(3)¶ ↑
* CROOZさん * ミラクル・リナックスさん * フリークアウトさん * ぐるなびさん * Cosylabさん
トレーナー¶ ↑
((‘tag:center’))((‘tag:margin-bottom * 2’)) 須藤
* 運営 * 進行と全体を気にかける係 * 大学生の頃からOSSの開発に参加 * RabbitもOSS
メンター¶ ↑
* 参加者のサポート係 * 現役超優秀エンジニア * スポンサー企業または運営 * OSS開発経験者 * →困ったり悩んだら積極的に相談
このイベントの目的¶ ↑
* イベント中 * 「自分が開発に参加したい」\n OSSの開発に参加 * イベント後 * 継続的に開発に参加
目的の理由¶ ↑
* 「やりたい!」が大事だから * OSSの開発で一番大切なもの * やりたくてやる! * (('wait'))開発を楽しめる * (('wait'))継続できる * (('wait'))できることが増える * (('wait'))もっと楽しめる(('note:(!=ツラくない)'))
目的の実現方法概要¶ ↑
(1) 「やりたい!」OSSを選ぶ\n (('note:(すでに選んだ)')) (2) サポート付きで開発に参加 * 全体へのノウハウ提供 * 個別にメンターフィードバック
目的の実現方法¶ ↑
* 全体へのノウハウ提供 * (('wait'))朝・午後:ステージから紹介 * (('wait'))日に数回:メンターのミニガイド * 個別にメンターフィードバック * (('wait'))メンターとふりかえり * (('wait'))issue/pull request前最終チェック
メンターのミニガイド¶ ↑
* 時間:突発的 * 場所:後ろの会議スペース * いつ:メンターが高まったら\n (('note:(2人以上に伝えた方がいいと判断したら)')) * 参加者:興味ある人(('note:(アナウンスあり)')) * トレーナーが内容を記録→後で共有 * 例:よいコミットは?
メンターとふりかえり¶ ↑
* 参加者の行動に対して\n メンターからフィードバック * 「よい」を発見→継続 * 「困っている」を発見→アドバイス * 未認識の「問題」発見(直そう!) * 次に進むべき先を示す
参加者の行動¶ ↑
* 自分でログを残す * 残すほどフィードバックが増える! * 残し方 * 場所:\n clear-code/sezemi-2015のissue * 1人につき1 issue→後で作る * コメントして追記→後でデモ
ログの内容¶ ↑
* 残すこと * 作業・思っていること・備考\n (('note:(作業:やる事・やっている事・やった事)')) * 残すとき * 違う作業を始める・詰まった * issue/pull requestを出した
目的の実現方法(再掲)¶ ↑
* 全体へのノウハウ提供 * 朝・午後:ステージから紹介 * 日に数回:メンターのミニガイド * 個別にメンターフィードバック * メンターとふりかえり * issue/pull request前最終チェック
issue/pull request前n最終チェック¶ ↑
* issue/pull requestを出すとき * メンターに最終チェックをお願い * 対象:全部 * フィードバックをもらうよい機会! * メンターに説明→\n 自分の中で洗練される効果あり
今日の流れ - 午前¶ ↑
* 10:00- 進め方の説明 * 10:30- まず動かす * 11:45- ミニふりかえり * 12:00- 無料ランチ\n (フリークアウトさん提供!) * 13:00- スポンサーのLT
今日の流れ - 午後¶ ↑
* 13:30- 開発ノウハウ紹介 * 13:45- 開発(('note:(随時ミニガイド)')) * 17:00- ふりかえり * 17:30- まとめ・質疑応答 * 17:45- プチ懇親会
大事なこと¶ ↑
((‘tag:center’)) ((‘tag:x-large’)) 詰まったらn ログ
((‘tag:center’)) ((‘tag:x-large’)) ((‘wait’)) ↓n 後で直すため
詰まったらログ¶ ↑
* うまくいかない… * 文句言っちゃう? * 文句を言っている時間で((*直す*))? * (('wait'))直す!(あるいは報告する) * OSS開発参加のチャンス!楽しもう! * 次の人は((*うまくいく*))
((‘note:メンターへ:うまくいかない時どう動く人と一緒に働きたい?’))
問題発見は難しい¶ ↑
* 修士:問題解決力を期待 * 博士:問題発見力を期待
((‘tag:center’)) ヒント
((‘wait’)) ((‘tag:center’)) 自分の困った→解決するべき問題n ↓n 詰まったらログn ((‘note:(詰まったこと == 困ったこと)’))
詰まった?問題発見?¶ ↑
* ググるとき詰まっていない? * (('wait'))Stack Overflowの情報で回避? * (('wait'))本体を直した方がよくない? * 何度も使い方を調べていない? * (('wait'))使いにくいAPIなのかも * (('wait'))APIを改善した方がよくない?
午前の進め方¶ ↑
* まず動かす(ものすごく大事) * ↑は今から説明 * ↓は↑ができれば大丈夫 * 開発用にインストール * テストを実行
まず動かす¶ ↑
(1) 対象OSSを確認 (2) 対象OSSをfork (3) 対象OSSのドキュメントを確認 * 「ユーザー」として動かす * 「開発者」としてじゃない!
ユーザーとして動かす¶ ↑
* ドキュメントを読んで…\n (('note:(↓に不備があったら((*ログ*))。後で直す。)')) * 概要理解 * インストール * チュートリアル実行など… * このOSSがわかる!\n (('note:(↑が「まず動かす」で目指すところ。速く!じゃない。)'))
((‘note:メンターへ:詰まった人のフォローは、問題を代わりに解決ではなく、自分はこうやって調べる、一緒にやってみよう、でお願い’))n
わかる¶ ↑
* ↓の状態になっていること * 自分が使える * 他の人に説明できる
((‘wait’)) ((‘tag:center’)) 「まず動かす」でn 「わかる」状態にn ならなかったら…
わからない…¶ ↑
* ドキュメントが足りなかった? * サンプルコードを確認 * テストコードを確認 * パラメーターを変えながら動かす * ↑はログポイント!
((‘note:メンターへ:こういうときは自分はどうやっている?’))n ((‘note:メンターへ:新しい視点を伝えて’))
午前の最後¶ ↑
* ログをもとにミニふりかえり * 目的: * 今日最後のふりかえりのリハーサル * ログが役に立つことを実感! * 午後もログを書いてもらおう!
メンターとミニふりかえり¶ ↑
* 参加者の行動に対して\n メンターからフィードバック * 「よい」を発見→継続 * 「困っている」を発見→アドバイス * 未認識の「問題」発見(直そう!) * 次に進むべき先を示す
午前のおさらい¶ ↑
* 終日:作業ログをつける * 午前1:まず動かす(マジ大事) * 開発用にインストール・テスト実行 * 午前2:ミニふりかえり * 作業ログを使う! * (('note:期待すること:「自分の問題」が見つかる')) * (('note:見つからなかったら既存のissue/pull requestから探す'))
おさらい:詰まったら…?¶ ↑
* うまくいかない… * 文句言っちゃう? * 文句を言っている時間で((*直す*))? * 直す!(あるいは報告する) * OSS開発参加のチャンス!楽しもう! * 次の人は((*うまくいく*))
((‘note:メンターへ:うまくいかない時どう動く人と一緒に働きたい?’))
ヒント¶ ↑
* コントリビュートに上下はない * コード・テストの改善も大事 * ドキュメントの改善も大事 * ((*×*))できるようになってからやる * やるからできるようになる! * できることはやる * できないこともチャレンジ!
大事なこと¶ ↑
楽しもう!
作業1¶ ↑
* ログ用issue作成 * clear-code/sezemi-2015 * issue 22をコピー * ログの書き方は↑に書いてある
((‘tag:center’)) デモ