= 概要 : 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:ミニふりかえり * 作業ログを使う! = おさらい:詰まったら…? * うまくいかない… * 文句言っちゃう? * 文句を言っている時間で((*直す*))? * 直す!(あるいは報告する) * OSS開発参加のチャンス!楽しもう! * 次の人は((*うまくいく*)) (('note:メンターへ:うまくいかない時どう動く人と一緒に働きたい?')) = 大事なこと 楽しもう! = 作業1 * ログ用issue作成 * clear-code/sezemi-2015 * issue 22をコピー * ログの書き方は↑に書いてある (('tag:center')) デモ