Slide 1

Slide 1 text

開発15年のAIネイティブでない 巨大サービスの AI最適化 〜スマレジ開発現場のリアル〜 わたり @rapicro

Slide 2

Slide 2 text

わたり ● CTO室 プロダクトチーム ○ 現在はPOSシステム開発 ● AIツール ○ 2022年12月から利用(約3年) ○ 社内 ■ AI利用のルール作り / AIツール価値検証や開発最適化 ○ プライベート ■ AItuberでLive配信 ■ PHPカンファレンス関西で使ったツールをVibeCodingで作成

Slide 3

Slide 3 text

今日お話しすること AIでゼロから高速にプロダクトを作る話はよく聞きます。 しかし、既存の巨大プロダクト開発にAIの支援を導入する場合、 思ったほど効率が上がらないと感じる人は多いと思います。 今日は私たちスマレジのPOS開発チーム が直面した「壁」と それらをどう乗り越えているかをお話しします。

Slide 4

Slide 4 text

前提: なんのAI使ってるの? AIエージェント: Cursor エディタ: PhpStorm 判断: 性能は「エージェント」より「基盤モデル」の影響が大きい 。 戦略: モデル縛りが少ない Cursorでモデル進化の恩恵を即享受。 ただしCursorの利用はAIエージェントとしてにとどめ、 エディタとしては静的解析や機械的な補完に富むPhpStormを利用

Slide 5

Slide 5 text

壁1: AIがレガシーも増幅する (As-Isへの固執) ● コード生成時にAIが良くない実装に引っ張られてレガシーコードも増やす! 対策: コメントとルールによる AIの教育 ● 「今の正解」を「* @deprecated xxxを使うこと」コメントやルールで to-beがわかるように記載。 効果: AIがレガシーを「増やす」から「減らす」になり、実装を進めれば負債が減る状態 へ。 after 私たちが直面した壁 before

Slide 6

Slide 6 text

私たちが直面した壁 壁2: メンバー間の AIスキル格差 ● AIの使い方はGitには表れない。メンバー各自で学ぶ状態ではスキルに差がつく。 ● 1ヶ月間Cursorの変更適用数が0のメンバーもいた。 対策: 輪読会とAIモブプロを交互に開催 ● 輪読会: メンバー間の認識が合い、書籍の内容を「個人の意見」ではなく「 チームの方針」にできる。 初回はリーダブルコードがお勧め。短時間で読めAIの出力改善にも繋がるので読む価値も上がっている。 ● AIモブプロ: AIを使った実際の対応をモブプロですることで他メンバーの AI利用方法を学習。 効果: Cursorの適用数が4週連続0だったメンバーが2ヶ月後には1週間あたり適用数10以上へ増加

Slide 7

Slide 7 text

私たちが直面した壁 壁3: AIに仕様背景が届かない (暗黙知) ● ドキュメントがAIが参照できない場所(社内 Wiki、別リポジトリなど)にあったりそもそも無いことも。 ○ AIが「ドメイン知識」を理解できない!間違った計算式や仕様でコードを生成する。 対策: 重要な知識はリポジトリに置く (Project as Code) ● AIが知るべき話はAIが読める場所にMarkdown (.md) として設置。 ○ CONTRIBUTING.mdやSTRUCTURE.mdを初めとしたmdファイルを作成し、 Cursor Rulesにパスを記載しAIが必要なときに参照できるように。 効果: ● AIがプロジェクトの特性を理解した提案を出してくれる ように変化 ● 離れた位置にある関連ファイルも修正できるようになった

Slide 8

Slide 8 text

私たちが直面した壁 壁4: レビューの壁 (時間がない ) ● AI支援により生成するコード量( MR数)は増加 しておりレビュアーの負荷が爆上がり。 対策: AIに「レビューさせる」 ● CodeRabbit のようなAIレビューツールを導入しAIに1次レビュー を任せる。 ○ ツールは何でもよい。CodeRabbitはCIへのAI自動レビュー導入が簡単なのでまず入れるにはよい選択肢。 効果: ● 人間のレビュアーはAIによる指摘が解消された後で、より本質的なロジックのレビューに集中 。 ● 「(AIが言うくらいだから)改善しないと」という意識変化、メンバー間の指摘による心理的摩擦の減少 に貢献。

Slide 9

Slide 9 text

トークンの節約Tips 最近の課題として、利用上限にあたるメンバーが出てきている。 ● 指示修正は元プロンプトの編集で ○ AIが間違えた時、追加の指示ではなく 前のプロンプトの編集で指示を追加 。 1. 時を戻してAIに”間違った内容”を覚えさせないことでブレを防ぐ。 2. コンテキスト(トークン)を節約し、精度を上げる。 1. 誤解を恐れずに言えば、コンテキストウィンドウのサイズは バリデーションの閾値 でし かなく収めればその量を理解できるというわけではない。 2. LLMは毎回それまでのインプットとアウトプットも食わせている。 a. スレッドが長くなるほど 1回あたりのトークン消費が増加。 ● 同様の理由でタスクを小さく分割して AIに依頼できるとよい。

Slide 10

Slide 10 text

まとめ AIはプロジェクトに入った「賢い新人」である。なので ... 1. 悪い癖(レガシー)を真似しないよう「ルール(コメント)」で導く (壁1) 2. “上司”(我々)がAIをマネジメントできるよう「学習(輪読会)」する (壁2) 3. 会社の「暗黙知(ドメイン知識)」を「資料( .md)」でインプットする (壁3) 4. 「AIレビュー」で一次チェックし増加する負荷を低減する (壁4)

Slide 11

Slide 11 text

ご清聴ありがとうございました。 よければもっと話しませんか? スマレジに興味をもってくださった方、ぜひ一度お話ししましょう! ↑ カジュアル面談のお申し込みはこちら https://hrmos.co/pages/smaregi/jobs/2151921176291053569