Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AI とペアプロしてわかった 3 つのヒューマンエラー
Search
TakahiroIKEGAWA (池川 貴裕)
June 11, 2025
Technology
1.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AI とペアプロしてわかった 3 つのヒューマンエラー
良い出力は良い入力から
TakahiroIKEGAWA (池川 貴裕)
June 11, 2025
Other Decks in Technology
See All in Technology
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
150
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
150
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
590
go-sqletch
moznion
0
130
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
680
Loop Engineering これくらいでいい
mikanichinose
0
210
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
130
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
140
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
640
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
1.9k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
370
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Documentation Writing (for coders)
carmenintech
77
5.6k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Discover your Explorer Soul
emna__ayadi
2
1.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
980
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Transcript
AI とペアプロしてわかった 3 つのヒューマンエラー 株式会社ユーザベース ソーシャル経済メディア「NewsPicks」 エンジニア 池川 貴裕
©NewsPicks Inc. All Rights Reserved. 池川 貴裕 (Twitter: @takapiro_ikeike) NewsPicks
エンジニア WORK: ワークスアプリケーションズ (7 年) → 開発 UZABASE - NewsPicks (3 年) → 開発
©NewsPicks Inc. All Rights Reserved. NewsPicks について
None
None
©NewsPicks Inc. All Rights Reserved. 「AI とペアプロしてわかった 3 つのヒューマンエラー」
©NewsPicks Inc. All Rights Reserved. ※前提として、個人の経験談の dump になります
©NewsPicks Inc. All Rights Reserved. • 背景/問題意識:LLM を使った開発は Input が命だと思いま
す ◦ Input : プロンプト ◦ Process : LLM ◦ Output : ソースコードの Diff • Output を良くしたいですが、LLM (Process) の開発はしてま せん • Input を良くするしかないです
©NewsPicks Inc. All Rights Reserved. 課題と個人で実践している解決案を 3 つご紹介します
©NewsPicks Inc. All Rights Reserved. 1. 曖昧な指示・少ない情報で作業をさせてしまう
©NewsPicks Inc. All Rights Reserved. • エラー① 曖昧な指示・少ない情報で作業をさせてしまう ◦ NG
プロンプト例 ▪ 「この画面のマスタメンテナンス API 作っといて」 ▪ LLM がソースコードを追っていい感じに作ってくれるかもしれない が... ◦ LLM の出力が明後日の方向に行きがちで、人間のフォローが必要 になってしまうことが多々あります
©NewsPicks Inc. All Rights Reserved. • 解決① 文脈を丸ごと渡すと良いです ◦ 文脈:要件や仕様・既存クラスの使い方など全部です
◦ 実際に投げているようなプロンプトは次ページへ ▪ (あまりきれいに貼れませんでした... 🙏) ◦ Notion や Figjam, 手書きのメモもテキスト化してプロンプトに 含めるのがおすすめです ▪ Gemini などに画像を渡してテキスト化してもらうと便利です
©NewsPicks Inc. All Rights Reserved. (以下、LLM へ渡したプロンプトを外向けに直した TODO.md です) 動物園ショー情報管理
API 実装計画 概要 当動物園のペンギン、イルカ、アシカのショー情報 とショーの日程を管 理するAPIを実装します。 対象モデル 1. PenguinShowModel (ペンギンショー情報) 2. DolphinShowModel (イルカショー情報) 3. SeaLionShowModel (アシカショー情報) 4. ShowScheduleModel (ショーの日程) Dto設計(例:ペンギンショー) Kotlin // PenguinShowDto data class PenguinShowDto( val id: Int?, val name: String, // ペンギンの名前 val featherColor: String? // 羽の色 ) サービス層のメソッド(例:ペンギンショー関連) • findAllPenguinShows() • findPenguinShowById(id: PenguinShowId) • createPenguinShow(dto: PenguinShowDto) • updatePenguinShow(id: PenguinShowId, dto: PenguinShowDto) • deletePenguinShow(id: PenguinShowId)
©NewsPicks Inc. All Rights Reserved. コントローラーのエンドポイント(例:ペンギンショー関連) • GET /zoo/shows/penguins •
GET /zoo/shows/penguins/{id} • POST /zoo/shows/penguins • PUT /zoo/shows/penguins/{id} • DELETE /zoo/shows/penguins/{id}
©NewsPicks Inc. All Rights Reserved. ## 改修対象 - ZooShowMaintenanceController -
ZooShowMaintenanceService ## 実装計画 詳細な実装計画は [TODO.md](./TODO.md) を参照してください。 ## 進捗状況 - [x] プロジェクトディレクトリの作成 - [x] 実装計画の作成 - [x] DTOクラスの作成 - [x] Repositoryクラスの作成 - [x] ZooShowMaintenanceServiceの拡張 - [ ] ZooShowMaintenanceControllerの拡張 - [ ] テストの作成と実行 - [ ] ドキュメントの更新 (以下、LLM へ渡したプロンプトを外向けに直した README.md です) # 動物園ショー情報管理 API ## 概要 当動物園で使うショー情報( API)を作成するプロジェクトです。対象とな るデータソースは以下の 4つのモデルです: 1. PenguinShowModel 2. DolphinShowModel 3. SeaLionShowModel 4. ShowScheduleModel これらのモデルを入出力してメンテナンス画面を作れるようにします。
©NewsPicks Inc. All Rights Reserved. 2. 入力する手間を惜しむ
©NewsPicks Inc. All Rights Reserved. • エラー② 入力する手間を惜しむ ◦ 長文タイピング
= 時間もかかり、腕も疲れる ◦ プロンプトを書く手間を惜しみたくなる
©NewsPicks Inc. All Rights Reserved. • 解決② 音声入力が結構便利です ◦ Mac
ですと、F5 キーのところで音声入力が可能です ▪ これはこれで便利 ◦ 自分は SuperWhisper を使用しています ▪ ローカルモデルを利用 ▪ オフィスだと若干抵抗ありますが... ▪ (本筋と関係ないですが) 音声入力は Slack 返信にも便利です
©NewsPicks Inc. All Rights Reserved. • 解決② 音声入力が結構便利です ◦ ざっくり平均で
300 文字/分 入力しています ▪ 「寿司打」を試したところ、こちらでも 300 文字/分
©NewsPicks Inc. All Rights Reserved. 3. 完璧を求め過ぎる
©NewsPicks Inc. All Rights Reserved. • エラー③ 完璧を求め過ぎる ◦ エージェントに実装をさせても思ったとおりにならない
◦ そのまま諦めて人の手で直してしまう。。。
©NewsPicks Inc. All Rights Reserved. • 解決③ 分割・プロンプト見直し & リトライ
◦ 例:層ごとにタスクを小分けてみる ▪ Controller → Service → Repository → Dao… ▪ 人がエンジニアをやっていたときと同じ ▪ 粒度を絞って再プロンプトすると成功率も上がりやすい ◦ シンプルにテキストを訂正するとアウトプットも変りました ◦ 業務ドメインを如何に文書化するかが肝だなとよく思います
©NewsPicks Inc. All Rights Reserved. ☑ 指示は具体 & 背景フル添付 ☑
音声入力で入力負荷を下げる ☑ アウトプットがずれたら範囲を小さく再プロンプト
©NewsPicks Inc. All Rights Reserved. 良い出力は良い入力から
©NewsPicks Inc. All Rights Reserved. ご清聴ありがとうございました。