Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サイバーエージェントのGitHub Copilot導入と 開発生産性
Search
Kurochan
September 12, 2023
Technology
45
42k
サイバーエージェントのGitHub Copilot導入と 開発生産性
【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発文化の現実
https://cyberagent.connpass.com/event/292982/
Kurochan
September 12, 2023
Tweet
Share
More Decks by Kurochan
See All by Kurochan
入門 電気通信事業者
kurochan
12
5.2k
AWS x さくらのクラウドのハイブリッドクラウドによる安価なフレッツ閉域網接続の実装
kurochan
9
5.1k
GoでTCP Proxyを実装してみよう
kurochan
1
840
サイバーエージェントの広告配信におけるIPoEトラフィックの概況
kurochan
0
390
スケールするというのはどういうことなのか
kurochan
14
4.5k
Cloudflare Zero Trustを利用したセキュアな開発環境へのアクセス手法の確立
kurochan
10
3.1k
セキュキャンを卒業してその後
kurochan
0
1.3k
サイバーエージェントの実践×実験Snowflake 導入の経緯から最新機能のトライアルまで / How Snowflake Is Used In CyberAgent - Go To the Future
kurochan
1
1k
入門Open Policy Agent: Policy as Codeを目指して / introduction-to-open-policy-agent
kurochan
0
550
Other Decks in Technology
See All in Technology
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
B2B SaaS × AI機能開発 〜テナント分離のパターン解説〜 / B2B SaaS x AI function development - Explanation of tenant separation pattern
oztick139
2
220
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
170
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
510
Security-JAWS【第35回】勉強会クラウドにおけるマルウェアやコンテンツ改ざんへの対策
4su_para
0
170
Can We Measure Developer Productivity?
ewolff
1
150
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
Featured
See All Featured
Visualization
eitanlees
145
15k
A designer walks into a library…
pauljervisheath
203
24k
Designing the Hi-DPI Web
ddemaree
280
34k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
How GitHub (no longer) Works
holman
310
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Producing Creativity
orderedlist
PRO
341
39k
Music & Morning Musume
bryan
46
6.2k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Transcript
サイ バ ーエー ジ ェントのGitHub Copilot導⼊と 開発⽣産性 株式会社サイバーエージェント CTO統括室
黒崎 優太 (@kuro_m 88 ) 【GitHub x サイバーエージェント共催】GitHub Copilotで変わる開発⽂化の現実
ࠇ࡚ ༏ଠ גࣜձࣾαΠόʔΤʔδΣϯτ AIࣄۀຊ෦ @kurochan @kuro_m88 αΠόʔΤʔδΣϯτ CTO౷ׅࣨ
普段の仕事 • AI事業本部にて⼩売企業のDXを⽀援をする事業をやっています • スマホアプリ開発 • データ分析基盤構築
インターネットゼミ • インターネットの勉強をするゼミ • 社内ゼミ制度 • サイバーエージェントの実験⽤ASであるAS 6 3 79
0 を運⽤しています
最近書いた記事 • サイバーエージェントのGitHub CopilotのAnalyticsデータを公開! 利⽤開始から約3ヶ⽉でエンジニアの⽣産性は向上したのか https://developers.cyberagent.co.jp/blog/archives/ 9
本⽇話すこと • サイバーエージェントとAI • GitHub Copilot全社導⼊まで • GitHub Copilot活⽤状況 •
開発⽣産性と向き合う
サイバーエージェントとAI
None
AI事業本部設⽴@2019年 https://www.cyberagent.co.jp/way/list/detail/id= 3
AI Lab • AI技術の活⽤に取り組む研究組織。2016年設⽴。 • Top 1 00 Global Companies
Leading in AI Researchにて⽇本4位、世界36位。 • 権威ある国際学会や論⽂誌において論⽂が多数採択。
AI Lab • 内製⽇本語LLMは130億パラメータまで開発を完了。プロダクト利⽤開始。 • 国内のAI技術発展に貢献するため68億パラメータのLLMを⼀般公開。
ChatGPTの事業活⽤ • 「ChatGPTオペレーション変⾰室」設⽴(4⽉上旬)
ChatGPTの事業活⽤ • マッチングアプリで「プロフィール添削AI」を提供(4⽉上旬)
ChatGPTの事業活⽤ • ⾃社LLM技術を利⽤した広告コピー⾃動⽣成(5⽉)
若⼿もAI事業を牽引 https://www.cyberagent.co.jp/way/list/detail/id= 8
GitHub Copilot全社導⼊まで
GitHub Copilotを使ったことがある社員が現れる • Slackのtimes(雑談チャネル)でCopilotを個⼈で使っている社員を発⾒ • 週末など、個⼈で使ってみている社員がじわじわ増えてきていた
⾃分のチームで使ってみてもらう(3⽉下旬) • まだ全社⽅針は定められていないが⼈を絞って複数部署で試験運⽤してみる • 肌感覚を得る & すぐにフィードバックしてCTO統括室で導⼊⽅針の判断 • ⾃分のチームであればコントロールが効きやすいという判断
Copilot以外にも⽣成AIツールの需要が(3⽉下旬) • 縛りすぎないが最低限は担保するガイドラインを急いで作る • CTO統括室+有志でガイドラインを策定して役員 & 法務レビュー • 各部署から協⼒者を募ることでおおよその⽅針を共有する
サイバーエージェントのセキュリティの考え⽅ • 体を守るために免疫は⼤切だが、免疫が強すぎるのも逆効果 https://www.cyberagent.co.jp/way/list/detail/id= 8
Copilot導⼊に向けて申請フローを整備する(4⽉上旬) • ⼤規模導⼊しているSaaS等(GitHub含)の請求管理をしているチームに これから起きることを相談 🚨🌊🏄 • GitHub Issueで申請してorg単位で有効化→個別のライセンス付与はorg ownerに権限委譲
⽣成AIガイドライン暫定ルールリリース!(4⽉中旬) • 各部署の有志の協⼒者のおかげでスピード感を持ってリリースできました • それぞれの部署の観点からの情報が集まってきたのがとてもよかった
⽣成AIガイドラインについて https://developers.cyberagent.co.jp/blog/archives/ 8
ガイドラインリリースに合わせてCopilot利⽤開始!(4⽉中旬) • 多くの社員の協⼒のおかげでスピード感を持って導⼊ができました🎉
GitHub Copilot活⽤状況
GitHub Copilot活⽤状況 • 以前の記事からさらにどう変化したのかもご紹介します! • 数値の注意 • Full Accept(Copilotの推薦をそのまま全て採⽤)のみの数字です。 •
VSCode以外の環境での利⽤状況は含まれていません。 • Copilot for Businessには個⼈のGitHubアカウントを紐づける利⽤形態のため、業務外 での利⽤のAnalyticsも⼀部含まれています。
GitHub Copilot活⽤状況(5/18-7/16)
GitHub Copilot活⽤促進 • 各部署で⾃主的に勉強会を実施 & 録画を全社共有
GitHub Copilot活⽤促進 • 各部署で⾃主的に勉強会を実施 & 録画を全社共有 • 半⽇で700回再⽣🎉 • 他部署も負けじと情報発信🔥
GitHub Copilot活⽤状況(7/17-9/4)
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 💻
⾔語別 • サイバーエージェントの 技術スタックが現れているかも
黒崎のCopilotの使い⽅ • SlackのAPIを使ったbotを書いていた • ドキュメントに載っていない知識を前提にしたコードを提⽰してくれた
黒崎のCopilotの使い⽅ • SlackのAPIを使ったbotを書いていた • たまに誤ったコードも推薦されるので注意は必要
プログラミング初学者のCopilotの使い⽅ • ビジネス職でプログラミングを勉強している社員 • Copilotでコードを推薦してもらう → Copilot Chatに質問をする のループ •
分かるまで聞き直す、説明に⽭盾があれば指摘する のループでプログラミングを学習する • 先輩(orエンジニア)に今更聞きたくても聞けない質問のハードルを下げる効果もあり
GitHub org別(7/17-9/4) • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している • GitHub org別のメトリクス • orgあたりの平均: 660
〜 910LoC / user
GitHub org別(7/17-9/4) • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している • GitHub org別のメトリクス • orgあたりの平均: 660
〜 910LoC / user
GitHub org別(7/17-9/4) • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している • GitHub org別のメトリクス • orgあたりの平均: 660
〜 910LoC / user
GitHub org別(7/17-9/4) • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している • GitHub org別のメトリクス • orgあたりの平均: 660
〜 910LoC / user • ⾚枠のorgの平均: 828 2 LoC / user
GitHub org別(7/17-9/4) • サイバーエージェントでは組織やプロダクト等の単位でorgを分割している • GitHub org別のメトリクス • orgあたりの平均: 660
〜 910LoC / user • ⾚枠のorgの平均: 828 2 LoC / user • 明らかに突出しているorgがある • 2⼈しか居ないのでユーザを特定して話を聞かせてもらってみた
話を聞いてみた
オンライン診療プラットフォーム「TOIRO美肌院」
オンライン診療プラットフォーム「TOIRO美肌院」 • 制作したもの • 広告⽤ランディングページ • LINEチャット • 予約管理システム •
Amazon Chimeを⽤いた通話機能 • 医師向けの専⽤ページ • 開発チーム • 2名 • 開発期間 • 4ヶ⽉
Copilotを活⽤したコーディングのポイント • 実装を始める前にコメントで実装内容を記述 • 50-70点くらいの品質のコードが⽣成されることが多い • ⽣成されるまで待つ! • 100点のコードを期待しない •
⽣成されたコードをベースに実装を拡張していく • できる限り⾃分で書かない • ⽣成されたコードがベースなので追加の推薦も期待しやすい(はず)
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント • 実装を始める前に参考にしたいコードをコメントとして貼っておく • 参考にしたいコードの下にそれっぽい変数名を定義する • ⽂脈が⾮常に⼤切なので必要な情報を明確に渡す
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Copilotを活⽤したコーディングのポイント
Chat GPTも活⽤する • よく使うプロンプトはクリップボードに
プロンプトの例
プロンプトのテンプレートをメンバに共有する • プロジェクトのドキュメントに記載して、メンバが活⽤することで チーム内のコードに統⼀感が⽣まれるとのこと • ⾶び道具的な使い⽅をしているのかと思ったが、とにかくCopilotやChat GPTにコードを書かせているだけだった • とはいえここまで数字に現れるとは思っていなかったので知⾒だった
開発⽣産性と向き合う
https://www.cyberagent.co.jp/way/list/detail/id= 5 開発⽣産性と開発体験の部署
⽣産性が上がると得られること • 作業量のXX%はAIツールの利⽤によって削減ができます🙋 • リリースサイクルが⾼速化されて1⽇あたりのリリース回数がYY回増えます🙋 • これまでの半分のチームサイズでサービス開発ができます🙋 • リリース後に発覚するバグの数がZ%減少しました☺
開発⽣産性と向き合う • 「⽣産性」だけを突き詰めていくとどうなるんだろう…?
「ムダ」から⽣まれるもの https://youtu.be/uN 6
技術は「いたずら」のような物から⽣まれる https://dnobori.cyber.ipa.go.jp/ppt/download/ 0 % 9
技術は「いたずら」のような物から⽣まれる https://dnobori.cyber.ipa.go.jp/ppt/download/ 0 % 9
技術は「いたずら」のような物から⽣まれる https://dnobori.cyber.ipa.go.jp/ppt/download/ 0 % 9
「作る経験はコピーできない。」
開発⽣産性と向き合う • ⽣成AIの活⽤でエンジニアの平均的な開発⽣産性はどんどん上がるはず。 • 短期的には⽣成AIの活⽤による⽣産性向上が武器になるはず。 • 中⻑期的にはそれが当たり前になるはず。 • ⼀⽅でソフトウェア開発は決まったものを⽣産する活動ではないはず。 •
⽣産性が向上した分をどこに投資するのか? • ソフトウェアエンジニアは何を⽣み出していくのか?
まとめ • サイバーエージェントがGitHub Copilotを導⼊するまでの流れ • スピード感とみんなの協⼒が⼤事! • GitHub Copilotを導⼊してどんな変化があったか •
メキメキ開発速度を上げている⼈も出はじめた! • 開発⽣産性との向き合い⽅ • ソフトウェアエンジニアとしてこの先⽣きのこるには… • つづきはパネルディスカッションで!
None