MENU

IBM Bobの得意・不得意を踏まえて、1日で自動発注用プログラムを開発 ~IBM Bobを使って感じたこと・気づき・発見 ④ ~山口 昌一氏(松沢書店)

山口 昌一氏
株式会社松沢書店
システム部 部長

GitHub Copilotの経験は約2年
Geminiは今年から利用

楽譜・音楽書の専門商社、松沢書店の山口昌一氏(システム部 部長)は、今年4月にIBM Bobの「無料トライアル」を利用して、初めてIBM Bobに触れた。そして、「発注点修正」と呼ぶ自動発注用のプログラムを、IBM Bobを使って約1日で開発したという。

山口氏は、2024年4月からGitHub Copilotを利用してきた。そして今年に入ってからは、Geminiも使い始めている。

「Copilotを導入した当初は、まだ実用レベルに達していないという印象でした。そのため興味本位でいろいろ試した後は、しばらく使うのをやめていました。しかし、2025年1月に久しぶりに操作してみると見違えるほど進化していて、それ以来、継続的に利用しています。特に感心したのは、自分の発想や調べた内容を超えるアウトプットが得られることです。なかでも、コードを書き換えるエージェント機能には大きな衝撃を受け、バイブコーディングの感覚でさまざまなことを試行しながら活用してきました」

Copilotは、新社屋建設(2025年7月完成)のための作業進捗ダッシュボードの開発や、勤怠管理システムの改修などにフルに活用してきた。

その一方で、Geminiを使い始めた背景について、山口氏は次のように説明する。

「ある時期からCopilotのコード生成の精度が極端に低下し、以前のように使えなくなったことがありました。何度質問しても期待した回答が得られなくなったため、“ほかのツールも試してみよう”と思い、Geminiを使い始めました。Geminiは、Visual Studio Codeと直接連携しているわけではないので、質問を投げてヒントをもらうだけの使い方です。ただし、回答は正確で精度も高く、かなり実用的だと感じています。RPGについても一定レベルの回答を返してくれます」

しかし山口氏は、生成AIの利用には慎重な姿勢も見せる。過去にエージェント機能によるコード書き換えで、データベースをすべて消してしまった苦い経験があったからだ。

「一度、エージェント機能による書き換えでデータベースを消してしまったことがありました。それ以降は、コードを自動で書き換えるエージェント機能は使わず、質問への回答や生成されたコード、説明を参考にする使い方に切り替えています」

さらに生成AIの回答についても、無条件には信用していないという。

「AIは過去のやり取りや履歴を踏まえて回答してくれますが、それでも間違えることがあり、しかもデータベースを壊しかねないような内容を自信満々に返してくることもありますまとまりのある説明をしてくれるので、一見すると正しく見えてしまうのですが、実際は誤っていることも少なくありません。そのため、生成された内容は必ず精査し、本当に正しいのかレビューする必要があります。今は、納得できたものだけを利用するようにしていますが、利用する側も知識を身につけなければならないと痛感しています」

また、生成AIの精度はプログラミング言語によっても差があると感じている。

「モデルが十分に学習している言語、たとえばJavaScriptやPythonのような広く使われている言語であれば、比較的安心して使えます。私自身も長くJavaScriptやPythonを使ってきたので、そのあたりは問題ないと感じています」

サブルーチンの抜き出しは想像以上に簡単に実現
その後に試行錯誤

こうした生成AIの活用経験を持つ山口氏が、IBM Bobを使って開発したのが「発注点修正」と呼ぶ自動発注用のプログラムである。

従来は、クエリでデータを抽出し、その中から商品を選択し、1商品ずつ自動発注までの閾値を変更するプログラムがIBM i上動いていた。しかし、この作業の負担は大きく、現場から改善を求める声が上がっていた(図表1)。 

図表1 従来の発注画面

そこで山口氏は、既存の発注システムのRPGソースコードをIBM Bobに読み込ませ、必要な処理だけを切り出す作業を行った。

「IBM Bobに“このサブルーチンを抜き出し、パラメータを渡して実行できるようにしてほしい”と指示したところ、想像以上に簡単に実現できました」

ただし、開発は順調だったわけではない。サブルーチンを切り出した後、Webアプリからストアドプロシージャを経由してRPGを実行する構成にしたところ、IBM iのLDA(ローカルデータ域)の値が正しく受け渡されない問題が発生した。

「IBM Bobに相談しても、同じ回答が繰り返されるばかりで解決できませんでした。そこで発想を変え、修正方法ではなく、デバッグ方法を聞くようにしました」

その結果、ジョブログを確認するように回答があったので調査したところ、LDA内の日付データの扱いに問題があることが判明。日付の取得方法を変更することで解決できたという。

こうした試行錯誤も含めて、システム開発は約1日で完了した。フロントエンドはReactとJavaScriptで構築し、商品ごとの発注点数を画面から変更できる仕組みを実装した(図表2)。

図表2 IBM Bobで開発した「発注点修正」プログラムの画面

山口氏は以前、Copilotでも同様のRPGコード処理を試した経験があるが、満足のいく結果は得られなかったという。

「Copilotでは散々な結果でしたが、IBM Bobはサブルーチンの切り出しをかなりきれいに行ってくれ、その点について好印象をもちました。RPG関連の開発・改修では、今後もBob使っていきたいと思っています」

生成AIを使い始めて半年後に
“考えくなっている自分”を自覚なく

山口氏は、生成AIとの付き合い方について、以前と現在では考え方が大きく変化したと語る。

「以前は『AIが言うのだから正しいのだろう』と思っていましたが、今はそうではありません。便利なツールではありますが、全面的に信用できるものではないと考えています。生成AIにも得意・不得意があり、できないことを無理に解決させようとすると、何時間も答えの出ないやり取りを続けてしまうことになりかねません。簡単な問題でもAIに頼り切るのではなく、ヒントを得たら自分でも調べたり考えたりしながら進めることが大切だと思います。それだけでも非常に大きなメリットがあります」 また一方で、生成AIの思わぬ“副作用”も感じたという。

「使い始めて半年くらいは、自分で考えることが大きく減っていました。あるとき、“自分はずいぶん考えなくなっている”と気づきました。以前ならすぐに思いついていたようなコマンドがなかなか出てこなくなり、何十年もかけて身につけた知識がなくなっていくような感覚がありました」

山口氏は今、生成AIについて次のようなスタンスでいるという。

「たとえば、100列以上あるデータベーステーブルの定義作成は、以前は手入力やコピー&ペーストで行っていましたが、生成AIを使えば圧倒的に効率化でき、10倍近く生産性を向上できる可能性もあります。しかし、その分リスクも大きくなるはずです。生成AIは非常に有用な技術ですが、手放しで信用するのではなく、利用者が理解しながら適切にコントロールすることが重要だと思っています」

 

[i Magazine 2026 Summer掲載]

新着