最近では社員全員が経営者って考え方がそこそこ浸透してますからね。そもそもそれが普通だよねって感じで本来あるべき姿なんだよな。末端バイトまで経営の改善案をスマホでトップに提案して、やがて取締役に抜擢される時代です。「経営の舞台に立ったことない人間が経営を語るな」とか非常に昭和的な戦前を引きずった軍隊式の考え方ですよ。だから俺も日記で経営者の気分で語ってるってわけです、ってのは嘘で特にそういうことは意識してませんけども。日記だからなあ。
前にも書いたけど、今は AI の時代で PG/SE もパラダイムシフトしないといけないよなあって本当に思うけど、そういうの活用するって具体的な話が俺の付近では全く聞こえない。AI を前提にしたシステム開発をするのであれば、何というか人間が作る前提で考えると非常にバカっぽいコピペだらけのシステムになる気がするんですよ。人間が作ると共通処理化とか色々と頑張ってしまうので AI が解析しにくいんだよ。だけどそういうのをなくしてすべてコピペで 1 画面 1 ソースみたいなごっつい作り方にすることで AI が解析しやすくなる。そういうコピペだらけのソースって人間がメンテナンスすることになると地獄なんですけど、AI にとっては非常に解析しやすいはずなので、AI の存在を前提としたシステム開発や保守であれば、そういうゴリゴリっとしたコピペだらけのシステムのが良いはず。なんだけど今の所そういう話を聞かない。おかしいなあ。ログの監視などの保守・運用からコールセンターまで全て AI で行うトータルソリューション的な感じでできそうですよね。
AI へのインプット資料は画面デザインと DB との紐づけなどになる。インフラは事前に構築しておく。入出力は API 化しておく。排他の問題などは起きないように事前に作っておく。そしたらソースの生成と今後のメンテナンスはすべてやってくれるようなイメージなんですけど。それでも人間がシステム全体の仕様を把握しなければならないことに変わりはないか。そもそもシステム全体の仕様を現場の人間が把握できてないからなあ。冗談だろって思うかもしれないけど、そういう職場ってあるんですよ何処とは言いませんけども。そうなると AI 化しても意味なくない?って話になるのか。意味ないってことはなくて相当に工数削減してくれるだろうけど。だから本当は理想を言えば、こういう仕様変更したいんだけどって AI に質問すると「この部分も影響あるので修正が必要ですね」みたいな提案をしてくれる AI が必要なんだよな。それは今の AI の水準ではまだ無理だろうなあ。ちなみに面接の場では「前の職場でシステム全体の規模は 1 億ステップありました。全て僕の頭に入ってます!」って言いきった方がバカな面接官のウケは良いみたいだよ。
現状で人間がメンテしているシステムでは AI の解析や保守を妨げる要因が沢山あるんだけど、たとえば WEB サーバを java, jsp, Tomcat, Spring, Oracle で構築して、ブラウザは javascript, css, html, Chrome, jQuery で構築するとするじゃないですか。しかも外部システムも活用するとします。地図 API とか天気 API とかさ。そうなるとさ、とある画面が表示されるわけですけど、その画面を表示するためにはサーバ上の java の処理が Spring を活用しながら Oracle, 地図 API, 天気 API から情報を取得して、それを jsp で出力して、さらに Tomcat がブラウザに送信して、それをブラウザである Chrome が html, css を解釈して表示して、さらに javascript が DOMContentLoaded, onload などで色々と処理して場合によっては Ajax 通信までした上で display: none だとか hidden だとか処理するわけですよ。しかもサーバ上のネットワークにはロードバランサまであってロードバランサのエラーも考慮しなければならなかったりするし、それにテスト環境では Tomcat だけど実際の運用は Weblogic かもしれないでしょ。場合によっては CDN も使うかもしれない。こういうのって人間は意識してメンテできるんですよ。でも恐らく今の AI には難しい。
だからこういうことを AI ができるようになるのを待つか、あるいは AI が簡単にメンテナンスできるシステム構築手法に切り替えるか。そういう話になるはずなんだけど。問題は AI が対応しやすい方法でシステム構築したけど、途中から AI が言うことを聞かなくなって人間がメンテナンスすることになってしまい、人間がメンテナンスするには地獄な作りになってしまっている、という状況になると恐いってことかな。そういう保険も必要なんでしょうか。どうなんだろう。パフォーマンス要件もあるか。でもパフォーマンスはコピペだらけのモノリシックな一枚岩の 1 画面の方が速そうでもあるんですけども。それに急に突飛なことを言いだす顧客だと困るな。AI の対応が難しそうな要望を出す顧客とか。テストも困るか。特に色々なデバイスのブラウザに対応するような状況ではスマホの実機でテストする時とか困るんだよあ。iPhone と Android。Safari と Chrome。面倒臭いんだよ。この辺りもボトルネックだよなあ。実機で動かしてみると動かなかったりするから腹立つんだよな。セキュリティは心配いらないと考えてます、寧ろ人間が作った場合よりも堅牢になるはず。事前にサニタイジングみたいな初歩的な問題から圧縮率サイドチャネル攻撃や CPU バグをついた攻撃など比較的高度な攻撃手法に至るまで対策を漏れなくすべて打ち込んでおく必要はあるけど。
ぶっちゃけ今の現場で AI を活用したら 1/3 ぐらいの人は不要になる気がするんだよな。つーか AI を活用しなくても現状で既に「このポストって必要?」って疑問になる人もいるかもしれないけど。まあ俺も怪しいもんだよ。
https://www.youtube.com/watch?v=a_Dv9MIb2Ws
アメリカと違って日本はアメリカにあるサーバの AI を活用することでデジタル赤字が増えるので、それなら企業単体で見れば AI 活用しない方が非効率だけど日本全体の収支で考えるとアメリカのサーバの AI を活用する方が非効率ってことで、本格的に活用し始めるのであれば日本国内にサーバ構築してからのが良いって話もありますね。日本でデータセンターと言えばどの会社でしたっけ。NTTDATA やさくらインターネットか。早くしてほしいもんだわ。まあまだ AI が発展途上ってのもあるからなあ。アメリカや中国や EU より余裕がない日本としてはもっと理論的な数学的な裏付けがしっかりしてから導入したいのかもしれないな。ラピダス製のチップを使ってさ。ラピダスはニッチ市場を目指すとか言ってた気がするので関係ないのかもしれませんが。
設計を軽視してテストを重視する風潮ってどうなんですか。自分がバカで無能だという自覚が強いから結局はテストでバグ抽出するしかないって最初から諦めてるのかもしれませんけども。設計工程でバグ抽出すれば工数 1 で済むのに総合テストでバグ抽出すると工数が 10 ぐらいに膨れ上がるのに。これ常識なんだけどな。つまり自滅の道を率先して進んでるんだよなあ。そんなことしてたら工数が爆増して予算を使い潰す。その自覚はあるんだろうか。無能なことを自覚してるのは素晴らしいことなんだけども。確かに人員が余っているので後続工程を並行して動かしたいから設計や製造の品質を下げてでも良いからさっさとテスト用にリリースしろって話は良くある話なんだけどさあ。そんなんだからゴミみたいな設計書が量産されてしまうんだよ。そしてゴミみたいな設計書をベースに設計なんてできない。悪循環なんだよなあ。設計の記載を手厚く増やすと「そんなこと書くな!記載粒度を合わせろ!他の設計書にも書かなきゃならなくなるだろ!」って言って消させるんだよな。頭が固いんだよなあ。別にすべての設計書に同じことを書く必要ないだろうが。フォーマットは合わせる必要あるだろうけど。これは補足なんだからさあ。そうやって必要な情報を書かないからちゃんとメンテできないんだよ。分かってるのかな。身から出た錆なんだよ。それでいてどう考えても無駄だらけだろって感じのことについては「これはルールだから書かなくてはならないんだ!」って言ってコピペさせる。最悪だよ。自ら望んで破滅の道を歩んでるようにしか見えない。それでも彼らは彼らなりに頑張っているのかもしれない。俺には自滅しようとしているスパイに見えてしょうがないんだが。そんな時はただ単にバカなだけだろうって自分に言い聞かせているよ。