AIを利用した開発 – 開発してみて

どの様なものを作るか決めていく工程(要件定義、リサーチ等)


リサーチ系は、AIを使うのが効果的

  • 速くて楽!!精度が求められないものは、これで十分だと思います
    ※使うAIや、分野により回答精度の差がかなりありました。
  • あまり知らない領域、業界をざっくりと知りたい時は、特に有効
  • 詳細な事や、内容の精度を求める場合、人が確認、補完する必要ありでした

どの様な目的で、どの様なものを作るのか検討して決める

  • 今回の様な、オリジナルのサービスとなると、AIに聞いても無難な提案になりがちなので、あまり参考にならないと感じました。検討はともかく、主導、判断は、人がやった方が良いと感じました。

  • 今回は、自社システムですが、お客様のシステムの場合、お客様の自身も気づいてない要件が、話をしていて、出てくる事も多いので、ここは、まだ、任せられない領域とだと思います。

どの様な構成で作るか決める工程(システム構成検討、実現性調査)


どの様なサーバー、ソフトウェア、技術、サービスを組み合わせてシステムを作ったら最適か決める工程です。実現したい事、掛かるコスト(ランニング、イニシャル)、将来おこり得る事、運用性、持続性等々を考慮して決めます。絵にかい餅にならない様、事前に、技術調査や実現性調査、実験も行います。また、実現する為のパーツが無ければ、世の中に無ければ、最悪無ければ自分で作る等の判断も含めて行います。

どんな特性の工程か

  • 間違うと後々のダメージ(後戻り、コストなど)が大きい工程
  • 完成したシステムのランニング費用、運用性を左右する
  • 事前に、実現性調査や実験を行う事で、この構成で出来る保証を取る
  • 考慮する事が多いので、判断には、それなりに経験が必要

AIはどう使った

  • 技術的に可能か、手数はどうか等の調査
  • 肝になる要素の実現性確認の実験
    実験環境の作成、実験プログラムの作成には、クオリティは必要無い(出来る事を確認するだけ)ので、これは、非常に助かりました。
  • 構成を決める判断に関しては、AIの提案は、個々の要素として参考には出来ますが、全体の構成を決めるには、複数の条件をバランスさせる必要があるので、頼り切るのはまだ、不安と感じました。

    ※一般的な、割とシンプルな仕様、構成に関しては、AIの提案でも、問題は、ほぼ無いと思われます。

開発工程(主にプログラミングについて)


ここまでは、AIチャットを使いましたが、この工程は、主に、VSCODE等のエディタでのプログラム開発になります。主に、Claude Code と、GitHub Copilot をAIアシスタントとして使いました。バイブコーディングなんかの情報も多いので、皆さんもAI導入の効果を一番期待している所だと思います。

指示をするのも技術がいる

  • 前提、作成要件等々をAI伝える事になるのですが、仕様、前提条件が簡単なものは良いのですが、複雑なものを作るには、指示も結構な分量になります。又、指示、前提、注意等は、指示する側の人間が、ある程度の経験が無いと書けないのではないかと思いました。

まず、ザックリ作って修正指示を繰り返して、理想に近づける

  • 複雑な仕様や、一般的じゃない機能について、指示の仕方が難しく、作ってもらって、人が引き取って、又書いてもらってと、ツール的な使い方になりがちでした。気持ち的には、ざばっと一気に作ってもらう、夢の様な事を考えるのですが、中々難しい。一気にやろうとすると、ピタゴラスイッチの準備に手間が掛かりすぎる感じになってしまうというか...

  • 単純なものは、一気に作れて、嬉しいですね。そして爆速で出来ます。

アウトプットをチェックするにも技術がいる

  • AIがアウトプットしたコード、仕様をそのまま、使うかというと、精度(クオリティ)を確保する為に人がチェックする事になります。目的、セキュリティ、運用性、将来の変化、メンテナンス性等々を考慮して判断する事になります。これも、どこをチェックしたら良いか、経験が無いと難しいのでは?と感じました。

アウトプットの精度を保証したいが、AIで作業効率を上げたい

  • 文書で書かないで、コードで示す
    AIに考慮してもらいたい内容が細かい、膨大な場合、どうするか?

    お手本となるソースコードで、詳細なルールを示すのが、最も効率が良かったです。
    最初、基盤部分の機能と画面1つ位を人が作成する手間はありますが、これ以降は、このルールを踏襲してAIに作成して貰えます。又、お手本になるコードが増えるにしたがって、お手本の手数、精度も上がって行くので、後半はドンドン楽になる感じがありました。

    色々と試して、現状だと、この使い方にメリットを感じました。
     
    • 細かいルール、思想等を全て文書化するのは無理、漏れが出やすいので、お手本を用意する
    • お手本方式で、横展開した場合、1発で、良い精度で成果物が出来る
    • 既存のテスト済みで理解しているコードをベースにしているので、成果物の解析、テストの手間が、あまり掛からない

  • この方式で、省力化をしつつ、精度の確保が可能

管理画面なんかは、最初からお任せ

  • 運営側のみが使う、管理画面などは、バイブコーディングで、1発で作っても良いかと思います。
    ※画面、機能へのコダワリが、あまり必要じゃないものは、これで十分だと思います。
  • その他、仕様が常識的なものは、AIにザックリ指示しても、良い結果が出ますので、向いていると思います。

人がプログラミングするのも楽

  • 人がプログラミングするのも、かなり楽
    バイブコーディングではありませんが、AIアシストタント(copilotなど)は、やりたい事を先回り予測してコードを提案してるので、自分で書いても、恐ろしく楽です。予測精度的に、いまいちな事もありますが、だいぶ効率が良いです。

    バイブコーディング系の話題が多いですが、こっちの機能は、地味に便利で助かりました。

    ※精度はいまいちですが、こっちの方が、実は好みです


戻る