Slide 1

Slide 1 text

新しいチームにジョインした私 が思う生成 AIを使って 良かったこと・悪かったこと やまぐち(@hudebakononaka)

Slide 2

Slide 2 text

生成AIを どう使うのが失敗  で 生成AIを どう使うと良かった か の話です。 ※めちゃくちゃ当たり前のことをさも私だけの気づきかのように話します。

Slide 3

Slide 3 text

結論

Slide 4

Slide 4 text

生成AIを使って良かったこと・悪かったこと ● 悪かったこと 入社~4ヶ月の生成 AI好きの若手エンジニアが そこそこの規模感のプロダクトの使ったことない言語の 開発タスクを生成 AIに委託する はア ンチパターンだった ● 良かったこと 私のような若手エンジニアには生成 AIは、 現状開発生産性をあげるための 自己成長を促す ことに使うのが良さそう!

Slide 5

Slide 5 text

私のスペックを簡単に ※今回の話をするのに必要なので...

Slide 6

Slide 6 text

やまぐち(@hudebakonosoto) 2020/4 ~ 新卒 2022/7 ~ 2社目 2025/3/1~ SmartHRでプロダクトエンジニア ● メインでは フロントエンドエンジニア として活動 ● 前職ではかなり ガッツリLLMアプリ開発 をしてた ● 経験あるフレームワーク ○ フロントエンド: React+Next.js(TypeScript) ○ バックエンド: NestJS(TypeScript), Spring(Java)あたり

Slide 7

Slide 7 text

やまぐち(@hudebakonosoto) 2025/3/1~ SmartHRでプロダクトエンジニア ● SmartHRではフロントエンドもバックエンドもどっちもやる ● 最近は頑張ってバックエンド にも携わってる

Slide 8

Slide 8 text

チームにJOINしてかなり丁寧なオンボーディング も 受けた!! 使ったことないRubyとRailsの勉強もAIと一緒に 一通り終えた! これで開発に貢献できそうだ!

Slide 9

Slide 9 text

開発だけでなくて 私が今のチームに貢献できることって なんだろう?

Slide 10

Slide 10 text

やまぐち(@hudebakonosoto) 2020/4 ~ 新卒 2022/7 ~ 2社目 2025/3/1~ SmartHRでプロダクトエンジニア ● メインでは フロントエンドエンジニア として活動 ● 前職ではかなり ガッツリLLMアプリ開発 をしてた ● 経験あるフレームワーク ○ フロントエンド: React+Next.js(TypeScript) ○ バックエンド: NestJS(TypeScript), Spring(Java)あたり

Slide 11

Slide 11 text

そうだ! 開発への生成AIの推進をするぞー!

Slide 12

Slide 12 text

そのためには自分もどんどん生成 AI使って いくぞ!!!

Slide 13

Slide 13 text

そのためには自分もどんどん生成 AI使って いくぞ!!!

Slide 14

Slide 14 text

そして、 積極的に開発は AIへ...

Slide 15

Slide 15 text

その結果...

Slide 16

Slide 16 text

最悪のPRを作ることが多々あった .... ※チームの皆さんはかなり丁寧な FBを下さいました。それだけが救いでした。 よくないミスの連発 ● 粗末なミス・不要なコードに対しての指摘 ● 考慮不足なコードが散見 ● そもそも間違ったコード 場合によってはレビューの結果書き直すなどもあった。

Slide 17

Slide 17 text

なぜこうなった ...

Slide 18

Slide 18 text

要因を一言で ...

Slide 19

Slide 19 text

私の開発コンテキストが貧弱 す ぎた ※もちろん他にも要因は色々とありますが、ここでは省きます。

Slide 20

Slide 20 text

開発コンテキスト 大体開発に関わる知識を総じて開発コンテキストと言ってます。 ● Ruby/Ruby on Railsなどのプログラミング知識 ● 使用可能なクラスモジュール自体の知識 ● 既存機能の知識 ● 別プロダクトとの関係性 etc

Slide 21

Slide 21 text

丁寧なオンボーディングを 受けたのでは?

Slide 22

Slide 22 text

知識が認知的段階で止まってしまっていた 積極的に生成 AIにタスクを委託することで ほとんどの知識は 認知的段階 で止まり、 完全に考慮に含めることができるものにはならなかった。 出典:Felienne Hermans『プログラマー脳 ――優れたプログラマーになるための認知科学に基づくアプローチ』 p.199, 図10.4

Slide 23

Slide 23 text

開発コンテキスト 大体開発に関わる知識を総じて開発コンテキストと言ってます。 ● Ruby/Ruby on Railsなどのプログラミング知識 ● 使用可能なクラスモジュール自体の知識 ● 既存機能の知識 ● 別プロダクトとの関係性 etc

Slide 24

Slide 24 text

知識が認知的段階で止まってしまっていた その結果、 レビュー負荷がかかりすぎて うまく生成された コードのレビューができない。 ※考慮不足がでたり、不要なコードが必要に見えたり ... 出典:Felienne Hermans『プログラマー脳 ――優れたプログラマーになるための認知科学に基づくアプローチ』 p.199, 図10.4

Slide 25

Slide 25 text

私のような若手のエンジニアが 生成AIに開発タスクを委託する のはアンチパターン

Slide 26

Slide 26 text

私のような?

Slide 27

Slide 27 text

やまぐち(@hudebakonosoto) 2020/4 ~ 新卒 2022/7 ~ 2社目 2025/3/1~ SmartHRでプロダクトエンジニア ● メインでは フロントエンドエンジニア として活動 ● 前職ではかなり ガッツリLLMアプリ開発 をしてた ● 経験あるフレームワーク ○ フロントエンド: React+Next.js(TypeScript) ○ バックエンド: NestJS(TypeScript), Spring(Java)あたり

Slide 28

Slide 28 text

「私のような」をもう少し具体的に ● 転職して~4ヶ月で定着 ● 今まで使用したことがない言語を使用する ● ほどほどに規模感のあるプロダクトの開発に 携わる ● 得意な言語の定着率が右表の具体的操作 期〜形式操作期にある。 ● 生成AIに関してはほどほどに知識がある 出典:Felienne Hermans『プログラマー脳 ――優れたプログラマーになるため の認知科学に基づくアプローチ』 p.247 表13.2

Slide 29

Slide 29 text

私のような若手のエンジニアが 生成AIに開発タスクを委託する のはアンチパターン

Slide 30

Slide 30 text

つまり

Slide 31

Slide 31 text

入社~4ヶ月の生成 AI好きの 若手エンジニアが そこそこの規模感のプロダクトの 使ったことない言語の 開発タスクを 生成AIに委託する はアンチパターン

Slide 32

Slide 32 text

では今はどうしているの?

Slide 33

Slide 33 text

開発タスクは 委託しないようにした 伴走させる が正解でした

Slide 34

Slide 34 text

出展:Takuto Wada AI時代のソフトウェア開発を考える( 2025/07版)P21

Slide 35

Slide 35 text

それに加えて

Slide 36

Slide 36 text

開発コンテキストを 強化するために 生成AIでアプリを作りまくった!

Slide 37

Slide 37 text

なぜアプリを作成する理由 1. 社内の情報を迂闊に世の中にあるサービスに入れるのは怖い。 2. 意外と細かいところに手の届くアプリって少なくない ...? 3. 自分で改善できるのってめっちゃいい。

Slide 38

Slide 38 text

私の開発コンテキストが貧弱 す ぎた ※もちろん他にも要因は色々とありますが、今日はここだけに絞ります ここを鍛えるために試した施策を紹介

Slide 39

Slide 39 text

生成AIで作成したアプリ集

Slide 40

Slide 40 text

(★★★★★ )社内用語を覚えようフラッシュカード 社内用語や仕様などをフラッシュカードにして覚えるア プリを作成 「プログラマー脳」で紹介されてたのでアプリにしてみた ら開発コンテキストの認知的段階からの脱却 にいい。 出典:Felienne Hermans『プログラマー脳 ――優れたプログラマーにな るための認知科学に基づくアプローチ』 p.199, 図10.4

Slide 41

Slide 41 text

(★★★★★ )FBを習慣化するアプリ 開発プロセスで 何かを意思決定するまでのプロセスや線引きが難 しかったのでそれの記録を残したかった + FBもらったらちゃんと残して実践したかった のでアプリを作成しました。 これも認知的段階からの脱却にめっちゃいい。 かつ、振り返りをすることで1つ上の視点を得られ ることもあるので行動も変わる。

Slide 42

Slide 42 text

(★★★☆☆ ) ClaudeCodeで毎行FBを返すVimPlugin Ruby on Railsの勉強をしている時に以下の ことですぐにFBが欲しかったので作成した。 ● これどのメソッドで実現可能なんやっ け? ● 他に書き方ないかな? etc Vim使う時は今でも使う。 https://x.com/hudebakonosoto/status/19429533902183 50914

Slide 43

Slide 43 text

(★★☆☆☆ )プロダクトコードのタイピングゲーム 開発コンテキストを埋めやすそうと思い、 真っ先に作った。 タイピングが終わった後に、そのコードの説 明を表示する。 まあやってもいいけど、これでプロダクトコー ドの理解が深まることはなかった。

Slide 44

Slide 44 text

(★☆☆☆☆ ) 開発コンテキストを保存する MCPサーバー 作ったけどあんまりワークした感じもなく、すぐ使わなくなった。 それなら都度頑張って CursorRuleに入れておくほうがいいなと言うのが感想。 https://github.com/Kota-Yamaguchi/sodateru

Slide 45

Slide 45 text

結局何が良かったの?

Slide 46

Slide 46 text

私のような若手エンジニアには 生成AIは、現状開発生産性をあげる ための自己成長を促す ことに使うの が良さそう!

Slide 47

Slide 47 text

生成AIを使って良かったことのまとめ ● AIへのタスクの委託はやめて、 AIとの伴走。逐次CursorRuleを埋める。 ● 生成AIで自分だけのアプリを作って開発コンテキストを強化する ○ (知識の補強)社内用語を覚えようフラッシュカードアプリ ○ (知識の補強、アウトプット強化 )FBを管理するアプリ ○ (知識の補強、アウトプット強化 )ClaudeCodeの毎行FBをもらうVim Plugin

Slide 48

Slide 48 text

生成AIを使って良かったこと・悪かったこと ● 悪かったこと 入社~4ヶ月の生成 AI好きの若手エンジニアが そこそこの規模感のプロダクトの使ったことない言語の 開発タスクを生成 AIに委託する はア ンチパターンだった ● 良かったこと 私のような若手エンジニアには生成 AIは、 現状開発生産性をあげるための 自己成長を促す ことに使うのが良さそう! ○ AIへのタスクの委託はやめて、 AIとの伴走。逐次CursorRuleを埋める。 ○ 生成AIで自分だけのアプリを作って開発コンテキストを強化する ■ (知識の補強)社内用語を覚えようフラッシュカードアプリ ■ (知識の補強、アウトプット強化 )FBを管理するアプリ ■ (知識の補強、アウトプット強化 )ClaudeCodeの毎行FBをもらうVim Plugin

Slide 49

Slide 49 text

参考:「プログラマー脳」