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

How GitHub Copilot Transforms Development Productivity

How GitHub Copilot Transforms Development Productivity

【ハイブリッド開催】GitHub Copilotで拓く開発生産性
https://timeedev.connpass.com/event/292962/
事例セッション「GitHub Copilotで開発生産性はどのように変わるのか」

Yuta Kurotaki

August 30, 2023
Tweet

More Decks by Yuta Kurotaki

Other Decks in Technology

Transcript

  1. 1
    GitHub Copilotで開発⽣産性はど
    のように変わるのか
    黒瀧 悠太 (Yuta Kurotaki)
    【ハイブリッド開催】GitHub Copilotで拓く開発⽣産性
    2023.08.30

    View Slide

  2. 2
    自己紹介
    SUZURI事業部 シニアエンジニアリングリード
    GMOインターネットグループ デベロッパーエキスパート
    黒瀧 悠太 Yuta Kurotaki
    SNSアカウント: @kurotaky
    ● ドラム
    ● Ruby コミュニティ
    ● ウェアラブルデバイスの研究

    View Slide

  3. 3
    CM
    「まじめにベンチャー。まじめにギーク。」~研究をしながら語る人編~GMOインターネットグループ
    https://www.youtube.com/watch?v=OU28_bYb27U

    View Slide

  4. GMOペパボについて
    4

    View Slide

  5. 5
    今年で20周年
    https://pepabo.com/20th/

    View Slide

  6. 6
    GMOペパボ株式会社

    View Slide

  7. 7
    事業セグメントと主⼒サービス

    View Slide

  8. GMOペパボとGitHub
    8

    View Slide

  9. GMOペパボとGitHub
    9
    • 2012年〜 github.com を利⽤
    • 2014年〜 GitHub Enterprise(GHES)を利⽤
    • 2016年〜 GHESとgithub.com/pepabo の併⽤
    GitHubの利⽤の歴史
    https://recruit.pepabo.com/partner/slide/pages/2017/06/01/github-enterprise-de-shi-shi-womotutoomosirokudekiru/

    View Slide

  10. GitHub Copilot導⼊に⾄った背景
    10

    View Slide

  11. AIしあおうぜ!
    GMOインターネットグループとしてのAI活⽤の推進
    11
    https://chatgpt.gmo.jp/
    https://www.gmo.jp/news/article/8441/

    View Slide

  12. GMOペパボとAI
    ⽣成AIを活⽤した機能開発や開発プロセスへの活⽤を進めてきた。
    • pyama86/slack-gpt を利⽤したSlack Botの活⽤
    • スリスリAIラボ テキストから画像⽣成
    • アイテムの説明⽂を⾃動で作成
    • 類似画像推薦機能
    • ⾃然⾔語⽣成モデル活⽤ガイドライン策定
    GMOペパボとして
    12
    https://tech.pepabo.com/2023/06/13/suzuri-similar-image-recommendation/

    View Slide

  13. 使ってみて変化したこと
    13

    View Slide

  14. GitHub Copilot 導⼊に⾄った背景
    14
    詳しくはテックブログで!
    https://tech.pepabo.com/2023/08/30/github-copilot-effects/

    View Slide

  15. Acceptance Rates & Line of Code Accepted
    Acceptance Rates & Line of Code Accepted
    15

    View Slide

  16. Acceptance Rates & Line of Code Accepted
    • 採⽤率 30.1%
    • トータルの⾏数は35,000⾏
    約1ヵ⽉で35,000⾏のコードを書く時間を削減!
    Acceptance Rates & Line of Code Accepted
    16

    View Slide

  17. Acceptance Rates
    • ペパボの開発ではPHP、Ruby、Go、
    TypeScriptがメイン⾔語
    • Pythonは主に機械学習関連の開発や
    データ基盤の開発に利⽤
    • PHPについては、PhpStormを利⽤して
    いるエンジニアが多いので実際の利⽤
    状況より少なくなっている
    • RubyのAcceptance Ratesが低い
    ⾔語ごとのAcceptance Rates
    17

    View Slide

  18. RubyのAcceptance Ratesについて
    “ Rubyは⾔語の表現⼒が⾼いためにCopilotの提案がプロダクトの規約や個⼈の好みに沿
    わないことが多いのかもしれません。”
    GitHub Copilotの導⼊によってペパボの開発⽣産性はどう変化したか より
    https://tech.pepabo.com/2023/08/30/github-copilot-effects/
    RubyのAcceptance Ratesが低い
    18

    View Slide

  19. Copilotを利⽤している開発環境
    Copilotを利⽤している開発環境
    19
    約8割がVSCode !

    View Slide

  20. デプロイ数の変化
    20
    1⽇あたりのデプロイ回数の変化

    View Slide

  21. Four Keys
    21
    Four Keys
    https://speakerdeck.com/udzura/pepabo-four-keys
    Four Keys を全サービスで定点観測しています

    View Slide

  22. 定性⾯でのデータ
    22

    View Slide

  23. 定性⾯でのデータ
    23
    • Rubyで書くときにAutocompletionの部分をCopilotでやってくれて便利
    • VSCode で10⾏くらい出してくれて、便利〜
    • よく分からないコードを説明してくれる
    • Copilot Chat でエラーの内容を説明してくれる、⽇本語にも変換してくれる
    • 結果的に変数などの命名をしっかりしようとなった。⼈間にも優しくなる
    • OSSライブラリのコードを解説してもらうのに便利
    • テストコードを書いてもらえて便利
    インタビューして聞いてみました (1)

    View Slide

  24. 定性⾯でのデータ
    • 途中まで⼊⼒して、少し補完を待つようになりました (というくらい便利)
    • 値の列挙とか型スイッチ( switch v := i.(type) )とかはかなり強い
    • という観点でASTが触りやすくなった
    • 平易に冗⻑に書く(過度な抽象化を避ける)テストコードなどは特に、実装にかかる
    時間が短縮された
    • ⼈間が分かりやすいコードは採⽤したくなる妥当なコードが⽣成されて、⼈間にわ
    かりづらいコードでは、その逆になるような感触がある
    • LLMがうまく⾃動⽣成してくれそうなコードを書こう、というマインドセットに変わった
    インタビューして聞いてみました (2)
    24

    View Slide

  25. 定性⾯でのデータ
    • コメントを書いて、待って、タブを押して、コメントを消すという開発が増えた
    • 適切に関数名書いたら⼤体思った通りに補完してくれる
    • 右クリックでRuboCopとかの修正してくれるのありがたい
    • テストの説明だけ書いたら内容全部考えてくれる
    • Copilot Chatによって、⽣産性爆上がりしました
    • 触る機会がなく知⾒が少なかった⾔語での実装で素早くプルリクを出せた
    • 沢⼭のtypeを持つobjectに対してtype毎にswitch-caseを⼤量に書く必要がある時
    にすでに実装済みの他のコードを参考に(?)バンバン補完出してくれてめちゃ体験良
    かったです
    インタビューして聞いてみました (3)
    25

    View Slide

  26. 定性⾯でのデータ
    続きは懇親会またはチャット欄で!
    インタビューして聞いてみました (4)
    26

    View Slide

  27. まとめ
    27

    View Slide

  28. まとめ
    28
    • 2つのサービスにおいてデプロイ数が向上しました
    • 今後は変更のリードタイムも⽐較してみる予定です
    • Acceptance Rates は約30%、約35,000⾏のコードを書く⼿間を削減
    • インタビューにおける定性⾯のデータからも⽣産性が上がったという意⾒が多数
    現状ではGitHub Copilotを導⼊して、⽣産性は上がったと考えています。
    今後も計測と評価を続けていきます!
    まとめ

    View Slide