20年分のソースコードをAIに読ませてみた
遅ればせながら、AIコーディングにどっぷりはまっています。
最近やっていることを並べてみると、
- 20年以上開発を続けてきた「FlexInspector」のソースコード解析
- 10年以上使ってきた「FIS-100/200」のソースコード解析、不具合調査、改善
- 次世代の外観検査OSを作るための設計仕様書づくり
です。
これを一気に進めています。
当然ながら、AIクレジット6000なんて、あっという間になくなります。
しかし、それだけ使ってみて、AIコーディングに対する見方がかなり変わってきました。
AIにコードを書かせるだけではない
AIコーディングというと、
「仕様を伝えて、プログラムを書いてもらう」
という使い方を最初に想像します。
もちろん、それも便利です。
しかし、長年ソフトウェアを開発してきた会社にとっては、むしろ別の使い方のほうが価値が大きいのではないかと思い始めています。
過去のソースコードをAIに読ませることです。
20年以上開発しているソフトウェアには、当然ながら膨大なコードがあります。
古いコードもあります。
今なら違う書き方をする部分もあります。
設計意図が分かりにくくなっているところもあります。
一方で、そのコードには20年以上にわたって現場で起きた問題と、それを解決してきた経験も埋め込まれています。
これは、新しくコードを書くだけでは手に入りません。
20年前のコードを、今の視点で読み直す
FlexInspectorは20年以上にわたって開発を続けてきた外観検査ソフトウェアです。
当然、現在とは開発環境も違います。
OSも違う。
画像処理ライブラリも違う。
プログラミングの考え方も変わっています。
それでも、実際の製造現場で動かしながら改良してきたソフトウェアなので、そこには大量のノウハウがあります。
以前なら、そのコードを一つひとつ人間が読み解く必要がありました。
これはかなり大変です。
ところがAIを使うと、
「このクラスは何をしているのか」
「このポインタの持ち方に危険はないか」
「この処理はなぜこの順番になっているのか」
「現在のライブラリへ移行した場合、問題になりそうな部分はどこか」
といったことを、コードを見ながらかなり深く議論できます。
もちろん、AIの回答をそのまま信用するわけではありません。
最終的には人間が判断します。
しかし、コードを読み解く速度は大きく変わりました。
不具合調査にもAIを使う
10年以上使ってきたFIS-100/200についても同じです。
長期間運用されているソフトウェアでは、単純に「新しく作り直せばよい」という話にはなりません。
実際に工場で動いています。
お客様が使っています。
過去との互換性も必要です。
そして、長年の改良によって複雑になった部分もあります。
最近は、発生した不具合についてダンプやソースコードをAIと一緒に追いながら、
「本当にここが原因なのか」
「同じ構造のコードがほかにもないか」
「局所的な修正ではなく、設計として直すべきではないか」
というところまで調べています。
一つの不具合を直して終わりではありません。
そこから古いコード全体を見直すきっかけにしています。
これはAIがなければ、なかなかできなかった作業です。
そして次世代の外観検査OSへ
面白いのは、過去のコードを調べれば調べるほど、次に作るべきソフトウェアの姿が見えてくることです。
20年前のFlexInspector。
10年前のFIS-100/200。
そして、これから作る次世代の外観検査OS。
これらが別々のプロジェクトではなくなってきました。
過去のソフトウェアをAIで解析する。
そこで見つかった問題や設計上の課題を整理する。
なぜその設計になったのかを考える。
そして、その知見を次世代システムの設計仕様書へ反映する。
つまり、
過去20年以上のソフトウェア資産を、次の10年の設計資産へ変換する。
そんな作業になっています。
AI時代に価値を持つもの
AIによって、コードを書くコストは確実に下がっていくと思います。
だからこそ、これから重要になるのは「コードをどれだけ持っているか」だけではないのかもしれません。
そのコードを作る過程で、
何がうまくいかなかったのか。
なぜその設計になったのか。
現場でどんな問題が起きたのか。
どう直したのか。
そうした経験の蓄積です。
AIは、それを掘り起こす非常に強力な道具になりそうです。
20年以上前に書いたコードが、AIによって再び価値を持ち始める。
これは、長年ソフトウェアを作り続けてきた会社にとって、かなり面白い変化だと思っています。
もっとも、それを本気でやり始めると問題が一つあります。
AIクレジット6000では、全然足りません。

