ChatGPTに業務システム移行について聞いてみたメモ
巷で流行りのChatGPTについて、仕事につかえるかどうか試してみた。
使えるところ・使えないところがありそう。
一般論のやりとりでは問題ない。専門的なコーディングに関しては相当の技術力を誇る。けど、指示の仕方が悪いと、どんどん変な回答をしてくる。今のところはまだ、指示出しという観点で、人間さまのエンジニアの仕事はたっぷり残っていそうな気はする。
※ヘッダ画像は、「基幹業務システムの移行作業のことをAIに聞いてみた」というお題で、AI(DALL-E)に作ってもらった。
(1)移行作業の見積について聞いてみる
【所感】
無償利用の範囲でも、よい壁打ち相手・チェッカーになってくれる印象。
タスク・リスク・見積項目・実装案について尋ねたが、どの質問についてもそつのない回答をくれた。リスクにダウンタイムを挙げるなどは、運用を経験している玄人の仕草だ。
無償利用では生の業務データを食わせるわけにもいかないけど、固有の事例集などをインプットにしたら、あっさり人間以上になりうる。
タスクを実施順に列挙
リスク要素を重大度の順に列挙
見積書の項目を列挙
データ移行スクリプトの実装案を列挙
(2)移行用のスクリプトを実装してもらう
【所感】
答えは早いけど気は利かない、優秀なエンジニアを相手にしている印象。
前提を明示して、順に指示をすると、まともな答えを返してくれる。
(これは、相手が人間でも同じだろう。)
生成してくれるコードは、指示出し次第で細かく更新もしてくれるけれど、実環境での動作確認まではしてくれない。今回はちゃんと動くものを出してくれたけれど、時々ぽっかりウソを言うこともあるようだ。油断はできない。
実装案の列挙
bcpを生成するためのSQLクエリの実装
SELECT 'bcp ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + ' out "C:\Data\' + name + '.dat" -S <source_server> -T -n' as bcp_command
FROM sys.tables
SELECT 'bcp ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + ' in "C:\Data\' + name + '.dat" -S <destination_server> -T -n' as bcp_command
FROM sys.tables
DECLARE @format_file_path VARCHAR(200)
SET @format_file_path = 'C:\Data\format_file.fmt'
SELECT 'bcp ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + ' format nul -S <source_server> -T -f "' + @format_file_path + '"' as bcp_command
FROM sys.tables
仕様変更への対応
DECLARE @format_file_path VARCHAR(200)
SET @format_file_path = 'C:\Data\'
SELECT 'bcp ' + QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + ' format nul -S <source_server> -T -f "' + @format_file_path + name + '_format_file.fmt"' as bcp_command
FROM sys.tables
(3)【失敗例】移行用のスクリプトを実装してもらう
【所感】
こちらの指示出し前提が曖昧なまま、完全な実装をさせようとしてしまうと、このように迷走してしまった。これはたぶん、こちらの指示の出し方が悪かった。
差異箇所を確認するスクリプト
動作仕様の変更
要件の変更
さらに仕様変更
またまた仕様変更
四たびの仕様変更
(この人間は更に思い付きで仕様変更を言いだす)
(人間は更にダメだしを行う)
(人間は重ねて違うことを言ってくる)
(まだ人間が手直しを求めてくる)
*実際の順序としては、(3)を先に進めてみて、らちがあかなくなったのでやり直して(2)を行ったのだった。
いちど上手くいかなくて、御破算にしてやり直しをしても、気を悪くせずに付き合ってくれるというのは、非常に有り難い。
以上。