Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアが持続的に成長するスキルサーズデー型勉強会 〜なかだるみしない社内勉強会の運営方法〜

Cygames
September 30, 2016

エンジニアが持続的に成長するスキルサーズデー型勉強会 〜なかだるみしない社内勉強会の運営方法〜

2016/08/25 CEDEC 2016

Cygames

September 30, 2016
Tweet

More Decks by Cygames

Other Decks in Technology

Transcript

  1. None
  2. © 2016, Cygames, Inc. /73 アジェンダ(2部構成) 2 持続的な社内勉強会の運営⽅法につ いて(スキルサーズデー) 社内勉強会で共有した知識を体系化

    するための⼤学講義・演習のノウハ ウについて
  3. © 2016, Cygames, Inc. /73 アジェンダ(2部構成) 3 持続的な社内勉強会の運営⽅法につ いて(スキルサーズデー) 社内勉強会で共有した知識を体系化

    するための⼤学講義・演習のノウハ ウについて
  4. 4 社内勉強会に関して (スキルサーズデー)

  5. © 2016, Cygames, Inc. /73 ⾃⼰紹介

  6. © 2016, Cygames, Inc. /73 サマリ •  本内容は社内勉強会を運営している⽅、また運営を ⾏おうとしている⽅へのセッションです。 弊社の社内勉強会事例、またどのような⼼構えで運

    営をしているかをお伝えしたいと思います。 6
  7. © 2016, Cygames, Inc. /73 アジェンダ • 社内勉強会の運営は⾟い • スキルサーズデーについて • ⼼がけている3つの事 • まとめ

    7
  8. © 2016, Cygames, Inc. /73 質問 • 社内勉強会を運営している⽅ • 開催に苦労しているという⽅ 8

  9. © 2016, Cygames, Inc. /73 質問 ࣾ಺ษڧձͷӡӦ͸ਏ͍ ͱݴΘΕΔ 9

  10. © 2016, Cygames, Inc. /73 運営は⾟い ਓ͕ू·Βͳ͍ ޮՌ͕ݟࠐΊͳ͍ ଓ͔ͳ͍ 10

  11. © 2016, Cygames, Inc. /73 運営は⾟い ਓΛूΊ͍ͨ ޮՌΛݟࠐΈ͍ͨ ଓ͚͍ͨ 11

    ਅͷ໨త͸ʁ
  12. © 2016, Cygames, Inc. /73 勉強会のきっかけ • 元々は1プロジェクトの週1定例MTG •  共有事項+勉強会 • 3ヶ⽉間毎週スライドを書いていた

    •  サーバー(アプリケーションサーバー、KVS) •  クライアント(cocos2d-x、メモリ) •  その他(git、時間管理術、最近のトレンド) • プロジェクト内からは好評 •  15分程度で書いたスライドでも需要はある 12
  13. © 2016, Cygames, Inc. /73 勉強会のきっかけ •  プロジェクトから離れた⽴場になり、 技術的に伸びを感じない「焦り」 • 

    社内SNSでアピール 「何か勉強して話すから聞いてくれる⼈募集」 •  毎週話す気でいたら、他にも話したい⼈がいた 13
  14. © 2016, Cygames, Inc. /73 勉強会のきっかけ •  プロジェクトから離れた⽴場になり、 技術的に伸びを感じない「焦り」 • 

    社内SNSでアピール 「何か勉強して話すから聞いてくれる⼈募集」 •  毎週話す気でいたら、他にも話したい⼈がいた εΩϧαʔζσʔͷ։࢝ 14
  15. © 2016, Cygames, Inc. /73 最初の⽬的は ਓΛूΊ͍ͨ ޮՌΛݟࠐΈ͍ͨ ࿩͠ଓ͚͍ͨ ͨͩ࿩͍ͨ͠ͱ͍͏

    ʮࢥ͍͖ͭʯ͔Β࢝·ͬͨ 15
  16. © 2016, Cygames, Inc. /73 スキルサーズデー •  エンジニア向け社内勉強会 •  毎週⽊曜⽇

    •  定時後の19:00〜20:00 •  副題は「毎週が8⽉31⽇」 16
  17. © 2016, Cygames, Inc. /73 スキルサーズデー •  エンジニア向け社内勉強会 •  毎週⽊曜⽇

    •  定時後の19:00〜20:00 •  副題は「毎週が8⽉31⽇」 • アクティブラーニング 17
  18. © 2016, Cygames, Inc. /73 アクティブラーニングとは 18 ߨٛ ಡॻ ࢹௌ֮

    σϞϯετϨʔγϣϯ άϧʔϓ౼࿦ ࣗΒମݧ͢Δ ਓʹڭ͑Δ Learning Pyramid ʢग़యɿNational Training Laboratoriesʣ
  19. © 2016, Cygames, Inc. /73 アクティブラーニングとは 19 ̍̌ˋ ̎̌ˋ ̏̌ˋ

    ̑̌ˋ ̓̑ˋ ̌̕ˋ ߨٛ ಡॻ ࢹௌ֮ σϞϯετϨʔγϣϯ άϧʔϓ౼࿦ ࣗΒମݧ͢Δ ਓʹڭ͑Δ ̑ˋ ฏۉֶशఆண཰ ʢग़యɿNational Training Laboratoriesʣ
  20. © 2016, Cygames, Inc. /73 アクティブラーニングとは 20 ̍̌ˋ ̎̌ˋ ̏̌ˋ

    ̑̌ˋ ̓̑ˋ ̌̕ˋ ߨٛ ಡॻ ࢹௌ֮ σϞϯετϨʔγϣϯ άϧʔϓ౼࿦ ࣗΒମݧ͢Δ ਓʹڭ͑Δ ̑ˋ ฏۉֶशఆண཰ 受動的 能動的 ʢग़యɿNational Training Laboratoriesʣ
  21. © 2016, Cygames, Inc. /73 アクティブラーニングとは 21 ̍̌ˋ ̎̌ˋ ̏̌ˋ

    ̑̌ˋ ̓̑ˋ ̌̕ˋ ߨٛ ಡॻ ࢹௌ֮ σϞϯετϨʔγϣϯ άϧʔϓ౼࿦ ࣗΒମݧ͢Δ ਓʹڭ͑Δ ̑ˋ ฏۉֶशఆண཰ 受動的 能動的
  22. © 2016, Cygames, Inc. /73 能動的フェーズ άϧʔϓ౼࿦ ࣗΒମݧ͢Δ ਓʹڭ͑Δ ラウンドテーブル

    ハンズオン 発表 3つを主軸に置いた 環境作り 22
  23. © 2016, Cygames, Inc. /73 ラウンドテーブル •  ⽉1程度 •  プロジェクトを越えて話す機会になる

    •  初期の議題は普段の業務に近い内容が良い 「プロジェクトの進め⽅」について など άϧʔϓ౼࿦ 23
  24. © 2016, Cygames, Inc. /73 ハンズオン •  不定期 •  Vimの使い⽅など初歩的な所がメイン

    •  やってみると意外と知らないショートカットも •  同テーマで継続的に⾏うものであるなら 別の時間の⽅が良い。 ࣗΒମݧ͢Δ 24
  25. © 2016, Cygames, Inc. /73 フリージャンル • Unityと静的解析 • UnityTestTools • Unity最適化(主に3D以外) • Unity

    + SpriteStudioで最適化の話 • プレUnite〜Unity+スマホで3Dゲーム開発/最適 化するための考え⽅ • Monoから推測するUnity GCの動き • ドメイン固有⾔語による境界コード⽣成術(主 にruby) • 某カードゲームの戦闘シミュレーション最適化 • ゲームの勝利ログからゲームAIが作れることも ある • ゲームAI・実装事例の紹介 • ディープラーニングがAIにもたらすブレークス ルー 〜AlphaGoがイ・セドルに勝てたのはなぜ か? • AI設計における限定合理性の効⽤ - TCGAIでの 事例- • AIのデータ運⽤事例と、復帰処理を利⽤した回 帰テストについて • nodejsの特徴と仕組み • PhantomJSを使ったsocket.io負荷試験 • Node.jsとPromise/Deferredパターン • PHP5とPHP7を較べて⾒た • MySQLをいじめ倒してみた!!! • サーバの殺し⽅ • サーバーがこんなに減らせるわけがない • XFLAG Infrastracture DEEP DIVE • 遺恨を残さないためのcron周り運⽤⾒直し • C++初歩 • 某プロジェクトにおけるC++の罠 • プログラミング研修で学んだこと(C⾔語)〜総合職 視点〜 • スクラムマスター研修レポート • プロジェクトの進め⽅ラウンドテーブル • VisualStudioアドオンのVisualAssistXとの美味 しい付き合い⽅ • UnrealEngine4を触ってみた話 • swiftのすすめ • swagger⼊⾨編 • 中の下のエンジニア脱出するための⽬標設定 • あなたにもなれる!Pepper新⽶プロデューサー育 成講座 • リーン開発を駆け⾜で解説 • ニューラルネットワークの実装⽅法 ଞ20਺ఔ ਓʹڭ͑Δ 25
  26. © 2016, Cygames, Inc. /73 • MySQLをいじめ倒してみた!!! • サーバの殺し⽅ • サーバーがこんなに減らせるわけがない • XFLAG Infrastracture

    DEEP DIVE • 遺恨を残さないためのcron周り運⽤⾒直し • C++初歩 • 某プロジェクトにおけるC++の罠 • プログラミング研修で学んだこと(C⾔語)〜総合職 視点〜 • スクラムマスター研修レポート • プロジェクトの進め⽅ラウンドテーブル • VisualStudioアドオンのVisualAssistXとの美味 しい付き合い⽅ • UnrealEngine4を触ってみた話 • swiftのすすめ • swagger⼊⾨編 • 中の下のエンジニア脱出するための⽬標設定 • あなたにもなれる!Pepper新⽶プロデューサー育 成講座 • リーン開発を駆け⾜で解説 • ニューラルネットワークの実装⽅法 • Unityと静的解析 • UnityTestTools • Unity最適化(主に3D以外) • Unity + SpriteStudioで最適化の話 • プレUnite〜Unity+スマホで3Dゲーム開発/最適 化するための考え⽅ • Monoから推測するUnity GCの動き • ドメイン固有⾔語による境界コード⽣成術(主 にruby) • 某カードゲームの戦闘シミュレーション最適化 • ゲームの勝利ログからゲームAIが作れることも ある • ゲームAI・実装事例の紹介 • ディープラーニングがAIにもたらすブレークス ルー 〜AlphaGoがイ・セドルに勝てたのはなぜ か? • AI設計における限定合理性の効⽤ - TCGAIでの 事例- • AIのデータ運⽤事例と、復帰処理を利⽤した回 帰テストについて • nodejsの特徴と仕組み • PhantomJSを使ったsocket.io負荷試験 • Node.jsとPromise/Deferredパターン • PHP5とPHP7を較べて⾒た カテゴリ分け Unity AI Node.js+PHP αʔόʔ C++ Ϩϙʔτ ։ൃख๏ UE4 Swift Visual Assist pepper ͳͲ 26
  27. © 2016, Cygames, Inc. /73 参加⼈数の傾向 27 ࠷େࢀՃऀɿ̑̎ਓ ࠷௿ࢀՃऀɿ̔ਓ ฏۉࢀՃऀɿ̎̐.̔ਓ

    0 15 30 45 60 10/29 11/26 1/7 1/28 3/3 3/24 4/21 5/19 6/9 7/7 開始時から30回までの⼈数推移 ࢀ Ճ ऀ ਺ ։࠵೔
  28. © 2016, Cygames, Inc. /73 参加⼈数の傾向 28 ࠷େࢀՃऀɿ̑̎ਓ ࠷௿ࢀՃऀɿ̔ਓ ฏۉࢀՃऀɿ̎̐.̔ਓ

    0 15 30 45 60 10/29 11/26 1/7 1/28 3/3 3/24 4/21 5/19 6/9 7/7 開始時から30回までの⼈数推移 ࢀ Ճ ऀ ਺ ։࠵೔
  29. © 2016, Cygames, Inc. /73 0 15 30 45 60

    10/29 11/26 1/7 1/28 3/3 3/24 4/21 5/19 6/9 7/7 開始時から30回までの⼈数推移 参加⼈数の傾向 29 Unityճ Unity回には⼈が集まりやすい 普段の業務に近しい内容には興味がある ࢀ Ճ ऀ ਺ ։࠵೔
  30. © 2016, Cygames, Inc. /73 0 15 30 45 60

    10/29 11/26 1/7 1/28 3/3 3/24 4/21 5/19 6/9 7/7 開始時から30回までの⼈数推移 参加⼈数の傾向 30 ͦͷଞ 枯れた技術、開発⼿法、⽣存戦略 などには⼈が集まりにくい ࢀ Ճ ऀ ਺ ։࠵೔
  31. © 2016, Cygames, Inc. /73 ⼈が集まらないことは問題なのか • ⼈が少ないからこそ盛り上がる事もある •  cronの回、 運⽤⽅針の回など

    • 最初の⽬的を忘れない •  そもそもは話したい「場所」が欲しかった 場所が作れているだけで⽬的は達成 • 「⼈を集めたい⽬的」の勉強会は 別でやるべき 31
  32. © 2016, Cygames, Inc. /73 振り返りで⾒えてくるもの • 興味がある項⽬であれば⾃然と⼈は集まる •  毎週は出れない⼈も当然出てくる • 参加できずとも資料を⾒てくれる⼈はいる

    •  「あの資料が役に⽴った」と数ヶ⽉経った後 に聞く事もある • 続かない原因は運営にある事を⾃覚する •  「⼈が集まらない」で折れそうにも  視点を変える事が重要   32
  33. © 2016, Cygames, Inc. /73 続ける為の3つのコツ ίϛϡχέʔγϣϯ ΠςϨʔγϣϯ ΧΠθϯ 33

  34. © 2016, Cygames, Inc. /73 コミュニケーション • 運営外のコミュニケーションを⼤事に •  意欲的な⼈には「直接」相談する 他の⼈の⽬に触れる場所での相談では、

    強制⼒が出る • 参加してくれる⼈に感謝を忘れない •  必ず感想を書く(フィードバック) •  参加してくれるだけありがたい話 • ⾃主性を重視する •  プライベート優先で。過度に誘わない。 •  ただし「話したい」と⾔っていた⼈には ⽬をつける 34
  35. © 2016, Cygames, Inc. /73 イテレーション • ⽊曜⽇が休⽇なら勉強会も休む •  リスケに労⼒を割かない • 2週以上は極⼒空けない

    •  空きには慣れやすい •  リズムを崩さない • 10分でも続ける努⼒ •  話すネタが無いことは「無い」 •  毎回収穫がある勉強会を期待しない 35
  36. © 2016, Cygames, Inc. /73 カイゼン • BOTの作成 •  告知に使⽤ • 

    運営の軽減になる • 資産を⼤事に •  資料⾃動アップロード •  社内スライドシェアを作る • 定期的な振り返り •  参加者の意⾒重要 36
  37. © 2016, Cygames, Inc. /73 まとめ • 継続系の勉強会では即時効果は⾒えにくい •  続ける事で⾒えてくる事がある • 運営は程よく頑張らない

    •  運営が疲れたら寂れるのも終わるのも容易い • 勉強会の⽬標を明確に •  勉強会のパターンは⼀つでは無い 37
  38. © 2016, Cygames, Inc. /73 アジェンダ(2部構成) 38 持続的な社内勉強会の運営⽅法につ いて(スキルサーズデー) 社内勉強会で共有した知識を体系化

    するための⼤学講義・演習のノウハ ウについて
  39. 39 社内勉強会で共有した知 識を体系化するための⼤ 学講義・演習のノウハウ について

  40. 40

  41. © 2016, Cygames, Inc. /73 サマリ 41 ͋ΒΏΔ࢈ۀʹ͓͍ͯɺ࣋ଓతͳ੒௕ Λ࣮ݱ͢ΔͨΊʹ͸ɺ૊৫಺Ͱͷ஌ࣝ ڞ༗ͱͦΕʹΑΔΠϊϕʔγϣϯ͕ඞ

    ཁෆՄܽ ͋Δఔ౓ͷن໛Ҏ্ͷ૊৫ʹ͓͍ͯɺ ஌ࣝڞ༗Λଅਐ͢ΔͨΊʹ͸ɺ஌ࣝͷ ମܥԽ͕伴ͱͳΔ
  42. © 2016, Cygames, Inc. /73 アジェンダ 社内における知識共有 体系的な知識の発信⽅法 ⽂章作成技術の紹介 まとめ

    42
  43. © 2016, Cygames, Inc. /73 体系的な知識の発信⽅法 43 ϓϨθϯςʔγϣϯ ϥΠςΟϯά

  44. © 2016, Cygames, Inc. /73 プレゼン/ライティングのスキルは必要? 44 組織が⼤きくなるほど、⽂書化技術 がコミュニケーションの鍵となる ⽂

    書 খ͍͞૊৫Ͱ͸ޱ ಄ڞ༗Ͱ΋े෼ େ͖ͳ૊৫Ͱ͸จॻΛഔ հʹͨ͠஌ࣝڞ༗͕ඞཁ
  45. © 2016, Cygames, Inc. /73 チームの盲点 45 企業 プロジェク トチームA

    プロジェク トチームB ૊৫ΛνʔϜʹ෼ׂ͢Δํࣜ͸ɺνʔϜ಺ͷ ίϛϡχέʔγϣϯΛԁ׈Խ͢Δ͕ɺνʔϜ ؒͷίϛϡχέʔγϣϯΛ્ΉཁҼʹͳΔɻ 独⾃の ⽂化A 独⾃の ⽂化B 異⽂化 の障壁
  46. © 2016, Cygames, Inc. /73 コミュニケーションが円滑すぎる場合は密結合 46 企業 プロジェク トチームA

    プロジェク トチームB ίϛϡχέʔγϣϯ͕ԁ׈ʹͰ͖͗͢Δ νʔϜಉ࢜͸ɺසൟʹඞཁͳίϛϡχ έʔγϣϯΛߦ͍ͬͯΔͱ͍͏͜ͱͰ͋ Γɺ෼ۀମ੍ཱ͕֬Ͱ͖͍ͯͳ͍ɻ ஌ࣝΛڞ༗Ͱ ͖͍ͯΔ͕ɺ ϘτϧωοΫ ΋ڞ༗
  47. © 2016, Cygames, Inc. /73 ⾼度に⾃律した組織間でのコミュニケーションを 成⽴させる⽅法 47 ஌ࣝͷମܥԽͱڞ௨ج൫Խ͕ͦ͜ίϛϡχ έʔγϣϯΛ੒ཱͤ͞Δ伴ͱͳΔɻ

    ஌ࣝͷମܥԽͱڞ௨ج൫ԽΛɺશਓྨن໛Ͱ ߦͬͨ΋ͷ͕ɺʮՊֶʢαΠΤϯεʣʯ ମܥతͳ஌ࣝΛจॻ΍ϓϨθϯͱͯ͠ڞ༗͢ Δख๏͕༗ޮ
  48. © 2016, Cygames, Inc. /73 プログラマだからプレゼンも⽂章も苦⼿? 48 ྑ͍ϓϩάϥϚ͸ɺඞͣɺ ྑ͍ϓϨθϯλʔɺྑ͍ ϥΠλʔͰ͋Δɻ

  49. © 2016, Cygames, Inc. /73 良いプログラムと悪いプログラム 49 public class Main

    { public static void main(String[] args) { 全てがmainメソッドの 中に書かれており、引 数で条件分岐する5000 ⾏のプログラム } } public class Main { public static void main(String[] args) { } private static int eventLoop() { } private static int processFile() { } private static int handleErrors(Error e) { } } ϓϩάϥϜ͸ߏ଄Խ͞Ε͓ͯΓɺҰͭͷػೳ͸Ұͭͷ Ϟδϡʔϧʹू໿͞Ε͍ͯΔํ͕͍͍ɻ จষ΋ಉ͡ɻߴ౓ʹߏ଄Խ͞ΕɺҰͭͷτϐοΫΛ1ͭ ͷষ΍ύϥάϥϑʹू໿͞ΕͨจষΛॻ͘΂͖ɻ
  50. © 2016, Cygames, Inc. /73 プログラム全体を複数のモジュールに分割するべ き(IMRAD構成) 50 •  Introductionʢઓུʣ

    •  Methodʢઓज़ʣ •  Resultʢ݁Ռʣ •  Discussionʢߟ࡯ʣ ⽂書ならば、Introduction、Method、 Result、Discussionの4部構成に分割する。 ໰୊Λఆٛ͠ɺࣗ෼ͷߟ͑Λ ࿦ཧతʹطଘͷจ຺ͷதͰҐ ஔ෇͚Δɻ ۩ମతͳํ๏Λɺ࠶ݱՄೳ ͳܗͰઆ໌͢Δɻ ٬؍తͳ਺ࣈ΍ূڌΛ༻͍ͯ ํ๏࿦ͷଥ౰ੑΛࣔ͢ɻ কདྷͷల๬΍໰୊఺Λ࿦͡Δɻ
  51. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 51 サマリ Intro.

    Method Result Disc. 背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2
  52. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 52 サマリ Intro.

    背景 関連技術 問題定義 問題 1 問題 2 技術 1 技術 2 すべての⽂章の先頭はサ マリから始めるべき。 サ マ リ の な い ⽂ 章 は、 オープニングのないゲー ムと同じ。
  53. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 53 サマリ Intro.

    背景 関連技術 問題定義 問題 1 問題 2 技術 1 技術 2 1、2、3と要素の列挙を、 最 も 下 位 の レ ベ ル の ブ ロックとして持つ。要素 は、順序関係か、あるい は、単純な列挙であるこ とが好ましい。
  54. © 2016, Cygames, Inc. /73 良い⽂章とは 54 ීวతͳ֓೦Ͱఆٛ͞Εͨ ΞΠσΟΞΛɺ ۩ମతͳཁૉͷྻڍʹ

    ม׵͢Δϓϩηε͕ ϥΠςΟϯάͰ͋Δ
  55. © 2016, Cygames, Inc. /73 伝わらない⽂章は、列挙しかしていない 55 問題 1 問題

    2 技術 1 技術 2 ͜Μͳจষॻ͍͍ͯ·ͤΜ͔ʁ จ຺ͳ͖ྻڍΛ͍ͯ͠·ͤΜ͔ʁ •  ໰୊͚ͩΛྻڍ͍ͯͯ͠ɺͳͥͦͷ໰୊͕ ໰୊ͳͷ͔ͷจ຺Λઆ໌͍ͯ͠ͳ͍ɻ •  ඞཁͳٕज़ͷઆ໌͚ͩΛ͍ͯͯ͠ɺͳͥͦ ͷٕज़ͳͷ͔ɺଞͷํࣜͱͷҧ͍ͳͲΛઆ ໌͍ͯ͠ͳ͍ɻ
  56. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 56 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 Introductionは、背景と⽬的を 明らかにすることで、⾃分の アイディアを世界の⽂脈の中 に位置付ける
  57. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 57 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 背景とは、現在の技術⽔準と、 その限界から発⽣する問題の 定義を⾏うセクション
  58. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 58 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 ⽬的とは、ゴールの設定。 定義した問題を解決するために、 どのような状態を達成するべきか を、特徴と利点を明らかにしなが ら説明する。
  59. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 59 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 問題定義は、⾃分のアイディア が対象とする領域と、そこで解 決するべき要素を定義する。
  60. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 60 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 ⾃分のアイディアを客観的に捉 えるためには、関連する技術の 中で定義づける必要がある。
  61. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 61 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 無数にあるゴールの中から、1つの ゴールを選び取るのが、アイディア を考えるということ。特徴のセク ションでは、⾃分が選んだゴールが、 ほかと何が違うのかを明らかにする。
  62. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 62 サマリ Intro.

    背景 関連技術 問題定義 ⽬的 特徴 利点 問題 1 問題 2 技術 1 技術 2 特徴 1 特徴 2 利点 1 利点 2 アイディアの正しさは、その効果が証 明する。⾃分のアイディアによっても たらされる利点をサマライズする。
  63. © 2016, Cygames, Inc. /73 プログラムの階層構造と同じように⽂章の階層 構造を作成する 63 サマリ Intro.

    背景 関連技術 問題定義 問題 1 問題 2 技術 1 技術 2 1、2、3と要素の列挙を、 最も会のレベルのブロッ ク と し て 持 つ 。 要 素 は、 順 序 関 係 か 、 あ る い は、 単純な列挙であることが 好ましい。
  64. © 2016, Cygames, Inc. /73 要素の列挙がわかりやすい理由 64 if(A) { doSomething1();

    } if(B && !A) { doSomethingB1(); } if(A) { doSomething2(); } if(C) { doSomethingC1(); } if(A) { doSomething3(); } if(B && !A) { doSomethingB2(); } if(A) { doSomething1(); doSomething2(); doSomething3(); }else if(B) { doSomethingB1(); doSomethingB2(); } if(C) { doSomethingC1(); } 1ɺ2ɺ3ͱཁૉͷྻڍΛɺ࠷΋ԼҐͷϨϕϧͷϒϩοΫͱͯ࣋͠ ͭɻཁૉ͸ɺॱংؔ܎͔ɺ͋Δ͍͸ɺ୯७ͳྻڍͰ͋Δ͜ͱ͕ ޷·͍͠ɻ →ґଘؔ܎ͱॱংؔ܎͸۠ผͰ͖ͨํ͕Θ͔Γ΍͍͢ɻ
  65. © 2016, Cygames, Inc. /73 1つのメソッドは1つの機能を実装するべき 65 1ͭͷηϯςϯε͸ɺ1ͭͷτϐοΫ͚ͩΛѻ͏΂͖ 良い例: 本プロジェクトではサーバサイドのI/Oボトルネック

    の解消ために、SSDを⼤規模に導⼊した。 悪い例: 本プロジェクトでは⾼価なSSDを⼤規模導⼊するこ とにより、従来よりデータセンターコストは1.6倍に なったものの、⼈⼿での定期巡回も不要になり、従 業員の満⾜度はおしなべて向上した。
  66. © 2016, Cygames, Inc. /73 1つのクラス/メソッドの抽象度は⼀定 66 1ͭͷηϯςϯεͷதͰٞ࿦ͷந৅౓͸Ұఆʹอͭ 良い例: 本プロジェクトにおける分散レンダリングを実現するために

    は、シェーダプログラミング、クラウドコンピューティング、 および、ネットワークの専⾨家が必要である。 具体的には、⽥中をシェーダに、佐藤をクラウドに、⼭下を ネットワークにアサインすることが好ましい。 悪い例: 本プロジェクトは分散レンダリングを実現するために、⽥中、 佐藤、⼭下をアサインしたい。
  67. © 2016, Cygames, Inc. /73 この⾔い訳を⾔い始めたら要注意 67 จॻͷ෼͔Γʹ͘͞Λࢦఠ͞ΕͨΓɺ࣭໰͞ Εͨ࣌ʹɺʮ͜͜ʹॻ͍ͯ͋Δʯͱݴ͍༁Λ ࢝ΊͨΒཁ஫ҙɻ

    public class Main { public static void main(String[] args) { 全てがmainメソッドの 中に書かれており、引 数で条件分岐する5000 ⾏のプログラム } } ここに書い てあります。 ෦Լ΍ޙഐ͕ɺࣗ෼ͷॻ͍ͨε ύήοςΟʔίʔυͷҰ෦Λࢦ ͯ͠ɺ͜ͷΑ͏ͳݴ͍༁Λͨ͠ ࣌ʹɺ৺͔ΒೲಘͰ͖Δʁ
  68. © 2016, Cygames, Inc. /73 この⽂章作成技術でどの程度の成果が出るのか • CEDEC 2016に7件の公募が採択 • GDC Europe

    2016でフルセッション 講演の公募が採択 • エンジニアが、DiGRA Japanに4件の 論⽂を発表 • IEEE VR 2016にポスター論⽂が採択 68
  69. © 2016, Cygames, Inc. /73 ࢈ۀք͔Βͷ࢈ֶ࿈ܞଅਐ DiGRA Japan 2016において、ゲーム開発者を筆頭著者とする発表4件を発 表し、産業界からアカデミアに向けた情報発信と議論を開始

    69
  70. © 2016, Cygames, Inc. /73 IEEE VR2016ʹ͓͚Δݚڀ੒Ռൃද 3݄16೔ʙ18೔ʹ։࠵͞ΕΔIEEE VR2016ʹͯɺCygames͕։ൃͨ͠Π ϝʔδϕʔεͷ௿ίετͳϋϯυδΣ

    ενϟೝࣝγεςϜͷݚڀ੒ՌΛൃද 企業内での研究レベルを継続的に向 上させるとともに、組織内での知識 の体系化を促進 70
  71. © 2016, Cygames, Inc. /73 プレゼンテーション技法は? 71 ଞͷฐࣾελοϑʹΑΔ CEDECൃදΛ͝ཡͩ͘͞ ͍ɻ͋ͷΑ͏ͳײ͡ͷεϥ

    Πυߏ੒ͷߨٛΛ͍ͯ͠· ͢ɻ
  72. © 2016, Cygames, Inc. /73 応⽤ 72 ྑ͍ॻ͖ख͸ɺྑ͍ಡΈखͰ΋͋Δɻ ͜ͷจষٕज़ΛϚελʔ͢Ε͹ɺੈ քதͷ࿦จʗใࠂॻʗ࢓༷ॻͷ஌ࣝ

    Λ׆༻͢Δ͜ͱ͕Ͱ͖Δ
  73. © 2016, Cygames, Inc. /73 まとめ 73 ྑ͍ϓϩάϥϚ͸ɺඞͣɺྑ ͍จষΛॻ͘͜ͱ͕Ͱ͖Δɻ จॻԽΛ௨ͨ͡஌ࣝͷମܥԽ

    ͸ɺࣾ಺֎Ͱͷ஌ࣝڞ༗Λଅ ਐ͢Δɻ