$30 off During Our Annual Pro Sale. View Details »

サイバーエージェントのGitHub Copilot導入と 開発生産性

Kurochan
September 12, 2023

サイバーエージェントのGitHub Copilot導入と 開発生産性

【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発文化の現実
https://cyberagent.connpass.com/event/292982/

Kurochan

September 12, 2023
Tweet

More Decks by Kurochan

Other Decks in Technology

Transcript

  1. サイ
    バ
    ーエー
    ジ
    ェントのGitHub Copilot導⼊と


    開発⽣産性
    株式会社サイバーエージェント CTO統括室

    黒崎 優太 (@kuro_m
    88
    )
    【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発⽂化の現実

    View Slide

  2. ࠇ࡚ ༏ଠ
    גࣜձࣾαΠόʔΤʔδΣϯτ AIࣄۀຊ෦
    @kurochan
    @kuro_m88
    αΠόʔΤʔδΣϯτ CTO౷ׅࣨ

    View Slide

  3. 普段の仕事
    • AI事業本部にて⼩売企業のDXを⽀援をする事業をやっています


    • スマホアプリ開発


    • データ分析基盤構築

    View Slide

  4. インターネットゼミ
    • インターネットの勉強をするゼミ


    • 社内ゼミ制度


    • サイバーエージェントの実験⽤ASであるAS
    6
    3 79 0
    を運⽤しています

    View Slide

  5. 最近書いた記事
    • サイバーエージェントのGitHub CopilotのAnalyticsデータを公開!

    利⽤開始から約3ヶ⽉でエンジニアの⽣産性は向上したのか
    https://developers.cyberagent.co.jp/blog/archives/
    9

    View Slide

  6. 本⽇話すこと
    • サイバーエージェントとAI


    • GitHub Copilot全社導⼊まで


    • GitHub Copilot活⽤状況


    • 開発⽣産性と向き合う

    View Slide

  7. サイバーエージェントとAI

    View Slide

  8. View Slide

  9. AI事業本部設⽴@2019年
    https://www.cyberagent.co.jp/way/list/detail/id=
    3

    View Slide

  10. AI Lab
    • AI技術の活⽤に取り組む研究組織。2016年設⽴。


    • Top
    1 00
    Global Companies Leading in AI Researchにて⽇本4位、世界36位。


    • 権威ある国際学会や論⽂誌において論⽂が多数採択。

    View Slide

  11. AI Lab
    • 内製⽇本語LLMは130億パラメータまで開発を完了。プロダクト利⽤開始。


    • 国内のAI技術発展に貢献するため68億パラメータのLLMを⼀般公開。

    View Slide

  12. ChatGPTの事業活⽤
    • 「ChatGPTオペレーション変⾰室」設⽴(4⽉上旬)

    View Slide

  13. ChatGPTの事業活⽤
    • マッチングアプリで「プロフィール添削AI」を提供(4⽉上旬)

    View Slide

  14. ChatGPTの事業活⽤
    • ⾃社LLM技術を利⽤した広告コピー⾃動⽣成(5⽉)

    View Slide

  15. 若⼿もAI事業を牽引
    https://www.cyberagent.co.jp/way/list/detail/id=
    8

    View Slide

  16. GitHub Copilot全社導⼊まで

    View Slide

  17. GitHub Copilotを使ったことがある社員が現れる
    • Slackのtimes(雑談チャネル)でCopilotを個⼈で使っている社員を発⾒


    • 週末など、個⼈で使ってみている社員がじわじわ増えてきていた

    View Slide

  18. ⾃分のチームで使ってみてもらう(3⽉下旬)
    • まだ全社⽅針は定められていないが⼈を絞って複数部署で試験運⽤してみる


    • 肌感覚を得る & すぐにフィードバックしてCTO統括室で導⼊⽅針の判断


    • ⾃分のチームであればコントロールが効きやすいという判断

    View Slide

  19. Copilot以外にも⽣成AIツールの需要が(3⽉下旬)
    • 縛りすぎないが最低限は担保するガイドラインを急いで作る


    • CTO統括室+有志でガイドラインを策定して役員 & 法務レビュー


    • 各部署から協⼒者を募ることでおおよその⽅針を共有する

    View Slide

  20. サイバーエージェントのセキュリティの考え⽅
    • 体を守るために免疫は⼤切だが、免疫が強すぎるのも逆効果
    https://www.cyberagent.co.jp/way/list/detail/id=
    8

    View Slide

  21. Copilot導⼊に向けて申請フローを整備する(4⽉上旬)
    • ⼤規模導⼊しているSaaS等(GitHub含)の請求管理をしているチームに

    これから起きることを相談 🚨🌊🏄


    • GitHub Issueで申請してorg単位で有効化→個別のライセンス付与はorg ownerに権限委譲

    View Slide

  22. ⽣成AIガイドライン暫定ルールリリース!(4⽉中旬)
    • 各部署の有志の協⼒者のおかげでスピード感を持ってリリースできました


    • それぞれの部署の観点からの情報が集まってきたのがとてもよかった

    View Slide

  23. ⽣成AIガイドラインについて
    https://developers.cyberagent.co.jp/blog/archives/
    8

    View Slide

  24. ガイドラインリリースに合わせてCopilot利⽤開始!(4⽉中旬)
    • 多くの社員の協⼒のおかげでスピード感を持って導⼊ができました🎉

    View Slide

  25. GitHub Copilot活⽤状況

    View Slide

  26. GitHub Copilot活⽤状況
    • 以前の記事からさらにどう変化したのかもご紹介します!


    • 数値の注意


    • Full Accept(Copilotの推薦をそのまま全て採⽤)のみの数字です。


    • VSCode以外の環境での利⽤状況は含まれていません。


    • Copilot for Businessには個⼈のGitHubアカウントを紐づける利⽤形態のため、業務外
    での利⽤のAnalyticsも⼀部含まれています。

    View Slide

  27. GitHub Copilot活⽤状況(5/18-7/16)

    View Slide

  28. GitHub Copilot活⽤促進
    • 各部署で⾃主的に勉強会を実施 & 録画を全社共有

    View Slide

  29. GitHub Copilot活⽤促進
    • 各部署で⾃主的に勉強会を実施 & 録画を全社共有


    • 半⽇で700回再⽣🎉


    • 他部署も負けじと情報発信🔥

    View Slide

  30. GitHub Copilot活⽤状況(7/17-9/4)

    View Slide

  31. GitHub Copilot活⽤状況
    • ユーザ数の変化


    • 500ユーザ以上 → 800ユーザ以上: 60⽇で1.6倍に増加 ⤴


    • 推薦を受け⼊れたコードの⾏数



    3
    .
    2
    K LoC/day →
    6
    .
    0
    K LoC/day:
    6 0
    ⽇で1.9倍に増加 ⤴


    • 計測開始以降受け⼊れたコードの⾏数



    49 0
    .
    4
    K LoC /
    1 10
    day 💻

    View Slide

  32. ⾔語別
    • サイバーエージェントの

    技術スタックが現れているかも

    View Slide

  33. 黒崎のCopilotの使い⽅
    • SlackのAPIを使ったbotを書いていた


    • ドキュメントに載っていない知識を前提にしたコードを提⽰してくれた

    View Slide

  34. 黒崎のCopilotの使い⽅
    • SlackのAPIを使ったbotを書いていた


    • たまに誤ったコードも推薦されるので注意は必要

    View Slide

  35. プログラミング初学者のCopilotの使い⽅
    • ビジネス職でプログラミングを勉強している社員


    • Copilotでコードを推薦してもらう → Copilot Chatに質問をする のループ


    • 分かるまで聞き直す、説明に⽭盾があれば指摘する のループでプログラミングを学習する


    • 先輩(orエンジニア)に今更聞きたくても聞けない質問のハードルを下げる効果もあり

    View Slide

  36. GitHub org別(7/17-9/4)
    • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している


    • GitHub org別のメトリクス


    • orgあたりの平均: 660 〜 910LoC / user

    View Slide

  37. GitHub org別(7/17-9/4)
    • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している


    • GitHub org別のメトリクス


    • orgあたりの平均: 660 〜 910LoC / user

    View Slide

  38. GitHub org別(7/17-9/4)
    • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している


    • GitHub org別のメトリクス


    • orgあたりの平均: 660 〜 910LoC / user

    View Slide

  39. GitHub org別(7/17-9/4)
    • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している


    • GitHub org別のメトリクス


    • orgあたりの平均: 660 〜 910LoC / user


    • ⾚枠のorgの平均:
    828 2
    LoC / user

    View Slide

  40. GitHub org別(7/17-9/4)
    • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している


    • GitHub org別のメトリクス


    • orgあたりの平均: 660 〜 910LoC / user


    • ⾚枠のorgの平均:
    828 2
    LoC / user


    • 明らかに突出しているorgがある


    • 2⼈しか居ないのでユーザを特定して話を聞かせてもらってみた

    View Slide

  41. 話を聞いてみた

    View Slide

  42. オンライン診療プラットフォーム「TOIRO美肌院」

    View Slide

  43. オンライン診療プラットフォーム「TOIRO美肌院」
    • 制作したもの


    • 広告⽤ランディングページ


    • LINEチャット


    • 予約管理システム


    • Amazon Chimeを⽤いた通話機能


    • 医師向けの専⽤ページ


    • 開発チーム


    • 2名


    • 開発期間


    • 4ヶ⽉

    View Slide

  44. Copilotを活⽤したコーディングのポイント
    • 実装を始める前にコメントで実装内容を記述


    • 50-70点くらいの品質のコードが⽣成されることが多い


    • ⽣成されるまで待つ!


    • 100点のコードを期待しない


    • ⽣成されたコードをベースに実装を拡張していく


    • できる限り⾃分で書かない


    • ⽣成されたコードがベースなので追加の推薦も期待しやすい(はず)

    View Slide

  45. Copilotを活⽤したコーディングのポイント

    View Slide

  46. Copilotを活⽤したコーディングのポイント

    View Slide

  47. Copilotを活⽤したコーディングのポイント

    View Slide

  48. Copilotを活⽤したコーディングのポイント

    View Slide

  49. Copilotを活⽤したコーディングのポイント
    • 実装を始める前に参考にしたいコードをコメントとして貼っておく


    • 参考にしたいコードの下にそれっぽい変数名を定義する


    • ⽂脈が⾮常に⼤切なので必要な情報を明確に渡す

    View Slide

  50. Copilotを活⽤したコーディングのポイント

    View Slide

  51. Copilotを活⽤したコーディングのポイント

    View Slide

  52. Copilotを活⽤したコーディングのポイント

    View Slide

  53. Copilotを活⽤したコーディングのポイント

    View Slide

  54. Copilotを活⽤したコーディングのポイント

    View Slide

  55. Chat GPTも活⽤する
    • よく使うプロンプトはクリップボードに

    View Slide

  56. プロンプトの例

    View Slide

  57. プロンプトのテンプレートをメンバに共有する
    • プロジェクトのドキュメントに記載して、メンバが活⽤することで

    チーム内のコードに統⼀感が⽣まれるとのこと


    • ⾶び道具的な使い⽅をしているのかと思ったが、とにかくCopilotやChat
    GPTにコードを書かせているだけだった


    • とはいえここまで数字に現れるとは思っていなかったので知⾒だった

    View Slide

  58. 開発⽣産性と向き合う

    View Slide

  59. https://www.cyberagent.co.jp/way/list/detail/id=
    5
    開発⽣産性と開発体験の部署

    View Slide

  60. ⽣産性が上がると得られること
    • 作業量のXX%はAIツールの利⽤によって削減ができます🙋


    • リリースサイクルが⾼速化されて1⽇あたりのリリース回数がYY回増えます🙋


    • これまでの半分のチームサイズでサービス開発ができます🙋


    • リリース後に発覚するバグの数がZ%減少しました☺

    View Slide

  61. 開発⽣産性と向き合う
    • 「⽣産性」だけを突き詰めていくとどうなるんだろう…?

    View Slide

  62. 「ムダ」から⽣まれるもの
    https://youtu.be/uN
    6

    View Slide

  63. 技術は「いたずら」のような物から⽣まれる
    https://dnobori.cyber.ipa.go.jp/ppt/download/
    0
    %
    9

    View Slide

  64. 技術は「いたずら」のような物から⽣まれる
    https://dnobori.cyber.ipa.go.jp/ppt/download/
    0
    %
    9

    View Slide

  65. 技術は「いたずら」のような物から⽣まれる
    https://dnobori.cyber.ipa.go.jp/ppt/download/
    0
    %
    9

    View Slide

  66. 「作る経験はコピーできない。」

    View Slide

  67. 開発⽣産性と向き合う
    • ⽣成AIの活⽤でエンジニアの平均的な開発⽣産性はどんどん上がるはず。


    • 短期的には⽣成AIの活⽤による⽣産性向上が武器になるはず。


    • 中⻑期的にはそれが当たり前になるはず。


    • ⼀⽅でソフトウェア開発は決まったものを⽣産する活動ではないはず。


    • ⽣産性が向上した分をどこに投資するのか?


    • ソフトウェアエンジニアは何を⽣み出していくのか?

    View Slide

  68. まとめ
    • サイバーエージェントがGitHub Copilotを導⼊するまでの流れ


    • スピード感とみんなの協⼒が⼤事!


    • GitHub Copilotを導⼊してどんな変化があったか


    • メキメキ開発速度を上げている⼈も出はじめた!


    • 開発⽣産性との向き合い⽅


    • ソフトウェアエンジニアとしてこの先⽣きのこるには…


    • つづきはパネルディスカッションで!

    View Slide

  69. View Slide