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

学びが形になる!〜DeNAで6年間プロダクト開発に携わって学んだこと〜

DeNA_Tech
March 18, 2023

 学びが形になる!〜DeNAで6年間プロダクト開発に携わって学んだこと〜

2023年3月18日(土) に「技育祭2023春」で IRIAMIRIAM事業部エンジニアリング部エンジニアリング第一グループ 今江 健悟 が登壇した資料です。

概要:
学生時代に「学びが形になる」経験が楽しかったこともありエンジニアになりました。DeNA入社後はゲームの運用〜新規立ち上げを経験し、現在はライブ配信業界にチャレンジ中です。自身の学生時代から今に至る経験を追体験してもらって、何か一つでも皆さんのエンジニア人生の指針になれば幸いです!

イベント:
https://talent.supporterz.jp/geeksai/2023spring/

DeNA_Tech

March 18, 2023
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. 2 自己紹介 今江 健悟 (Kengo Imae) • 2017年4月 株式会社ディー・エヌ・エー 入社

    (17新卒) • 2017年6月 某IP系 運用中のゲームタイトル ◦ 運営~新機能開発、新機能チーム リードエンジニア を経験 • 2019年10月 某IP系 新規開発ゲームタイトル ◦ Go言語、Google Cloud Platform(GCP)、Kubernetes、etc. ◦ E.G.G. Japan(Expert of GCP for Gaming Japan)プログラム 修了 • 2022年3月 ゲーム事業部 → IRIAM事業部に異動 IRIAM事業部 エンジニアリング部 エンジニアリング第一グループ @kengo92i 経歴 Go+GCP+Kubernetesを活用したクラウドネイティブなゲームサーバ開発/運用事例, 2022/03/17, DeNA TechCon 2022 https://speakerdeck.com/dena_tech/yun-yong-shi-li-dena-techcon-2022 これが心理的安全性だったのか〜IRIAMのあったかい組織文化〜, 2023/03/02, DeNA TechCon 2023 https://speakerdeck.com/dena_tech/techcon2023-session17
  2. 6 インターネット オークション開始 1999 ショッピング モール開始 2002 モバイル オークション 「モバオク」開始

    2004 ゲーム & SNSサイト 「モバゲータウン」 開始 2006 ソーシャルゲーム 「怪盗ロワイヤル」 開始 2009 ライブ ストリーミング 事業開始 2013 オートモーティブ 事業開始 2015 東証マザーズ 上場 2005 東証一部上場 2007 プロ野球参入 2011 ヘルスケア 事業開始 2014 プロバスケット ボール クラブの承継 2018 HISTORY [ 沿革 ]
  3. 7 LIVE STREAMING GAME HEALTHCARE SPORTS 新領域 BUSINESS PORTFOLIO [

    事業ポートフォリオ ] オートモーティブ MEDICAL
  4. 8 DeNAの強み 技術・モノづくり / 組織・人材 / ホーム(横浜・神奈川) BUSINESS DEVELOPMENT [

    事業展開 ] エンターテインメント領域と社会課題領域の両軸を展開する
  5. 9 目次 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目)
  6. 10 目次 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目) 学びが 形になる!
  7. 12 高校生編「やりたいことをする」 1 高校1~3年 前半 陸上部 • 高校生活の80%くらいは陸上だった • 毎日走る、朝練で5時起きしてた気がする、えらい

    ゲーム • この時代はPSP全盛期?、皆んなが集まりモンハンをしていた • 協力して、一つの世界でモンスターを倒す楽しさ(協力プレイ) 高校3年 後半 友達とLEGOの動画作成 • LEGOのストップモーション動画にハマる(文化祭の延長 • 毎日、4, 5人のメンバーと共に放課後に作業する
  8. 15 大学生編「学びが形になるって楽しい」 • 元々「なにか」を作るのが好きだったので、授業で習ったことを元に手を動かしてた 1 基礎 個人 応用 複数人 学部生前半(B1~B2)

    • もくもく一人で物を作る/大学の部活動に取り組む 学部生後半(B3~B4) • 情報系の知識が付いてきてシステムの作り方がわかってきた • 一人で作るのではなく複数人でシステムを作ることが増えた 実践 チーム 大学院時代(M1~M2) • 授業で学ぶより実践する機会が増えた(研究/チーム開発/イベント) • プロジェクト開発を学ぶ機会があったので参加した(複数人での作り方) • 基礎→応用 • 個人→複数人 -大学生編の話-
  9. 17 学部生前半(B1~B2) 2 基礎 個人 • もくもく一人で物を作る/大学の部活動に取り組む • プログラミング言語の基礎 (変数代入、if文、for文、etc.)

    ◦ まず 1つの言語を使いこなせるように する • 授業で習ったことを実践する ◦ 大学の学び ≒ 大学の講義ではない(重要) • 困った時の「ググり方」を身につける ◦ 大抵うまくいかないので詰まった時に自己解決できるスキルが必須 この時期に身につけること
  10. 18 学部生前半(B1~B2) の大きな出来事 3 学業 部活 • 2回生の時に、バイトをやめることにした • お世話になってるトレーナーさんのアドバイス

    📝 「今江、バイトやめるってよ」 事件 💸1年間のバイト収入が「10万~20万」だった • 学業成績優秀者を取れば、10万もらえる • アーチェリーの資金を奨励金でまかなう 部活 学業 バイト この時の決断は、運命の分かれ道だった その後、この決断が後から効いてきます… 選択と集中
  11. 20 学部生後半(B3~B4) 4 応用 複数人 • 情報系の知識が付いてきてシステムの作り方がわかってきた • 一人で作るのではなく複数人でシステムを作ることが増えた •

    自分が興味ある分野のスキルを見つける・学ぶ ◦ 例: ゲーム(Unity)、Web(React, Vue.js)、インフラ(AWS, GCP, etc.)、など • 1人ではなく複数人で何か作った経験をしておくと良い ◦ GitHubなどに慣れておく、ソフトウェア工学の知識があるとベターです • 何かしらやりきった経験をしておく ◦ システム開発、部活動、研究、インターン、バイト、など。何か一つをやり切る。 この時期に身につけること
  12. 21 学部生後半(B3~B4) の大きな出来事 5 • 流石に、大学生でバイトせずにどうしたのか? 📝 「今江、バイトやめるってよ」 その後 💰

    学内の作品コンテストに投稿しまくった • 最終的に、図書券10万分ほど稼いだ 最終的にはバイトをするより、儲かってしまった “ “ 💵 4年目の部活動の全国優勝で学費が返ってきた • 最終年度の学費が半額分(70万)返ってきた • 大学院での軍資金になった 学業 部活
  13. 23 大学院生編「学びを実践して形にする」 • そもそも「大学院生」ってなんですか? 🤔 ◦ イメージ的には「大学5-6回生」みたいな感じ。 1 B1 B2

    B3 B4 M1 M2 学士卒 修士卒 +2年 理系は大学院への進学率も高いし、情報系の勉強にハマったのならおすすめ! この2年で 更に知識を付ける 研究できる
  14. 24 大学院生編「学びを実践して形にする」 2 • 学部時代に知識は付いたが、もう少し実践&学べることがあるな〜という状態だった 基礎 個人 応用 複数人 学部生後半(B3~B4)

    • 情報系の知識が付いてきてシステムの作り方がわかってきた • 一人で作るのではなく複数人でシステムを作ることが増えた 実践 チーム 大学院時代(M1~M2) • 授業で学ぶより実践する機会が増えた(研究/チーム開発/イベント) • プロジェクト開発を学ぶ機会があったので参加した(複数人での作り方) • 応用→実践 • 複数人→チーム -大学院生編の話- 一通り 学び終えた 学部生前半(B1~B2) • もくもく一人で物を作る/大学の部活動に取り組む
  15. 25 大学院生編「学びを実践して形にする」 3 実践 チーム 大学院時代(M1~M2) • 授業で学ぶより実践する機会が増えた(研究/チーム開発/イベント) • プロジェクト開発を学ぶ機会があったので参加した(複数人での作り方)

    チームでの 開発を学ぶ • これまで学んだことを元に論文を作る • 実践的な知識が身につく大学院生向けの授業 • 文部科学省の「情報技術人材育成プログラム」 この時の経験を元に
  16. 27 大学院生編「学びを実践して形にする」 5 • TeraCoder誕生秘話・・・ • 4回生の時に、第1回学内プロコン 開催 • 企画を受け継ぎ、更に本格的な大会を開催しようと企む

    • 研究室の先輩×2 を巻き込み、学内プロコン企画を推し進める 2013 2014 2015 2016 やるぞ-!! 第1回 第2回 第3回 第4回 3年間尽力した。 ※ B4 - M2 で3回 ・2013 HTMLのみの簡素なWebサイト ・2014 見た目だけ綺麗なハリボテWebアプリ ・2015〜 予算を貰ってWebアプリ開発した ※ プロコン = プログラミングコンテストの略 本格的なプロコンのためには、専用のシステムが必要になる マジか(笑) 作るか 専用のシステム 作りますか? つまり、この話って・・・ 草野球、皆でやりたいねー! じゃあ、球場 作らなあかんねー! 笑笑笑 大学から予算を取ってきたので、一人当たり10万ほど儲かっている
  17. 29 目次 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目) 大規模な ゲーム開発 を経験
  18. 31 ゲームを作るは「人の人生の一部を作る」 • 「最も手頃な過去の追憶体験」は「過去に遊んだゲーム」を体験すること • 学生時代に遊んだゲームは、学生時代の思い出の一つ 🎮 ゲーム • この時代はPSP全盛期?、皆んなが集まりモンハンをしていた

    • 協力して、一つの世界でモンスターを倒す楽しさ(協力プレイ) – 再掲 と 某有名 RPG 1 某有名 RPG 2 に携われた タイムスリップしたら過去の自分に自慢します 笑 運用中 新規
  19. 34 での苦労 • 単純にコミュニケーションコストが上がる • 全体に対して、各人が把握できる領域が狭くなる 1 チーム人数↑↑ • 全体像がわかる規模

    • お互いの作業内容がわかる • コミュニケーションに迷わない • 一人でカバーできない規模 • 作業領域が切り分けられている • 誰が何を知っているか分からない 学生時代 大規模な開発体制 それ、詳しくない 知ってるよー
  20. 35 での苦労 • 大規模システムのキャッチアップ(今まで経験したことのないコード量) • これまでの歴史が襲いかかる(知らないコード群) 1 僕たちの砂のお城 謎のピラミッド システム規模↑↑

    • 最初から自分達が作った • これまでの経緯がわかる • どこに何があるか知ってる • 過去の開発者が積み上げたもの • 歴史を知らないので、謎が多い • どこに何があるか分からない
  21. 36 大規模なチームをどうやって乗り越えたのか? 「誰が何をしているのかを知る」 1 チーム人数↑↑ システム規模↑↑ に困らないために に困らないために 「結局はコードリーディング力の問題」 •

    1on1 = 定期的に上司と部下が1対1で話し合う場 • メンター(教育係)さんに色々教えてもらい指標が出来た メンターとの 1on1 ミーティング 組織を知るとシステムも理解できる • システム設計(アーキテクチャ)は、組織構造を反映させたも のになる(コンウェイの法則) • 人に興味を持つと、自然とシステム理解も進む気がする • 処理のとっかかりを見つける • エディタ/IDEでのgrep力を上げる • ゲームの理解不足(=ドメイン知識※1を付ける) • デザインパターンなどの基礎知識(どこに何があるか推測できる) コードリーディングに必要な知識を付ける ※1 ドメイン知識とは、ある業界・業種に特化した事業の知見や情報のこと 質問力や状況整理力を鍛える • 一人で悩むと数時間かかったけど、聞いたら一瞬だった系 • 自力で解決することも大事だが、バランス感は大事 • 他人から必要な情報を吸い出す能力を身につけよう
  22. 37 ゲーム運用を通して学んだサービスマインドや心構え 2 1 2 3 • 何か実装・修正すると反応が見える • 常にユーザーに与える影響を意識して決める

    常に画面の向こうのユーザーを意識できるか? • 自分が思っていたこと通りに、ユーザーが喜んでくれているか? • 常にユーザーを意識できていても、感覚がズレていては意味がない 自分の感覚(予想)と、ユーザーの反応のズレ 一流の開発者は、一流のユーザーたれ • 遊んでないゲームに対して、真のサービスマインドは発揮できない • 自分の感覚(予想)を外さないためにも必要なこと サービスに対する意識、良いプロダクト 開発をするためには、現場のエンジニア も高いサービス理解が必要である的な? サービスマインドとは 🤔 技術力 x サービスマインド を兼ね備えるのが大事
  23. 39 ゲーム運用を通して学んだサービスマインドや心構え 2 3 一流の開発者は、一流のユーザーたれ • チーム配属後の「プレイング研修」での一節(当時の運営プロデューサーの方の格言) • ゲームをやり込んでこそ、見える世界があった •

    ゲームを続けることの大切さ、自分にとってゲームが辛くなった時こそ 続けるのが大切、何が面白くないのか?、どうすれば面白くなるのか たしかに。 もし、熱狂的なユーザーさんにあったときに、 「開発者が全く遊んでないと、熱を冷ましてしまいそう」と思った 一般のユーザーさんが、開発者にあった場合は、 「このゲームのことをなんでも知っている神様」 だと思って接してくるのでは? 私は、開発者だ。 ※ 影響されやすいので 3~4ヶ月後にエンドコンテンツを突破した
  24. 42 目次 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目) 世の中に 新しいもの を出す
  25. 44 新規プロダクトの立ち上げ経験を積む 1. 最新技術をフル活用して、モダンなシステム構築を経験 2. 幅広い専門チームと協力して大きなシステムを構築する 3. 外部発表の経験や新しいことを学ぶ機会を得る 項目 運用プロダクト

    新規プロダクト 技術 レガシー / LAMP環境※1 モダン / クラウド環境 メンバー構成 若手メイン (新卒~3年目が多い) 新卒/中途の比率 50:50 (シニアも多数所属) 整い具合 かなり効率化されてる (先人が道路整備してくれてた) もろもろ未整備 (道を切り拓かないとダメ) ▪ 環境の違い ※1 LAMP環境: Linux, Apache, MySQL, PHP(あるいはPerl, Python)の頭文字を取った技術セットのこと
  26. 45 最新技術をフル活用して、モダンなシステム構築を経験 1 • Go+GCP+Kubernetesをベースに、クラウドネイティブな技術スタックを使っている ※クラウドネイティブ: はじめからクラウドを利用する想定で設計されたシステムのこと、従来のシステムと区別する際にクラウドネイティブと呼ばれている。 言語 • サーバ

    : 内製フレームワーク(Go言語) • クライアント Unity (C#) • Protocol buffers, gRPC • REST API (JSON) 通信プロトコル CI/CD、管理ツール • CircleCI, Jenkins, ArgoCD • Vue.js (JavaScript) インフラ • コンテナ技術 Docker, Kubernetes • クラウドサービス (GCP) Google Kubernetes Engine(GKE), Cloud Spanner, Cloud Storage, Cloud MemoryStore, Cloud Pub/Sub, Operations(Cloud Logging & Monitoring), Cloud Load Balancing, Cloud DNS, etc. • Infrastructure as code Terraform This slide is not affiliated with or otherwise sponsored by CNCF.
  27. 47 外部発表の経験や新しいことを学ぶ機会を得る 3 ユーザーの声 事例発表 • 日本中・世界中のユーザーの声が見れる • 自分達の狙い通りだったか、喜ばれてるか? •

    時には長時間メンテでくたくたになったり... 作ったものの成果を発表する 作ったものの反応を見る • 世の中に新しいものを出すことは大変だが、その結果のインパクトも大きい https://speakerdeck.com/dena_tech/yun-yong-shi-li-dena-techcon-2022
  28. 49 外部発表の経験や新しいことを学ぶ機会を得る 3 学びの場 色々手探り • 招待制のGoogle Cloudさんの学習プログラム • 仕事で新しい知識が付けられて業務にも活きる

    作るための試行錯誤 作るための知識を得る • 新しい技術を採用しているので、方法論が確立 していない • 自分達でより良い方法を模索しながら進める • 新しい知識を付けていく、また自分達で色々試して課題に立ち向かうことが大切
  29. 50 目次 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目) 新しい領域 に チャレンジ
  30. 60 まとめ 学生時代(Webサービス/etc.) 1 • 部活動、物作り、ゲームなどやりたいことに熱中してた • 情報系の勉強は「学びが形になる」のが楽しかった • 何かを頑張ると次の何かに繋がってる感覚があった

    DeNA(ゲーム/運用) 2 • 学生時代と異なる大規模開発による苦労 • ゲーム運用を通して学んだサービスマインドや心構え • プロジェクトマネジメントやリーダー経験など DeNA(ゲーム/新規) 3 • 新規タイトルの立ち上げを経験する • これまでの開発経験を生かしたり、最新技術を使ったり • 外部発表の経験や新しいことを学ぶ機会を得られた IRIAM(ライブ配信) 4 • 新しい領域へのチャレンジ、DeNAとは異なる文化 • ゲーム開発の知見が活きる、点と点が繋がっていく感じ • 時代を切り開いていく感覚、毎日ドラマが起きている 2011/04 (大学入学) 2014/04 (院進) 2017/04 (1年目) 2019/10 (3年目) 2022/03 (6年目) 学びが 形になる! 新しい領域 に チャレンジ 世の中に 新しいもの を出す 大規模な ゲーム開発 を経験 今日の話が少しでも、今後のエンジニア人生の指標になれば幸いです!