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

How GitHub Copilot Transforms Development Produ...

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. 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/
  2. GMOペパボとAI ⽣成AIを活⽤した機能開発や開発プロセスへの活⽤を進めてきた。 • pyama86/slack-gpt を利⽤したSlack Botの活⽤ • スリスリAIラボ テキストから画像⽣成 •

    アイテムの説明⽂を⾃動で作成 • 類似画像推薦機能 • ⾃然⾔語⽣成モデル活⽤ガイドライン策定 GMOペパボとして 12 https://tech.pepabo.com/2023/06/13/suzuri-similar-image-recommendation/
  3. Acceptance Rates & Line of Code Accepted • 採⽤率 30.1%

    • トータルの⾏数は35,000⾏ 約1ヵ⽉で35,000⾏のコードを書く時間を削減! Acceptance Rates & Line of Code Accepted 16
  4. Acceptance Rates • ペパボの開発ではPHP、Ruby、Go、 TypeScriptがメイン⾔語 • Pythonは主に機械学習関連の開発や データ基盤の開発に利⽤ • PHPについては、PhpStormを利⽤して

    いるエンジニアが多いので実際の利⽤ 状況より少なくなっている • RubyのAcceptance Ratesが低い ⾔語ごとのAcceptance Rates 17
  5. 定性⾯でのデータ 23 • Rubyで書くときにAutocompletionの部分をCopilotでやってくれて便利 • VSCode で10⾏くらい出してくれて、便利〜 • よく分からないコードを説明してくれる •

    Copilot Chat でエラーの内容を説明してくれる、⽇本語にも変換してくれる • 結果的に変数などの命名をしっかりしようとなった。⼈間にも優しくなる • OSSライブラリのコードを解説してもらうのに便利 • テストコードを書いてもらえて便利 インタビューして聞いてみました (1)
  6. 定性⾯でのデータ • 途中まで⼊⼒して、少し補完を待つようになりました (というくらい便利) • 値の列挙とか型スイッチ( switch v := i.(type)

    )とかはかなり強い • という観点でASTが触りやすくなった • 平易に冗⻑に書く(過度な抽象化を避ける)テストコードなどは特に、実装にかかる 時間が短縮された • ⼈間が分かりやすいコードは採⽤したくなる妥当なコードが⽣成されて、⼈間にわ かりづらいコードでは、その逆になるような感触がある • LLMがうまく⾃動⽣成してくれそうなコードを書こう、というマインドセットに変わった インタビューして聞いてみました (2) 24
  7. 定性⾯でのデータ • コメントを書いて、待って、タブを押して、コメントを消すという開発が増えた • 適切に関数名書いたら⼤体思った通りに補完してくれる • 右クリックでRuboCopとかの修正してくれるのありがたい • テストの説明だけ書いたら内容全部考えてくれる •

    Copilot Chatによって、⽣産性爆上がりしました • 触る機会がなく知⾒が少なかった⾔語での実装で素早くプルリクを出せた • 沢⼭のtypeを持つobjectに対してtype毎にswitch-caseを⼤量に書く必要がある時 にすでに実装済みの他のコードを参考に(?)バンバン補完出してくれてめちゃ体験良 かったです インタビューして聞いてみました (3) 25
  8. まとめ 28 • 2つのサービスにおいてデプロイ数が向上しました • 今後は変更のリードタイムも⽐較してみる予定です • Acceptance Rates は約30%、約35,000⾏のコードを書く⼿間を削減

    • インタビューにおける定性⾯のデータからも⽣産性が上がったという意⾒が多数 現状ではGitHub Copilotを導⼊して、⽣産性は上がったと考えています。 今後も計測と評価を続けていきます! まとめ