Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 GitHub Copilotで開発⽣産性はど のように変わるのか 黒瀧 悠太 (Yuta Kurotaki) 【ハイブリッド開催】GitHub Copilotで拓く開発⽣産性 2023.08.30
Slide 2
Slide 2 text
2 自己紹介 SUZURI事業部 シニアエンジニアリングリード GMOインターネットグループ デベロッパーエキスパート 黒瀧 悠太 Yuta Kurotaki SNSアカウント: @kurotaky ● ドラム ● Ruby コミュニティ ● ウェアラブルデバイスの研究
Slide 3
Slide 3 text
3 CM 「まじめにベンチャー。まじめにギーク。」~研究をしながら語る人編~GMOインターネットグループ https://www.youtube.com/watch?v=OU28_bYb27U
Slide 4
Slide 4 text
GMOペパボについて 4
Slide 5
Slide 5 text
5 今年で20周年 https://pepabo.com/20th/
Slide 6
Slide 6 text
6 GMOペパボ株式会社
Slide 7
Slide 7 text
7 事業セグメントと主⼒サービス
Slide 8
Slide 8 text
GMOペパボとGitHub 8
Slide 9
Slide 9 text
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/
Slide 10
Slide 10 text
GitHub Copilot導⼊に⾄った背景 10
Slide 11
Slide 11 text
AIしあおうぜ! GMOインターネットグループとしてのAI活⽤の推進 11 https://chatgpt.gmo.jp/ https://www.gmo.jp/news/article/8441/
Slide 12
Slide 12 text
GMOペパボとAI ⽣成AIを活⽤した機能開発や開発プロセスへの活⽤を進めてきた。 • pyama86/slack-gpt を利⽤したSlack Botの活⽤ • スリスリAIラボ テキストから画像⽣成 • アイテムの説明⽂を⾃動で作成 • 類似画像推薦機能 • ⾃然⾔語⽣成モデル活⽤ガイドライン策定 GMOペパボとして 12 https://tech.pepabo.com/2023/06/13/suzuri-similar-image-recommendation/
Slide 13
Slide 13 text
使ってみて変化したこと 13
Slide 14
Slide 14 text
GitHub Copilot 導⼊に⾄った背景 14 詳しくはテックブログで! https://tech.pepabo.com/2023/08/30/github-copilot-effects/
Slide 15
Slide 15 text
Acceptance Rates & Line of Code Accepted Acceptance Rates & Line of Code Accepted 15
Slide 16
Slide 16 text
Acceptance Rates & Line of Code Accepted • 採⽤率 30.1% • トータルの⾏数は35,000⾏ 約1ヵ⽉で35,000⾏のコードを書く時間を削減! Acceptance Rates & Line of Code Accepted 16
Slide 17
Slide 17 text
Acceptance Rates • ペパボの開発ではPHP、Ruby、Go、 TypeScriptがメイン⾔語 • Pythonは主に機械学習関連の開発や データ基盤の開発に利⽤ • PHPについては、PhpStormを利⽤して いるエンジニアが多いので実際の利⽤ 状況より少なくなっている • RubyのAcceptance Ratesが低い ⾔語ごとのAcceptance Rates 17
Slide 18
Slide 18 text
RubyのAcceptance Ratesについて “ Rubyは⾔語の表現⼒が⾼いためにCopilotの提案がプロダクトの規約や個⼈の好みに沿 わないことが多いのかもしれません。” GitHub Copilotの導⼊によってペパボの開発⽣産性はどう変化したか より https://tech.pepabo.com/2023/08/30/github-copilot-effects/ RubyのAcceptance Ratesが低い 18
Slide 19
Slide 19 text
Copilotを利⽤している開発環境 Copilotを利⽤している開発環境 19 約8割がVSCode !
Slide 20
Slide 20 text
デプロイ数の変化 20 1⽇あたりのデプロイ回数の変化
Slide 21
Slide 21 text
Four Keys 21 Four Keys https://speakerdeck.com/udzura/pepabo-four-keys Four Keys を全サービスで定点観測しています
Slide 22
Slide 22 text
定性⾯でのデータ 22
Slide 23
Slide 23 text
定性⾯でのデータ 23 • Rubyで書くときにAutocompletionの部分をCopilotでやってくれて便利 • VSCode で10⾏くらい出してくれて、便利〜 • よく分からないコードを説明してくれる • Copilot Chat でエラーの内容を説明してくれる、⽇本語にも変換してくれる • 結果的に変数などの命名をしっかりしようとなった。⼈間にも優しくなる • OSSライブラリのコードを解説してもらうのに便利 • テストコードを書いてもらえて便利 インタビューして聞いてみました (1)
Slide 24
Slide 24 text
定性⾯でのデータ • 途中まで⼊⼒して、少し補完を待つようになりました (というくらい便利) • 値の列挙とか型スイッチ( switch v := i.(type) )とかはかなり強い • という観点でASTが触りやすくなった • 平易に冗⻑に書く(過度な抽象化を避ける)テストコードなどは特に、実装にかかる 時間が短縮された • ⼈間が分かりやすいコードは採⽤したくなる妥当なコードが⽣成されて、⼈間にわ かりづらいコードでは、その逆になるような感触がある • LLMがうまく⾃動⽣成してくれそうなコードを書こう、というマインドセットに変わった インタビューして聞いてみました (2) 24
Slide 25
Slide 25 text
定性⾯でのデータ • コメントを書いて、待って、タブを押して、コメントを消すという開発が増えた • 適切に関数名書いたら⼤体思った通りに補完してくれる • 右クリックでRuboCopとかの修正してくれるのありがたい • テストの説明だけ書いたら内容全部考えてくれる • Copilot Chatによって、⽣産性爆上がりしました • 触る機会がなく知⾒が少なかった⾔語での実装で素早くプルリクを出せた • 沢⼭のtypeを持つobjectに対してtype毎にswitch-caseを⼤量に書く必要がある時 にすでに実装済みの他のコードを参考に(?)バンバン補完出してくれてめちゃ体験良 かったです インタビューして聞いてみました (3) 25
Slide 26
Slide 26 text
定性⾯でのデータ 続きは懇親会またはチャット欄で! インタビューして聞いてみました (4) 26
Slide 27
Slide 27 text
まとめ 27
Slide 28
Slide 28 text
まとめ 28 • 2つのサービスにおいてデプロイ数が向上しました • 今後は変更のリードタイムも⽐較してみる予定です • Acceptance Rates は約30%、約35,000⾏のコードを書く⼿間を削減 • インタビューにおける定性⾯のデータからも⽣産性が上がったという意⾒が多数 現状ではGitHub Copilotを導⼊して、⽣産性は上がったと考えています。 今後も計測と評価を続けていきます! まとめ