業務の隙間を埋める技術メモ。

「それ、作れるか?」より 「それ、作って大丈夫か?」を考えたい。 業務で“ちゃんと使える”かどうかを、 実際に手を動かして確かめたログを残しています。

AIでコードは書けるがシステムは作れない 〜NetSuite拡張開発で実際にやってみた話〜

はじめに

NetSuiteの拡張開発(SuiteScript)で、AIを本格的に使ってみています。

よく言われる「AIで開発が楽になるのか?」という話について、
実際に手を動かして検証してみた形です。

結論を先に書くと、

  • コード生成はかなり実用レベル

  • ただしシステムとしてまとめるのは別問題

という、ある意味で分かりやすい結果でしたね。

この記事では、単なる感想ではなく、
「どこまで使えたか」「どこで詰まったか」を具体的に書いていきます。


SuiteScript × AI はかなり戦える

まず前提として、SuiteScriptはJavaScriptベースです。
この時点でAIとの相性はかなり良いです。

実際に試した範囲だと、以下はほぼ問題なく生成できました。

  • Client Scriptでの入力制御

  • User Event Scriptでの登録時処理

  • 簡単な検索(search API)の組み立て

2026年3月時点では、APIバージョン差異(2.0 / 2.1)で多少のズレはありますが、
そこは修正前提で見れば大きな障害にはなりません。

体感としては、

「ドキュメント見ながら書く作業」はほぼ置き換え可能

というレベルです。


意外と使えたポイント

今回やってみて、想定よりも使えたポイントがいくつかありました。

① NetSuite独特のAPIでもそれなりに通じる

SuiteScriptのAPIはややクセがありますが、

  • N/search

  • N/record

  • N/runtime

あたりは、そこそこ精度高くコードが出てきました。

完全一致ではないにしても、「叩き台」としては十分使えます。


② エラー原因の切り分けが速い

これが一番体感的に効きました。

例えば、

  • なぜこの検索が0件になるのか

  • なぜこのフィールドが取得できないのか

といった詰まりポイントに対して、ログやコードを投げると、

  • フィルタ条件の誤り

  • 権限の可能性

  • フィールドIDの不一致

など、調査の当たりをつけてくれるのが速いです。

完全に正解でなくても、「次に何を疑うか」が分かるだけでかなり楽になります。


③ 設計の壁打ち相手として使える

これは副次的な発見でした。

最初はコード生成目的で使っていたのですが、

  • この設計で問題ないか

  • 別の持ち方はあるか

  • 将来的に詰まりそうな点はどこか

といった問いに対して、意外とまともな返答が返ってきます。

もちろん鵜呑みにはできませんが、

「一人で考えている状態」からは確実に抜けられる

という意味で、かなり使えました。


システム化しようとすると途端に崩れる

一方で、複数機能をつなげて「システム」として成立させようとすると、急に難しくなります。

試しに、

  • 入力 → チェック → 登録 → 後続処理

という一連の流れをまとめて作ろうとしたところ、以下の問題が出ました。

  • 前提条件がズレる

  • データ構造が一貫しない

  • 例外処理が抜ける

個々のコードはそれっぽいのに、
全体として整合が取れない状態になります。


何がボトルネックだったのか

振り返ると、原因は技術というより設計にありました。

① 業務前提が伝わっていない

業務上は当たり前のルールでも、AIには共有されていません。

その結果、

  • 想定外の入力を許容する

  • 実際には存在しない分岐を作る

といったズレが発生します。


② データ設計の不在

機能ごとにコードを作っていくと、

  • フィールドの定義が揺れる

  • データの持ち方が統一されない

という問題が出ます。

これは完全に設計不足でした。


③ 粒度のコントロールが難しい

「全部作ってください」と投げると、

  • 抜け漏れがある

  • 微妙に使えない

というアウトプットになります。

逆に細かすぎても、ただの部品になります。

この「ちょうどいい粒度」を見つけるのが難しいと感じました。


試行錯誤して見えてきたやり方

いくつか試して、比較的うまくいった進め方です。

① 先に設計をテキストで固める

いきなりコードを書かせるのではなく、

  • データ構造

  • 処理フロー

  • 制約条件

を整理してから渡すようにしました。

この一手間で、出てくるコードの質が明らかに変わります。


② AIを「レビュー役」に回す

コード生成だけでなく、

  • この設計の問題点

  • 想定されるバグ

  • 改善案

を出させるようにしました。

完全ではないですが、見落とし防止にはかなり効きます。


③ 小さく作って接続する

システムを一気に作るのではなく、

  • 機能単位で実装

  • 動作確認

  • 後から接続

という流れに変えました。

結果的にこの方が安定します。


まとめ

今回やってみた感触としては、

  • コード生成はかなり実用的

  • デバッグ支援は想像以上に強い

  • 設計なしでシステム化は難しい

というバランスでした。

特に印象的だったのは、

コードを書くよりも「何を作るか決める方」がボトルネックになる

という点です。


おわりに

AIを使えば開発がすべて楽になる、というよりは、

  • 実装は速くなる

  • ただし設計の重要性はむしろ上がる

という方向に変化していると感じました。

現時点では、

「AIに任せる」ではなく「AIを使って詰める」

という使い方が一番しっくりきています。