AIを使った開発効率化:現場で本当に効くのはこういう使い方
はじめに
AIを使った開発効率化は、もう「ちょっと試してみよう」くらいの話ではなくなってきています。
実際に現場で使ってみると、確かに作業が速くなる場面はあります。ただ、そこにハマってしまうと、逆に手間が増えることもあります。
最初は「コードを生成してくれるから楽になる」と思って始める人が多いと思います。けれど、実際にはどこまでAIに任せるか、どこは人が確認するかをちゃんと決めておかないと、効率はそんなに上がりません。
最近では10倍の速度で開発が~AIはトークン使用量が~などなど
今回は、そういう現場感をそのまま入れながら、AIを開発に取り入れるときに気をつけたいことを、できるだけ実務寄りに書いてみます。
背景
開発現場は、今も昔も忙しい!!・・・に尽きるかなと思います。
AIが登場したことで、さらにスピードを求められており、開発のやり方自体が少しずつ変わってきています。
特に助けになっているのは、次のようなところかなと思います。
- コードの下書きをすぐ作ってくれる ←これはもう一般的
- テストケースの候補を出してくれる ←これもよく使う
- 要件整理や仕様の整理を手伝ってくれる ←Claude opusがおすすめ
- レビュー時の観点を増やしてくれる ←チェックリスト作成で重宝
ただし、ここで大事なのは、AIを使うこと自体が目的ではないということです。あくまで、開発プロセスを少しでも回しやすくするための手段として使うのが正しい考え方です。
課題
実際にAIを使ってみると、いろいろな壁にぶつかります。
- 出力された内容をそのまま採用してしまって、あとで修正が大変になる
- 依頼内容が曖昧だと、期待していた結果が返ってこない
- 個人の作業は速くなっても、チーム全体としてはあまり変わらない
- セキュリティや情報管理の考え方が甘くなりやすい
AIを使うだけでは、あまり大きな変化にはつながりません。
また、実装の経験が浅い人は「AIの仰せのままに!!」となっていることをよく見かけます。AIは道具であり、道具に使われているのでは本末転倒です。道具を使いこなす人財にならなければ、、、先は続かないと私は思います。
AIを使った開発効率化の実際
AIによる効率化って、単に「コードを書く時間を減らす」だけの話ではありません。現場では、こんな感じで使う人が多い印象です。
1. 要件整理を早く進める
要件をそのままAIに渡して、実装タスクやリスク、テスト観点まで整理させる。これ、かなり使えます。
次の要件をもとに、実装タスクを分解してください。
- ユーザー登録機能
- バリデーション追加
- エラーメッセージ表示
- 管理画面対応
こういう整理をしておくと、開発前の認識のズレがかなり減ります。特に、仕様が曖昧なまま着手しがちな案件では効果があります。
会議の文章の議事録などの作成もよく使います。
注意点としては、必ず人が目を通して確認してください。変な解釈で要件をまとめてしまう恐れがあるからです。
2. 実装の下書きを作る
実装フェーズでは、AIにコードの骨組みを作らせる使い方もかなり現実的です。
export function validateEmail(email: string): boolean {
const pattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return pattern.test(email);
}
最初から全部を自分で書くより、AIに雛形を作ってもらってから調整するほうが、かなりスムーズなことがあります。もちろん、最後は自分で確認する必要がありますが、基本的にはAI同士に相互レビューをかけると品質があがります。
その後、テックアーキ(技術者)がレビューをすると、品質がぐっと上がります。
3. テストとレビューに使う
AIは、テストケースの候補を出したり、レビューの観点を整理したりするのにも向いています。
- 正常系・異常系・境界値のテストケースを出してもらう
- レビュー前に、可読性や保守性の観点で確認してもらう
- 既存実装との整合性をチェックするための項目を作ってもらう
こういう使い方は実務で役立ちます。決まり事などをMDファイルやJSONにまとめて、「観点は記載したから、あとはコード見てテストケース作成よろ!」で十分です。足りないところは人が補えばよいです。
昨今の状況と今後の見通し
今の開発現場では、AIを使える人と使えない人の差がかなり出てきていると思います。
だから、単に「AIを使う」だけではなく、「AIを使いこなす」ことが、今後の実務では重要になってくると考えています。
ただ、AIが万能というわけではありません。実際に使ってみると、便利な場面もあるし、危ない場面もあります。
※デグレとかデグレとか(重要なので2回)、セキュリティ懸念の実装。レビュー者の質が問われることがよく見受けられます。
大事なのは、次のバランスです。
- 速さを追いかけるだけでなく、品質も確保する
- 自動化を進める一方で、チームの理解も深める
- 生成結果をそのまま信じるのではなく、ちゃんと検証する
今後は、AIを使えるかどうかよりも、「AIを前提にして開発プロセスを設計できるか」が重要になってくる気がします。
伝えたいのは「AIファーストでの仕事ができているか?AIに何をやってもらうではなく、人が何をする?」という志向に寄せていく必要があるのでは?と最近はよく意識して仕事をしてます。
注意点・考慮事項
AIを使うときは、いくつか気をつけたいポイントがあります。
1. 生成物を鵜呑みにしない
AIは便利ですが、正解を返すとは限りません。特に、業務ロジックやセキュリティ周りは、最終確認が必要です。
2. 依頼内容を明確にする
曖昧な依頼は、結果の質も下がりやすいです。「何を作るか」「どの技術を使うか」「どこまで実装するか」を明示しておくと、かなり違います。
まとめ
AIを使った開発効率化は、今後の開発現場では避けて通れない話だと思います。
ただ、単なる作業自動化として見るのではなく、要件整理・実装・テスト・レビューを含めた開発フロー全体を見直す視点で考えたほうが、ちゃんと価値につながります。
チーム全体の生産性を上げるには、AIを個人の補助ツールとしてだけでなく、開発プロセスに組み込む考え方が必要です。そこをちゃんと意識できると、かなり違いが出るはずです。
最近のAIは賢いので、AIはあまり実用的ではないと言っている方は、心の中でそっ閉じしておいた方が良さそうです。
AIを使いこなせている方の印象としては、指示出しがかなり上手いです。AIに対してはもちろんですが、人に対しての指示が受け手に伝わっているイメージがあります。
ふと気付きましたが、5W1Hですね(笑)、これがしっかりと必要な場面で必要な情報量を伝えている人はAIを活用しなさい!と指示が出ても、すんなり溶け込めているイメージがあるので、自身の能力もしっかりと向上させないといけないですね~(੭ु´・ω・`)੭ु⁾⁾