はじめに
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を使って詰める」
という使い方が一番しっくりきています。