ども。
今の仕事が片付かないうちに次のプロジェクトの検討を始めてしまった担当ちゅんです。
この時期は来年度の事業実施に向けて仕様書の検討など準備を進めています。で、タイトルのとおりではあるのですが、新しい何かに取りかかろうとするときに肝となるのは、やはり要件定義だなと思うわけです。
要件定義という言葉は同業者様であればよくご存じのことと思いますが、何かを調達しようとしたときに求められる機能であったり性能であったりといった条件を明確にするという、設計の柱になる部分になります。わかりやすく車の購入を例にすれば、用途は何なのか、何人乗りか、燃料はガソリンか軽油か、四駆か二駆かなど様々な希望を洗い出し、ある程度のところで「それに合致する車種は?価格は?」って進んでいくと思います。まさにそれと同じことをやっていると思っていただけるとイメージが沸くかと思います。
で、そんな大切な工程ですが、昨今話題の生成AIを上手に利用するにも、実はこの要件定義が重要なのではないかと、今日はそんなお話です。
業務の中でバッチファイルを作る必要に迫られました。根っからの文系である私はバッチファイルを一から作るなど無理。仕方がないのでChatGPTに頼ってコードを書いてもらうことにしました。
「親フォルダの中に複数の子フォルダがあり、さらにその中に孫フォルダがあります。バッチファイルを実行することで子フォルダの中をすべて削除したいです。なお、その際に子フォルダ自体は削除せず残してください」とリクエストすると、ずらーっとそれらしいコードが出力されます。何度やっても「すごいなあ」と感嘆するばかりです。
早速出来上がったコードをバッチファイルにしてテスト実行してみます。しかし、実際に削除されたのは私の頭の中で「孫フォルダ」と思っている中身だけが削除され、「子フォルダ」の中身はそのまま残ってしまいました。また、AIへのリクエスト時に「ファイルも削除」という言葉を入れ忘れたため、ファイルはそのまま残ってしまいました。
ここからChatGPTとのやり取りが始まり「そうではなくこうです」「今度はここがダメです」と会話しながら、30分くらい経ってようやく意図するコードが出来上がりました。
setlocal
set “directory=C:\work\test”
if not exist “%directory%” (
echo Directory does not exist.
exit /b
)
cd /d “%directory%”
for /d %%P in (*) do (
for /d %%C in (“%%P\*”) do (
rd /s /q “%%C”
)
del /q “%%P\*.*” 2>nul
)
endlocal
このコードを出力してもらうために費やした労力は、はたしてAIを使って業務が効率化したといえるのか、甚だ疑問ではあります。しかし、冒頭に書いたように、要は「生成AIを効率的に使うためにはきちんとした要件定義が必要である」ということです。
あらかじめAIにどんな条件を投げ込むか。自分が求めていることを相手に正しく伝えられるかといった、ある意味では生成AIが相手じゃなくても大切なポイントを掴んでいないと、せっかくの生成AIもうまく使えないかもしれませんね、と思うのでした。
動いた時には嬉しくてついお礼してしまいました
(投稿者:ちゅん)