AIを開発に使用した見積もりについて
はじめに
AIが普及する前
システム開発やプロジェクト管理において、見積もりにはさまざまな手法が存在しますが、筆者が多く経験し、利用されてきたのが「ボトムアップ見積もり」です。
ボトムアップ見積もりとは、プロジェクト全体を細かな作業単位まで分解し、それぞれの作業工数を積み上げて総工数や費用を算出する見積もり手法です。
名前の通り、下位(Bottom)の作業から積み上げて、上位(Up)の全体見積もりを作成することから「ボトムアップ見積もり」と呼ばれています。
言わゆる、Excelなどで作ったWBSに沿って、工数を出すのが一般的には多いのではないでしょうか。(たぶん、そう。)
ボトムアップ見積もりでは、まず開発対象をできるだけ細かい作業に分解します。
例えば、Webシステム開発であれば以下のようなタスクに分割します。
・要件定義
・画面設計
・API設計
・データベース設計
・フロントエンド開発
・バックエンド開発
・テスト設計
・単体テスト
・結合テスト
・リリース作業
さらに、フロントエンド開発、であれば「ログイン画面作成」「会員登録画面作成」など、より詳細なタスクへ分解していきます。
バックエンドも同様に、「ログイン用コントローラー」、「会員登録用コントローラー」などのように分解していきます。
次に、それぞれのタスクについて担当者や経験者が必要工数を見積もります。
例えば、
ログイン画面作成(フロントエンド):2人日
ログイン用コントローラー(バックエンド):2人日
会員登録画面作成(フロントエンド):3人日
会員登録用コントローラー(バックエンド):2人日
といった形で見積もりを行います。
最後に、すべてのタスク工数を合計し、必要に応じてレビュー工数やリスクバッファを加算することで、プロジェクト全体の見積もりを算出します。
仮に開発工数としては、2人月とした場合
2人の開発者がいて、1月で完成するといったイメージになります。
単価に関しては、ざっくりになりますが
・Aさん 40万/月
・Bさん 50万/月
2人で開発した場合、合計として90万が開発コストとなります。
会社によりけりですが、後はそこに営業費用やら、会社経費など諸々あり
総費用として110万になります。
AIが開発する時代
非エンジニアでもできる、システム開発〇選
コードが書けなくてもWEBシステムが作れちゃう!?
最近、嫌でもよく見かけますね~。(聞き飽きた。)
顧客:「AIがコーディングしてテストもしてくれるから、安くしてくれませんか?」
って言われることも多いのではないですか?
簡単なWEBシステムであれば、フロントエンド、バックエンド、テストケースまで1日で作成してくれるでしょう。
しかし、製造物責任法を忘れてはいけません。
AIは、それっぽいコードを書くことがよくあります。
人間が介入せずに、AIに頼りっきりになってしまうとかなり危険です。
確かに、作業工数は大幅に削減出来ると思いますが
AIが生成した成果物を検証・承認するための工数が必要になります。
AIが書いたコードを理解する時間も必要になります。
例えば、ログインが出来なくなった障害が発生した場合で説明すると、
・なぜこの実装にしたのか
・なぜこのアルゴリズムを採用したのか
・なぜこのライブラリを利用したのか
・セキュリティ上の懸念は検討したのか
といった説明をプロジェクト責任者やら、管理者の人に求められます。
その際に、「AIがそう書いたので分かりません。」
(なんて言う人が出てこないことを祈る・・・。)
目もあてられませんね。
何が言いたいかというと、AIを使って開発した場合の見積もりについては
必ずしも安くなるわけではないということです。
現状、AIを使って開発した場合について
見積もりには正解がないのではないでしょうか?
AIを使った開発では、次のような不確実性が混ざります。
・AIの出力品質が一定ではない
・同じタスクでもプロンプト次第で工数が変わる
・レビュー負荷が案件ごとに大きく異なる
・どこまでAIに任せるかがプロジェクトごとに違う
つまり、見積もりの前提条件そのものが揺れています。
そのため現時点では、
「AI開発の見積もりはこうすれば正しい」という標準解は存在しないと思っております。
それと同時に、プログラマーが居なくなることはないでしょう。
Discussion