Slide 1

Slide 1 text

Sansan株式会社 部署 名前 「できる!」を増やす GitHub Copilot活⽤法 Sansan技術本部 Sansan技術本部 技術本部 研究開発部 SocSci Group 前嶋直樹

Slide 2

Slide 2 text

前嶋 直樹 Sansan株式会社 技術本部 研究開発部 SocSci Group 研究員 - 東京⼤学⼤学院⼈⽂社会系研究科博⼠課程単位取得満期退学 - 当時の専⾨分野は社会学、特に社会ネットワーク分析 - 2018年に社会科学系データサイエンティストとして⼊社 - 現在は"Sansan Labs"の開発に従事

Slide 3

Slide 3 text

- Sansanに蓄積したビジネスの接点にまつわるデータがさまざまな切り⼝で分析・可視化される実験的 な機能を、いち早く利⽤できるサービス。 - 2022年7⽉から2024年4⽉までの間に、計25個のWebアプリケーションをリリース(下図はその⼀部)。 - 企画からリリースまでのリードタイムは2週間を⽬標としており、⾼い⽣産性を追及している。 Sansan Labs

Slide 4

Slide 4 text

GitHub Copilotの意義を「発達の最近接領域」概念で理解する Vygotsky, L. S., & Cole, M. (1978). Mind in society: Development of higher psychological processes. Harvard university press. 発 達 例: ・漢字の1画⽬だけ書いてあげる ・逆上がりで後ろから押す ・⼦ども同⼠のごっこ遊び まだ達成不可能な領域 ⼦どもが独⼒で達成可能な領域 ⼤⼈の⽀援や年上の仲間(先輩)との協⼒で 達成可能な領域 =発達の最近接領域 (ZPD, Zone of Proximal Development)

Slide 5

Slide 5 text

開発者に例えると… Vygotsky, L. S., & Cole, M. (1978). Mind in society: Development of higher psychological processes. Harvard university press. 熟 達 化 しかし… ・⼈の時間は貴重な資源 ・聞く能⼒に個⼈差 ・⽂化醸成を要する 開発者が独⼒で達成可能な領域 ペアプロやコードレビューなどを通して 同僚やシニアエンジニアとの協⼒で達成可 能な領域 まだ達成不可能な領域

Slide 6

Slide 6 text

GitHub Copilot登場以後 Vygotsky, L. S., & Cole, M. (1978). Mind in society: Development of higher psychological processes. Harvard university press. 熟 達 化 ・⼈の時間は貴重な資源 ・聞く能⼒に個⼈差 ・⽂化醸成を要する まだ達成不可能な領域 開発者が独⼒で達成可能な領域 熟 達 化 ペアプロやコードレビューなどを通して 同僚やシニアエンジニアとの協⼒で達成 可能な領域 ・⽂章(プロンプト)さえ書ければよい ・24時間365⽇いつでも聞ける GitHub Copilotの⽀援で達成可能な領域 プロジェクト固有のドメイン知識が必要な部分の相談など、 より本質的なところに同僚とのコラボレーションを使えるように!

Slide 7

Slide 7 text

「できる!」を増やすという観点からの活⽤事例

Slide 8

Slide 8 text

- チーム内のコードレビューに回す前に⼤きな問題点を潰しておく。 - ⾃分では気付かなかった視点が得られることがあり、開発⼒の向上にも寄与する。 活⽤法①:初⼿で「何か問題ある?」と聞く

Slide 9

Slide 9 text

#fileを使うとcontextに与えたいファイルを指定可能 変更内容の解説やさらに修正すべき点の提案などから、 コードレビュー時の参考情報として活⽤できる。 活⽤法②:diffを解析・解説してもらう 変更

Slide 10

Slide 10 text

- 例: EDAを⾏う時はR(tidyverse)で書き、同じロジックをPython(pandas)で書き直す。 - あくまで⾃分が書いたコードをベースにして別⾔語の作法を学ぶことができるため、学習効果が⾼い。 活⽤法③:トランスパイラとして使い、未知の世界を覗く Rで書かれたスクリプト

Slide 11

Slide 11 text

- 「とりあえず⾛り出してみたのはいいものの、全体的にコードが取っ散らかってきた…」 - 適⽤可能なデザインパターンを提案&コード例の出⼒をお願いする。 - ここでも、⾃分の実装をに即した形で、適切なデザインパターンを学ぶことができる。 活⽤法④:最適なデザインパターンを提案してもらう

Slide 12

Slide 12 text

No content